Skip to main content

Notion Connector

Prerequisites

  • A Notion account (any plan, including free)
  • Workspace Owner or Admin access to create integrations

Getting Your Credentials

Notion uses an Internal Integration Token for authentication.

Step 1: Create an Integration

  1. Go to notion.so/my-integrations
  2. Click New integration
  3. Give it a name (e.g., Landed sync)
  4. Select your workspace
  5. Under Capabilities, ensure Read content is enabled
  6. Click Submit
  7. Copy the Internal Integration Secret (starts with secret_ or ntn_)

Step 2: Share Pages/Databases with the Integration

Notion integrations can only access pages and databases explicitly shared with them.

  1. Open each page or database you want to sync in Notion
  2. Click the ... menu in the top-right
  3. Select Add connections
  4. Search for and select your integration name
  5. Click Confirm

Important: You must share each top-level page or database individually. Child pages inherit access from their parent.

Configuration in Landed

FieldValue
Integration TokenYour Notion internal integration secret (starts with secret_ or ntn_)

Available Streams

StreamDescriptionSync Mode
databasesDatabase definitions with properties and metadataIncremental
pagesPage records with properties and metadataIncremental
usersUser and bot recordsFull refresh
blocksContent blocks (paragraphs, headings, lists, etc.)Incremental
commentsComments on pages and blocksIncremental
database_propertiesProperty definitions for each databaseFull refresh
page_property_valuesProperty values for pages in databasesIncremental

Common Issues

SymptomCauseFix
401 UnauthorizedInvalid integration tokenRegenerate the token at notion.so/my-integrations
Token format invalidToken doesn't start with secret_ or ntn_Copy the full Internal Integration Secret
Empty results / missing pagesPages not shared with integrationShare each page/database with your integration via the "Add connections" menu
403 Restricted resourceIntegration not connected to the pageAdd the integration connection to the specific page or its parent
Rate limit exceededToo many API callsLanded handles rate limiting automatically; Notion allows 3 req/sec

Data Notes

  • Notion's API rate limit is 3 requests per second. Landed throttles automatically, but large workspaces may have longer sync times.
  • Rich text content is converted to plain text for storage
  • Page properties are stored as JSON in the properties field
  • Block content captures the structure of page content (headings, paragraphs, lists, etc.)

Static IPs for Allowlisting

If your network configuration requires IP allowlisting:

  • Production: 34.170.185.84, 35.192.90.94
  • Staging: 34.171.93.34