---
title: Notion
description: Manage Notion pages
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="notion_v2"
  color="#181C1E"
/>

## Usage Instructions

Integrate with Notion into the workflow. Can read page, read database, create page, create database, append content, query database, and search workspace.



## Tools

### `notion_read`

Read content from a Notion page

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `pageId` | string | Yes | The ID of the Notion page to read |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Page content in markdown format |
| `title` | string | Page title |
| `url` | string | Page URL |
| `created_time` | string | Creation timestamp |
| `last_edited_time` | string | Last edit timestamp |

### `notion_read_database`

Read database information and structure from Notion

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `databaseId` | string | Yes | The ID of the Notion database to read |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Database ID |
| `title` | string | Database title |
| `url` | string | Database URL |
| `created_time` | string | Creation timestamp |
| `last_edited_time` | string | Last edit timestamp |
| `properties` | object | Database properties schema |

### `notion_write`

Append content to a Notion page

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `pageId` | string | Yes | The ID of the Notion page to append content to |
| `content` | string | Yes | The content to append to the page |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `appended` | boolean | Whether content was successfully appended |

### `notion_create_page`

Create a new page in Notion

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `parentId` | string | Yes | ID of the parent page |
| `title` | string | No | Title of the new page |
| `content` | string | No | Optional content to add to the page upon creation |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Page ID |
| `title` | string | Page title |
| `url` | string | Page URL |
| `created_time` | string | Creation timestamp |
| `last_edited_time` | string | Last edit timestamp |

### `notion_query_database`

Query and filter Notion database entries with advanced filtering

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `databaseId` | string | Yes | The ID of the database to query |
| `filter` | string | No | Filter conditions as JSON \(optional\) |
| `sorts` | string | No | Sort criteria as JSON array \(optional\) |
| `pageSize` | number | No | Number of results to return \(default: 100, max: 100\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | Array of Notion page objects from the database |
|   ↳ `id` | string | Page ID |
|   ↳ `created_time` | string | Creation timestamp |
|   ↳ `last_edited_time` | string | Last edit timestamp |
|   ↳ `url` | string | Page URL |
| `has_more` | boolean | Whether more results are available |
| `next_cursor` | string | Cursor for pagination |
| `total_results` | number | Number of results returned |

### `notion_search`

Search across all pages and databases in Notion workspace

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | No | Search terms \(leave empty to get all pages\) |
| `filterType` | string | No | Filter by object type: page, database, or leave empty for all |
| `pageSize` | number | No | Number of results to return \(default: 100, max: 100\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | Array of search results \(pages and databases\) |
|   ↳ `id` | string | Object ID |
|   ↳ `object` | string | Object type \(page or database\) |
|   ↳ `url` | string | Object URL |
|   ↳ `created_time` | string | Creation timestamp |
|   ↳ `last_edited_time` | string | Last edit timestamp |
| `has_more` | boolean | Whether more results are available |
| `next_cursor` | string | Cursor for pagination |
| `total_results` | number | Number of results returned |

### `notion_create_database`

Create a new database in Notion with custom properties

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `parentId` | string | Yes | ID of the parent page where the database will be created |
| `title` | string | Yes | Title for the new database |
| `properties` | json | No | Database properties as JSON object \(optional, will create a default "Name" property if empty\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Database ID |
| `title` | string | Database title |
| `url` | string | Database URL |
| `created_time` | string | Creation timestamp |
| `properties` | object | Database properties schema |

### `notion_add_database_row`

Add a new row to a Notion database with specified properties

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `databaseId` | string | Yes | ID of the database to add the row to |
| `properties` | json | Yes | Row properties as JSON object matching the database schema \(e.g., \{"Name": \{"title": \[\{"text": \{"content": "Task 1"\}\}\]\}, "Status": \{"select": \{"name": "Done"\}\}\}\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Page/row ID |
| `url` | string | Page/row URL |
| `title` | string | Row title |
| `created_time` | string | Creation timestamp |
| `last_edited_time` | string | Last edit timestamp |


