Quick setup
1. Create Notion Connector
- TypeScript
- Python
- cURL
2. Handle OAuth flow
Send the user toauthorization.url before authorization.expiresAt. After the user grants workspace access, Notion redirects to your redirectUrl and the first sync starts. A pending OAuth connector is not visible in list or get until the user finishes authorization.
3. Monitor sync progress
- TypeScript
- Python
- cURL
There is no per-connector document list in v5.
supermemory.list(namespace, "documents") returns every document in the namespace.Document limit
Each connector has adocumentLimit (optional when creating the connector; allowed range 1–10,000). For Notion, each sync run asks the Notion Search API for pages shared with the integration, ordered by last edited time, newest first, and stops after that many pages (or when Search has no more results).
- Full sync: If your workspace has more shareable pages than
documentLimit, the rest are not included in that run. Pages that look “missing” are often older or less recently edited relative to that ordering. IncreasedocumentLimitor trigger another sync after pages change if you need broader coverage. - Incremental sync: Only pages edited after the previous sync are candidates; each one still counts toward the same
documentLimit. If more pages changed than the limit since last sync, only the first batch in that newest-first order is returned for that run.
supermemory.connectors.update(namespace, id, { documentLimit }).
Manual Sync
- TypeScript
- cURL
Supported content types
Notion pages
- Rich text blocks with formatting preserved
- Nested pages and hierarchical structure
- Embedded content (images, videos, files)
- Code blocks with syntax highlighting
- Callouts and quotes converted to markdown
Notion databases
- Database entries synced as individual documents
- Properties included in metadata
- Relations between database entries
- Formulas and rollups calculated values
- Multi-select and select properties
Block types
Delete Connector
Remove a Notion connector when no longer needed:- TypeScript
- Python
- cURL
Deleting a connector will:
- Stop all future syncs from Notion
- Remove the OAuth authorization
- Delete the synced documents unless you pass
deleteDocuments: false
Advanced configuration
Custom Notion integration
For production deployments you can connect with your own Notion integration. Custom OAuth credentials are an organization setting and are not part of the v5 connector routes. See Custom OAuth Applications for the setup steps and callback URL.Workspace permissions
Notion connector respects workspace permissions:Database integration
Database properties
Notion database properties are mapped to metadata:Optimization strategies
- Set
documentLimithigh enough for your workspace size (see Document limit) - Use one namespace per user or tenant for efficient organization
- Monitor database sync performance for large datasets
- Share only the pages you need with the integration so each sync stays small
- Handle webhook delays gracefully in your application
Notion-Specific Benefits:
- Real-time sync via webhooks for instant updates
- Rich formatting and block structure preserved
- Database properties become searchable metadata
- Hierarchical page structure maintained
- Collaborative workspace support