Sync Notion with Your AI Knowledge Base

Notion holds your team's docs, wikis, and databases. REM Labs makes all of it searchable by AI -- semantically, not just by keyword. This guide walks through connecting Notion to REM Labs so every page, database row, and wiki entry becomes persistent, queryable AI memory.

What Gets Synced

The Notion integration pulls structured data from your workspace and stores it as indexed memories. It extracts:

Connect via OAuth

The fastest way to connect is through the REM Labs Console. Go to remlabs.ai/console, navigate to Integrations, and click Connect Notion. You will be redirected to Notion's OAuth flow to authorize access to specific pages or your entire workspace.

Once authorized, the initial sync begins automatically. Pages are batched in groups of 100 and processed in parallel. A workspace with 500 pages typically completes in under 60 seconds.

Import via API

For programmatic control, use the Notion import endpoint directly. This is useful for CI pipelines, selective syncs, or custom preprocessing.

curl -X POST https://api.remlabs.ai/v1/memory/sync/notion/import \ -H "Authorization: Bearer sk-slop-..." \ -H "Content-Type: application/json" \ -d '{ "notion_token": "ntn_...", "pages": [ { "page_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "title": "Q2 Product Roadmap", "content": "## Milestones\n- SDK launch by June\n- Dashboard v2 by July...", "properties": { "status": "In Progress", "owner": "Engineering", "priority": "P0" }, "parent_id": "root", "relations": ["Sprint Planning", "Team OKRs"] } ] }'

Database Sync

Notion databases are particularly powerful with REM Labs. Each row becomes a memory with its properties stored as typed metadata -- meaning you can later filter by status, date range, assignee, or any custom property during retrieval.

curl -X POST https://api.remlabs.ai/v1/memory/sync/notion/database \ -H "Authorization: Bearer sk-slop-..." \ -H "Content-Type: application/json" \ -d '{ "notion_token": "ntn_...", "database_id": "d1e2f3a4-b5c6-7890-def0-123456789abc", "sync_mode": "incremental" }'

The incremental sync mode uses Notion's last_edited_time to detect changes, so only modified rows are re-indexed. This keeps repeated syncs fast and avoids unnecessary API quota usage.

Search Your Notion Content

Once synced, your Notion workspace is searchable through multi-signal fusion retrieval. The query "what did we decide about the pricing model" will surface meeting notes, product docs, and database entries that discuss pricing -- even if the word "pricing" never appears in those pages.

curl -X POST https://api.remlabs.ai/v1/integrations/notion/search \ -H "Authorization: Bearer sk-slop-..." \ -H "Content-Type: application/json" \ -d '{"query":"pricing model decisions","limit":10,"filters":{"status":"Done"}}'

API Endpoints Reference

EndpointMethodDescription
/v1/memory/sync/notion/importPOSTImport pages from Notion (up to 100 per request)
/v1/memory/sync/notion/databasePOSTSync an entire Notion database
/v1/integrations/notion/statusGETCheck sync status and last sync timestamp
/v1/integrations/notion/searchPOSTSearch within the Notion namespace

Incremental sync: After the initial import, only pages modified since the last sync are re-processed. The integration uses Notion's last_edited_time field to detect changes. Full docs at Notion integration docs.

Make your Notion workspace AI-searchable

Free tier. Semantic search across all your pages and databases.

Get started free →