Notion
Notion workspace connector to search pages and databases, read and write page content as markdown, and manage database entries, users and comments.
Tools
Ask an agent for what you need in plain language — it picks the right tool itself. You can also limit which of these an agent may use, and require your approval before any of them runs.
Search pages and data sources (database tables) shared with the integration by title; returns ids to use with the other Notion tools.
| Parameter | Type | Description |
|---|---|---|
| query | string | Words matched against page and database titles; omit to list everything shared with the integration. |
| objectType | "page" | "data_source" | Only pages or only data sources (database tables); defaults to both. |
| sortDirection | "ascending" | "descending" | Order by last edited time; defaults to descending (most recently edited first). |
| pageSize | integer | Items per page (1-100); defaults to 25. |
| startCursor | string | Cursor from a previous call's nextCursor to fetch the next page; omit for the first page. |
Get a Notion page: title, parent, URL and its property values (for database entries). Use getPageContent for the page body.
| Parameter | Type | Description |
|---|---|---|
| pageIdrequired | string | Page id from searchNotion, queryDataSource or a Notion URL. |
Read the body of a Notion page as markdown (headings, lists, to-dos, tables, code, callouts, toggles, child page/database links). Blocks Notion cannot render are listed in unknownBlockIds.
| Parameter | Type | Description |
|---|---|---|
| pageIdrequired | string | Page id whose body to read. |
Create a Notion page under a parent page, or as an entry of a data source (database table) with property values, with an optional markdown body.
| Parameter | Type | Description |
|---|---|---|
| parentPageId | string | Create the page as a child of this page. Exactly one of parentPageId / parentDataSourceId. |
| parentDataSourceId | string | Create the page as an entry of this data source (a data source id from searchNotion/getDataSource, or a database id). |
| titlerequired | string | Page title (sets the title property of a database entry). |
| properties | object | Property values keyed by property NAME (call getDataSource first to see the names, types and options). title/rich_text/url/email/phone_number: string; number: number; checkbox: boolean; select/status: option name; multi_select: array of option names; date: "YYYY-MM-DD" (or date-time) or {start, end, timeZone}; people: array of user ids (see listUsers); relation: array of page ids; null clears a property. Formula, rollup, unique_id, created/edited fields are read-only and files cannot be set. Only for data source parents. |
| content | string | Page body as markdown: headings (#), lists (-, 1.), to-dos (- [ ]), quotes (>), code fences, tables, dividers (---), links and images. |
| icon | string | Page icon: an emoji or an image URL. |
| cover | string | Cover image URL. |
Update a Notion page: title, property values (database entries), icon, cover, or move it to / restore it from the trash. Use updatePageContent or appendPageContent for the body.
| Parameter | Type | Description |
|---|---|---|
| pageIdrequired | string | Page to update. |
| title | string | New title. |
| properties | object | Property values keyed by property NAME (call getDataSource first to see the names, types and options). title/rich_text/url/email/phone_number: string; number: number; checkbox: boolean; select/status: option name; multi_select: array of option names; date: "YYYY-MM-DD" (or date-time) or {start, end, timeZone}; people: array of user ids (see listUsers); relation: array of page ids; null clears a property. Formula, rollup, unique_id, created/edited fields are read-only and files cannot be set. Only for database entries; omitted properties are left unchanged. |
| icon | string | New icon: an emoji or an image URL. |
| cover | string | New cover image URL. |
| inTrash | boolean | true moves the page to the trash, false restores it. |
Add markdown content to the end (or start) of a Notion page body; returns the updated page markdown.
| Parameter | Type | Description |
|---|---|---|
| pageIdrequired | string | Page to add content to. |
| contentrequired | string | Markdown to add: headings (#), lists (-, 1.), to-dos (- [ ]), quotes (>), code fences, tables, dividers (---), links and images. |
| position | "end" | "start" | Where to insert: at the end (default) or the start of the page body. |
Edit the body of a Notion page: exact-text search-and-replace edits on its markdown (call getPageContent first), or replace the whole body. Returns the updated page markdown.
| Parameter | Type | Description |
|---|---|---|
| pageIdrequired | string | Page whose body to edit. |
| edits | object[] | Search-and-replace edits applied to the page markdown. Exactly one of edits / replaceWith. |
| edits[].findrequired | string | Exact text to find in the page markdown as returned by getPageContent (case-sensitive). |
| edits[].replacerequired | string | Replacement markdown; empty string deletes the found text. |
| edits[].replaceAllMatches | boolean | Replace every occurrence; by default the text must occur exactly once. |
| replaceWith | string | Replace the entire page body with this markdown. |
| allowDeletingContent | boolean | Required when an edit removes child pages or databases from the page. |
Get the schema of a Notion data source (database table): property names, types, select/status options and relations. Call it before queryDataSource, createPage or updatePage on database entries.
| Parameter | Type | Description |
|---|---|---|
| dataSourceIdrequired | string | Data source id from searchNotion, or a database id (a database with several data sources returns the first plus siblingDataSources). |
List the entries (pages) of a Notion data source (database table) with optional filter, sort and paging; returns each entry with its property values.
| Parameter | Type | Description |
|---|---|---|
| dataSourceIdrequired | string | Data source id (or database id) to query. |
| filter | object | Notion filter object (see getDataSource for property names and types). Single condition: {"property":"Status","status":{"equals":"Done"}}; compound: {"and":[...]} or {"or":[...]}; timestamp: {"timestamp":"last_edited_time","last_edited_time":{"past_week":{}}}. Conditions by type — title/rich_text/url/email/phone_number: contains, does_not_contain, equals, starts_with, ends_with; number: equals, greater_than, less_than, greater_than_or_equal_to, less_than_or_equal_to; select/status: equals, does_not_equal; multi_select: contains, does_not_contain; date/created_time/last_edited_time: equals, before, after, on_or_before, on_or_after, past_week, past_month, next_week, this_week; checkbox: equals; people/relation: contains, does_not_contain; every type: is_empty, is_not_empty (value true). |
| sorts | object[] | Sort order; earlier entries take precedence. |
| sorts[].property | string | Property name to sort by. |
| sorts[].timestamp | "created_time" | "last_edited_time" | Sort by a timestamp instead of a property. |
| sorts[].directionrequired | "ascending" | "descending" | — |
| filterProperties | string[] | Property names to include in the results (others are omitted); defaults to all. |
| pageSize | integer | Items per page (1-100); defaults to 25. |
| startCursor | string | Cursor from a previous call's nextCursor to fetch the next page; omit for the first page. |
List the members and bots of the Notion workspace with their ids (needed for people properties and mentions).
| Parameter | Type | Description |
|---|---|---|
| pageSize | integer | Items per page (1-100); defaults to 25. |
| startCursor | string | Cursor from a previous call's nextCursor to fetch the next page; omit for the first page. |
List the unresolved comments on a Notion page (or block), grouped by discussion thread.
| Parameter | Type | Description |
|---|---|---|
| blockIdrequired | string | Page id (or block id) whose comment threads to list. |
| pageSize | integer | Items per page (1-100); defaults to 25. |
| startCursor | string | Cursor from a previous call's nextCursor to fetch the next page; omit for the first page. |
Add a comment to a Notion page, or reply in an existing comment thread.
| Parameter | Type | Description |
|---|---|---|
| pageId | string | Start a new comment thread on this page. Exactly one of pageId / discussionId. |
| discussionId | string | Reply in an existing thread (discussionId from listComments). |
| textrequired | string | Comment text as markdown (inline formatting and links). |