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
- Go to notion.so/my-integrations
- Click New integration
- Give it a name (e.g.,
Landed sync) - Select your workspace
- Under Capabilities, ensure Read content is enabled
- Click Submit
- Copy the Internal Integration Secret (starts with
secret_orntn_)
Step 2: Share Pages/Databases with the Integration
Notion integrations can only access pages and databases explicitly shared with them.
- Open each page or database you want to sync in Notion
- Click the ... menu in the top-right
- Select Add connections
- Search for and select your integration name
- Click Confirm
Important: You must share each top-level page or database individually. Child pages inherit access from their parent.
Configuration in Landed
| Field | Value |
|---|---|
| Integration Token | Your Notion internal integration secret (starts with secret_ or ntn_) |
Available Streams
| Stream | Description | Sync Mode |
|---|---|---|
databases | Database definitions with properties and metadata | Incremental |
pages | Page records with properties and metadata | Incremental |
users | User and bot records | Full refresh |
blocks | Content blocks (paragraphs, headings, lists, etc.) | Incremental |
comments | Comments on pages and blocks | Incremental |
database_properties | Property definitions for each database | Full refresh |
page_property_values | Property values for pages in databases | Incremental |
Common Issues
| Symptom | Cause | Fix |
|---|---|---|
401 Unauthorized | Invalid integration token | Regenerate the token at notion.so/my-integrations |
Token format invalid | Token doesn't start with secret_ or ntn_ | Copy the full Internal Integration Secret |
| Empty results / missing pages | Pages not shared with integration | Share each page/database with your integration via the "Add connections" menu |
403 Restricted resource | Integration not connected to the page | Add the integration connection to the specific page or its parent |
Rate limit exceeded | Too many API calls | Landed 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
propertiesfield - 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