<article class="sy-endpoint"><h3><code>GET /v1/connectors/notion/databases</code></h3><p>List the Notion databases shared with a connection, newest first.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The authorised Notion connection to read through, for example con_notion_7g2.</td></tr><tr><td>query</td><td>string</td><td>no</td><td>Case insensitive substring match on the database title.</td></tr><tr><td>limit</td><td>integer</td><td>no</td><td>Results per page, 1 to 100. Defaults to 25.</td></tr><tr><td>cursor</td><td>string</td><td>no</td><td>Opaque cursor from the previous response to fetch the next page.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_4c81ba90",
"connector": "notion",
"status": "ok",
"data": [
{
"database_id": "a3f1c9d24b8e4f01",
"title": "Launch tracker",
"properties": ["Name", "Status", "Owner", "Due date"],
"last_edited_at": "2026-09-05T14:22:11Z"
}
],
"next_cursor": null
}</code></pre></article><article class="sy-endpoint"><h3><code>POST /v1/connectors/notion/pages</code></h3><p>Create a page as a row in a database, with typed properties.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The authorised Notion connection to write through.</td></tr><tr><td>database_id</td><td>string</td><td>yes</td><td>The database that will hold the new row.</td></tr><tr><td>properties</td><td>object</td><td>yes</td><td>Property name to value. Values are cast to the destination type and rejected rather than coerced when the cast is lossy.</td></tr><tr><td>children</td><td>array</td><td>no</td><td>Body blocks to append after the page is created. Paragraph, bulleted_list_item and callout are supported.</td></tr><tr><td>idempotency_key</td><td>string</td><td>no</td><td>Any string you generate. Repeating it within 24 hours returns the first result instead of creating a second page.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_51de73aa",
"connector": "notion",
"status": "ok",
"data": {
"page_id": "7b0e5cf1a94d4c8e",
"url": "https://www.notion.so/7b0e5cf1a94d4c8e",
"created_at": "2026-09-07T09:41:02Z",
"properties_written": 4,
"properties_skipped": []
}
}</code></pre></article><article class="sy-endpoint"><h3><code>PATCH /v1/connectors/notion/pages/{page_id}</code></h3><p>Update properties on an existing page, or send it to the trash.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The authorised Notion connection to write through.</td></tr><tr><td>properties</td><td>object</td><td>no</td><td>Only the properties you send are touched. Everything else on the page is left alone.</td></tr><tr><td>archived</td><td>boolean</td><td>no</td><td>Set true to move the page to the Notion trash, where it stays recoverable for thirty days.</td></tr><tr><td>if_unmodified_since</td><td>string</td><td>no</td><td>ISO 8601 timestamp. The write is refused with 409 when the page changed after it.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_60a2c118",
"connector": "notion",
"status": "ok",
"data": {
"page_id": "7b0e5cf1a94d4c8e",
"updated": ["Status", "Owner"],
"archived": false,
"last_edited_at": "2026-09-07T09:44:50Z"
}
}</code></pre></article><article class="sy-endpoint"><h3><code>POST /v1/connectors/notion/pages/search</code></h3><p>Find a page by a property value so a flow can update instead of duplicate.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The authorised Notion connection to read through.</td></tr><tr><td>database_id</td><td>string</td><td>yes</td><td>The database to search inside. Cross database search is not offered on purpose.</td></tr><tr><td>property</td><td>string</td><td>yes</td><td>The property to match on, such as Email or Order number.</td></tr><tr><td>value</td><td>string</td><td>yes</td><td>The value to look for. Compared after trimming whitespace on both sides.</td></tr><tr><td>match</td><td>string</td><td>no</td><td>One of exact or contains. Defaults to exact, which is what deduplication wants.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_7712fe3b",
"connector": "notion",
"status": "ok",
"data": {
"match_count": 1,
"pages": [
{
"page_id": "7b0e5cf1a94d4c8e",
"title": "Harbour Line Coffee",
"matched_on": "Email"
}
]
}
}</code></pre></article><article class="sy-endpoint"><h3><code>GET /v1/connectors/notion/events</code></h3><p>Read the trigger events this connection observed, for replay or reconciliation.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The authorised Notion connection whose events you want.</td></tr><tr><td>since</td><td>string</td><td>no</td><td>ISO 8601 timestamp. Events are retained for 30 days on paid plans and 7 on the free plan.</td></tr><tr><td>type</td><td>string</td><td>no</td><td>Filter to one event type, such as page.created or page.property_updated.</td></tr><tr><td>limit</td><td>integer</td><td>no</td><td>Results per page, 1 to 200. Defaults to 50.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_88c04ad2",
"connector": "notion",
"status": "ok",
"data": [
{
"event_id": "evt_2f9a71",
"type": "page.property_updated",
"page_id": "7b0e5cf1a94d4c8e",
"property": "Status",
"from": "Draft",
"to": "Ready",
"observed_at": "2026-09-07T09:12:44Z"
}
],
"next_cursor": "evt_2f9a71"
}</code></pre></article>