Authentication
Notion calls need two credentials (see Authentication):X-API-KEY— your MMK deployment key.X-Notion-Token— your Notion integration / internal token. The caller supplies this (it is not stored server-side, unlike Plaud/Tiro).
X-Notion-Space-ID and X-Notion-User-ID. These map to the
Notion Token / Space ID / User ID fields on the Make connection.
Most Notion endpoints are Basic. A few are Pro (
bulk-duplicate-check,
bulk-page-update, file-upload, AI summaries, comments, users, native markdown update).
A Basic key on a Pro route gets 400 you are not a magic meal kits PRO user.Endpoint groups
The official-API comments and users endpoints additionally require an
X-Notion-Official-Token header (your official Notion integration token).
Notes
- Database vs data source. Multi-data-source databases return empty properties from
the database ID — pass
data_source_id(ornotion_idto auto-detect) so schema and writes resolve correctly. Bulk requests accept all three identifiers (priority:data_source_id>notion_id>database_id). - Bulk limits. Up to 100 records/page IDs per call; tune throughput with the optional
configblock. Rate limited to ~3 req/s (matching Notion’s API). - Query results include both raw
propertiesand flattenedsimple_properties, pluswarningsfor invalid filters — check them when a filter silently matches nothing. - Markdown engines.
engine: "blocks"(default) uses the in-process parser;engine: "native"routes to Notion’s native markdown API for in-place edits. - Page permission is required (most common
401). Issuing the integration token is not enough — the integration must be granted access to the page/database you operate on (add it via the page’s Connections menu, at the top-level page/DB). A token without that access returns401/ permission errors on every call. See Fix Notion connection & permission errors. - Rich Text 2,000-char block limit. Notion caps each rich-text block at 2,000 characters,
so long markdown is split across multiple blocks on conversion.
rawandrefinedoutputs can differ slightly in length/wording — choose the one that fits your use case.

