Skip to main content
The Notion source reads databases, their pages and blocks, and workspace users. It is built with an HTTP manifest and is beta. Its resources are stable, though future releases may add columns.

Configuration

Resources

Filament searches for databases, requests the pages in each database, and then requests the child blocks for each page. Users are read independently. Selecting blocks therefore adds at least one API request per page in the workspace.

Modes

All resources support full reads. If interrupted, a top-level resource resumes after its last completed page. Child resources (pages, blocks) always restart with their parent. pages is the one incremental resource. The cursor field is fixed by the manifest. Only a lookback window is user-configurable, and only because the comparator is time. Pages fan out across databases but share a single durable watermark for the whole resource. The 300-second overlap re-reads a window each run to cover databases edited while earlier ones were being scanned. blocks has no incremental block. When it is selected, every page’s children are re-read in full.

Behavior

  • Auth: bearer token from api_key on every request.
  • API version: pinned via Notion-Version: 2022-06-28, so response fields do not drift with Notion’s rolling default.
  • Pagination: cursor paging throughout. next_cursor from each response feeds start_cursor in the next request (in the body for the POST endpoints, in the query string for users and blocks), terminating when has_more is false.
  • Rate limiting: no client-side limiter is configured. The engine backs off on 429 responses using Retry-After.
  • databases and pages keep the entire response object in raw, while users and blocks keep only unprojected fields as a remainder.