Skip to main content

Notion

Connect Notion to let agents search, read, and manage pages, databases, and blocks in your Notion workspace through the vault.

Prerequisites

  • A Notion account with admin access to the target workspace

Creating a Notion Integration

  1. Go to notion.so/my-integrations
  2. Click New integration
  3. Select the workspace to connect
  4. Give it a name (e.g., "AgentHiFive")
  5. Under Type, leave it as Internal
  6. Click Save
  7. Copy the Internal Integration Secret (starts with ntn_ or secret_)
Share Pages with the Integration

After creating the integration, you must explicitly share pages and databases with it. Open each page or database you want the agent to access, click ...Connect to → select your integration name.

Connecting

  1. Go to Connections in the dashboard
  2. Select the Data Access tab
  3. Click Connect Notion
  4. Paste your integration token
  5. Click Save
Permanent Tokens

Notion internal integration tokens are permanent — they don't expire and don't need to be refreshed. Access remains valid until you regenerate the token in your Notion integration settings.

Vault API Usage

Model B (Brokered Proxy)

Notion connections only support Model B. The vault injects the Authorization: Bearer header automatically.

vault_execute({
model: "B",
connectionId: "your-notion-connection-id",
method: "POST",
url: "https://api.notion.com/v1/search",
headers: { "Notion-Version": "2022-06-28" },
body: {
query: "project roadmap"
}
})
Notion-Version Header Required

Every Notion API request requires the Notion-Version header. Pass it in the headers field of your vault_execute call.

Available Endpoints

MethodURL PathDescription
POST/v1/searchSearch pages and databases
GET/v1/pages/:idRetrieve a page
GET/v1/pages/:id/properties/:prop_idRetrieve a page property
POST/v1/pagesCreate a page
PATCH/v1/pages/:idUpdate a page
GET/v1/databases/:idRetrieve a database
POST/v1/databases/:id/queryQuery a database
GET/v1/blocks/:idRetrieve a block
GET/v1/blocks/:id/childrenList block children
PATCH/v1/blocks/:idUpdate a block
DELETE/v1/blocks/:idDelete (archive) a block
PATCH/v1/blocks/:id/childrenAppend block children
GET/v1/commentsList comments
POST/v1/commentsCreate a comment
GET/v1/usersList users
GET/v1/users/meGet current bot user

Notes

  • Notion uses POST for search (/v1/search) and database queries (/v1/databases/:id/query). These are read operations despite using POST.
  • The integration can only access pages and databases that have been explicitly shared with it.
  • Model A (token vending) is not supported for Notion — the API key must not be exposed to the agent.