Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Notion

Connect to Notion workspace. Create, edit pages, manage databases, and collaborate on content

Notion logo

Supports authentication: OAuth 2.0

Create a comment in Notion. Provide a comment object with rich_text content and either a parent object (with page_id) for a page-level comment or a discussion_id to reply in an existing thread.

PropertiesDescriptionType
commentComment object containing a rich_text array. Example: {"rich_text":[{"type":"text","text":{"content":"Hello"}}]}object
discussion_idExisting discussion thread ID to reply to.string
notion_versionOptional override for the Notion-Version header (e.g., 2022-06-28).string
parentParent object for a new top-level comment. Shape: {"page_id":"<uuid>"}.object
schema_versionInternal override for schema version.string
tool_versionInternal override for tool implementation version.string

Retrieve a single Notion comment by its comment_id. LLM tip: you typically obtain comment_id from the response of creating a comment or by first listing comments for a page/block and selecting the desired item’s id.

PropertiesDescriptionType
comment_idThe identifier of the comment to retrieve (hyphenated UUID). Obtain it from Create-Comment responses or from a prior List-Comments call.string
notion_versionOptional Notion-Version header override (e.g., 2022-06-28).string
schema_versionInternal override for schema version.string
tool_versionInternal override for tool implementation version.string

Fetch comments for a given Notion block. Provide a block_id (the target page/block ID, hyphenated UUID). Supports pagination via start_cursor and page_size (1–100). LLM tip: extract block_id from a Notion URL’s trailing 32-char id, then insert hyphens (8-4-4-4-12).

PropertiesDescriptionType
block_idTarget Notion block (or page) ID to fetch comments for. Use a hyphenated UUID.string
notion_versionOptional Notion-Version header override (e.g., 2022-06-28).string
page_sizeMaximum number of comments to return (1–100).integer
schema_versionInternal override for schema version.string
start_cursorCursor to fetch the next page of results.string
tool_versionInternal override for tool implementation version.string

Fetch data from Notion using the workspace search API (/search). Supports pagination via start_cursor.

PropertiesDescriptionType
page_sizeMax number of results to return (1–100)integer
queryText query used by /searchstring
schema_versionOptional schema version to use for tool executionstring
start_cursorCursor for pagination; pass the previous response’s next_cursorstring
tool_versionOptional tool version to use for executionstring

Create a new database in Notion under a parent page. Provide a parent object with page_id, a database title (rich_text array), and a properties object that defines the database schema (columns).

PropertiesDescriptionType
notion_versionOptional override for the Notion-Version header (e.g., 2022-06-28).string
parentParent object specifying the page under which the database is created. Example: {"page_id": "2561ab6c-418b-8072-beec-c4779fa811cf"}object
propertiesDatabase schema object defining properties (columns). Example: {"Name": {"title": {}}, "Status": {"select": {"options": [{"name": "Todo"}, {"name": "Doing"}, {"name": "Done"}]}}}object
schema_versionInternal override for schema version.string
titleDatabase title as a Notion rich_text array.array<object>
tool_versionInternal override for tool implementation version.string

Retrieve a Notion database’s full definition, including title, properties, and schema. Required: database_id (hyphenated UUID). LLM tip: Extract the last 32 characters from a Notion database URL, then insert hyphens (8-4-4-4-12).

PropertiesDescriptionType
database_idThe target database ID in UUID format with hyphens.string
notion_versionOptional override for the Notion-Version header.string
schema_versionOptional schema version override.string
tool_versionOptional tool version override.string

Insert a new row (page) into a Notion database. Required: database_id (hyphenated UUID) and properties (object mapping database column names to Notion **property values). Optional: child_blocks(content blocks),icon(page icon object), andcover` (page cover object).

LLM guidance:

  • properties must use property values (not schema). Example:
{
"title": { "title": [ { "text": { "content": "Task A" } } ] },
"Status": { "select": { "name": "Todo" } },
"Due": { "date": { "start": "2025-09-01" } }
}
  • Use the exact property key as defined in the database (case‑sensitive), or the property id.
  • icon example (emoji): {"type":"emoji","emoji":"📝"}
  • cover example (external): {"type":"external","external":{"url":"https://example.com/image.jpg"}}
  • Runtime note: the executor/host should synthesize parent = {"database_id": database_id} before sending to Notion.
PropertiesDescriptionType
_parentComputed by host: { "database_id": "<database_id>" }. Do not supply manually.object
child_blocksOptional array of Notion blocks to append as page content (paragraph, heading, to_do, etc.).array<unknown>
coverOptional page cover object. Example external: {"type":"external","external":{"url":"https://example.com/cover.jpg"}}.object
database_idTarget database ID (hyphenated UUID).string
iconOptional page icon object. Examples: {"type":"emoji","emoji":"📝"} or {"type":"external","external":{"url":"https://..."}}.object
notion_versionOptional Notion-Version header override (e.g., 2022-06-28).string
propertiesObject mapping column names (or property ids) to property values.

CRITICAL: Property Identification Rules:

  • For title fields: ALWAYS use ‘title’ as the property key (not ‘Name’ or display names)
  • For other properties: Use exact property names from database schema (case-sensitive)
  • DO NOT use URL-encoded property IDs with special characters

Recommended Workflow:

  1. Call fetch_database first to see exact property names
  2. Use ‘title’ for title-type properties
  3. Match other property names exactly as shown in schema

Example:

{
"title": { "title": [ { "text": { "content": "Task A" } } ] },
"Status": { "select": { "name": "Todo" } },
"Due": { "date": { "start": "2025-09-01" } }
}
``` | `object` |
| `schema_version` | Optional schema version override. | string | null |
| `tool_version` | Optional tool version override. | string | null |
## `notion_database_property_retrieve`
Query a Notion database and return only specific properties by supplying one or more property IDs. Use when you need page rows but want to limit the returned properties to reduce payload. Provide the database_id and an array of filter_properties (each item is a property id like "title")
| Properties | Description | Type |
| --- | --- | --- |
| `database_id` | Target database ID (hyphenated UUID). | string |
| `property_id` | property ID to filter results by a specific property. get the property id by querying database. | string | null |
| `schema_version` | Optional schema version override. | string | null |
| `tool_version` | Optional tool version override. | string | null |
## `notion_database_query`
Query a Notion database for rows (pages). Provide database_id (hyphenated UUID). Optional: page_size, start_cursor for pagination, and sorts (array of sort objects). LLM guidance: extract the last 32 characters from a Notion database URL and insert hyphens (8-4-4-4-12) to form database_id. Sort rules: each sort item MUST include either property OR timestamp (last_edited_time/created_time), not both.
| Properties | Description | Type |
| --- | --- | --- |
| `database_id` | Target database ID (hyphenated UUID). | string |
| `notion_version` | Optional Notion-Version header override. | string | null |
| `page_size` | Maximum number of rows to return (1100). | integer | null |
| `schema_version` | Optional schema version override. | string | null |
| `sorts` | Order the results. Each item must include either property or timestamp, plus direction. | `array<object>` | null |
| `start_cursor` | Cursor to fetch the next page of results. | string | null |
| `tool_version` | Optional tool version override. | string | null |
## `notion_page_create`
Create a page in Notion either inside a database (as a row) or as a child of a page. Use exactly one parent mode: provide database_id to create a database row (page with properties) OR provide parent_page_id to create a child page. When creating in a database, properties must use Notion property value shapes and the title property key must be "title" (not the display name). Children (content blocks), icon, and cover are optional. The executor should synthesize the Notion parent object from the chosen parent input.
Target rules:
- Use database_id OR parent_page_id (not both)
- If database_id is provided → properties are required
- If parent_page_id is provided → properties are optional
| Properties | Description | Type |
| --- | --- | --- |
| `_parent` | Computed by the executor: `{"database_id": "..."}` OR `{"page_id": "..."}` derived from database_id/parent_page_id. | `object` | null |
| `child_blocks` | Optional blocks to add as page content (children). | `array<unknown>` | null |
| `cover` | Optional page cover object. | `object` | null |
| `database_id` | Create a page as a new row in this database (hyphenated UUID). Extract from the database URL (last 32 chars → hyphenate 8-4-4-4-12). | string | null |
| `icon` | Optional page icon object. | `object` | null |
| `notion_version` | Optional Notion-Version header override. | string | null |
| `parent_page_id` | Create a child page under this page (hyphenated UUID). Extract from the parent page URL. | string | null |
| `properties` | For database rows, supply property values keyed by property name (or id). For title properties, the key must be "title".
Example (database row):
{
"title": { "title": [ { "text": { "content": "Task A" } } ] },
"Status": { "select": { "name": "Todo" } },
"Due": { "date": { "start": "2025-09-01" } }
} | `object` | null |
| `schema_version` | Optional schema version override. | string | null |
| `tool_version` | Optional tool version override. | string | null |