Menu QaldyDocs

Notion

Read and update Notion pages and databases.

Apps read and update Notion pages and databases through an internal integration. Notion is reached through the HTTP API connector with a preset: the gate calls only api.notion.com/v1, with GET, POST and PATCH, and always sends Notion-Version: 2022-06-28. The integration secret is sealed to the gate and apps never see it.

Status: Available through the HTTP API preset. The preset follows Notion's API reference (checked 2026-10-16). It has not been run against a live workspace.

Connect it

  1. In Notion, open Settings → Connections → Develop or manage integrations (notion.so/profile/integrations) and create an internal integration. Give it only the capabilities the apps need (read, update, insert).
  2. Copy the Internal Integration Secret.
  3. On every page or database the apps need, open the three-dot menu → Connections and add the integration. Notion shows an integration only what is shared with it, so this is also the fence on what it can see.
  4. Qaldy → Connectors → Notion → Connect Notion → paste the secret → Seal and connect.

Test connection calls GET /v1/users/me, which answers for any valid integration.

What the gate allows

Hostapi.notion.com, base path /v1 (pinned, every resolved address public)
MethodsGET, POST, PATCH (no DELETE: Notion archives pages with PATCH)
Pathseverything under /v1 (/pages, /databases, /blocks, /search, /users)
KeyAuthorization: Bearer <secret>, added by the gate
Fixed headerNotion-Version: 2022-06-28; an app can't override it

Use it from an app

json
{ "id": "http", "actions": ["request"], "scope": "conn_k3v9…" }
ts
const api = ctx.connectors.http('conn_k3v9…')
const rows = await api.post('/databases/<database id>/query', { json: { page_size: 20 } })
await api.post('/pages', { json: { parent: { database_id: '<database id>' }, properties: {} } })

When it breaks

You seeWhyDo
401The secret was revoked or mistypedReplace the secret
404 object_not_foundThe page or database isn't shared with the integrationAdd the connection on that page
403 restricted_resourceThe integration lacks the capabilityEdit its capabilities in Notion

Type to search. Up and down to choose, Enter to open, Esc to close.