Notion Integration
Connection
- Base URL:
https://api.notion.com/v1 - Auth:
Authorization: Bearer $NOTION_API_KEY,Notion-Version: 2022-06-28 - Env vars:
NOTION_API_KEY - Caching: 10-minute cache for content calendar and individual pages
- Content DB:
db4ae46c822443ba96e51a6a352e0fbe(hard-coded)
Server Lib
- File:
server/lib/notion.ts
Exported Functions
| Function | Description |
|---|---|
getContentCalendar() |
Fetch all entries from the content calendar database |
getNotionPage(pageId) |
Fetch a page with its block content (recursive) |
getContentCalendarSchema() |
Get the database schema/properties |
Agent Actions
content-calendar— fetch content calendar entriescontent-calendar-schema— fetch the database schema/propertiesnotion-page --pageId <id>— fetch a page with block content
Do not call /api/notion/* directly from the agent.
Key Patterns & Gotchas
- Content calendar paginates via POST
/databases/:id/querywithpage_size: 100andstart_cursor extractProphandles all Notion property types (title, rich_text, select, multi_select, date, people, rollup, formula, etc.)fetchBlocksrecurses to fetch children whenhas_childrenis true — can be expensive for deeply nested pages- Database ID and API version are hard-coded