Notion Component
Manage Notion pages, databases, and users
Component key: notion
Description​
Notion is a productivity and collaboration platform that combines note taking, project management, and database capabilities. This component allows you to manage pages, databases, and users within your Notion workspace.
API Documentation​
This component was built using the Notion API.
Connections​
Internal Integration Secret​
key: notionInternalIntegrationTo create an internal integration for Notion, set up a private integration that works within a single Notion workspace. Internal integrations are ideal for testing or for integrations that will only be used within one workspace.
For detailed information about Notion integrations, refer to the Notion Integration Documentation.
Prerequisites​
- A Notion account with permission to create integrations in the workspace
- Access to the Notion integration settings
- Permission to connect the integration to specific pages or databases in the workspace
Setup Steps​
- Visit notion.so/my-integrations and log into Notion.
- Click Create new integration.
- Fill in the required integration details:
- Name: Enter a descriptive name for the integration
- Logo: Optionally upload a logo
- Associated workspace: Select the workspace where the integration will be created
- Under Capabilities, select the permissions needed for the integration:
- Read content: Allows reading pages, databases, and other content
- Update content: Allows modifying existing content
- Insert content: Allows creating new content
- Under Content Capabilities, choose specific content types if needed (pages, databases, comments, etc.).
- Save the integration settings.
Get the Integration Token​
- Navigate to the Secrets tab in the integration settings.
- Copy the Internal Integration Token value.
- The token format is:
secret_followed by a series of alphanumeric characters - Example format:
secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- The token format is:
Configure the Connection​
- Enter the Internal Integration Token into the connection configuration.
Connect to Content​
After creating the integration and configuring the connection, the integration must be explicitly connected to specific pages or databases in Notion:
- Navigate to the Notion page or database that the integration should access.
- Click the ... (more) menu in the top right corner of the page.
- Select Connect to from the menu.
- Choose the integration from the list.
The integration will now have access to that content based on the capabilities configured during setup. Repeat this process for each page or database that the integration needs to access.
| Input | Notes | Example |
|---|---|---|
| Internal Integration Secret | Your Notion Internal Integration Secret. Create an integration in your Notion integrations settings to obtain this token. | secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3 |
OAuth 2.0​
key: notionOauthTo create an OAuth 2.0 integration for Notion, set up a public integration that allows users to authenticate with their Notion workspaces.
For detailed information about Notion integrations, refer to the Notion Integration Documentation.
Prerequisites​
- A Notion account with permission to create integrations
- Access to the Notion integration settings
Setup Steps​
- Visit notion.so/my-integrations and log into Notion.
- Click Create new integration.
- Fill in the required integration details:
- Name: Enter a descriptive name for the integration
- Logo: Optionally upload a logo
- Associated workspace: Select the workspace where the integration will be created
- Under Capabilities, select the permissions needed for the integration:
- Read content: Allows reading pages, databases, and other content
- Update content: Allows modifying existing content
- Insert content: Allows creating new content
- Under Content Capabilities, choose specific content types if needed (pages, databases, comments, etc.).
- Save the integration settings.
Configure OAuth Settings​
- Navigate to the Distribution tab in the integration settings.
- Select Public integration to enable OAuth 2.0 authentication.
- Under Redirect URIs, add the OAuth callback URL:
https://oauth2.prismatic.io/callback - Configure any additional OAuth settings as needed.
- Review and save the distribution settings.
Get OAuth Credentials​
- Navigate to the Secrets tab in the integration settings.
- Locate the OAuth credentials section.
- Copy the OAuth client ID value.
- Copy the OAuth client secret value.
Configure the Connection​
- Enter the OAuth client ID into the Client ID field.
- Enter the OAuth client secret into the Client Secret field.
When users authenticate through OAuth 2.0, they will be redirected to Notion's authorization page where they can select which pages and databases to share with the integration. The integration will have access only to the content explicitly shared by the user, within the capabilities configured during integration setup.
| Input | Notes | Example |
|---|---|---|
| Authorize URL | The OAuth 2.0 Authorization URL for Notion | https://api.notion.com/v1/oauth/authorize?owner=user |
| Client ID | Client ID of your Notion app. Find this in your Notion integrations settings. | 92a00a2f6f6a4f84bbaae2a991b0c0a2 |
| Client Secret | Client Secret of your Notion app. Find this in your Notion integrations settings. | secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3 |
| Scopes | Scopes are not used for Notion | |
| Token URL | The OAuth 2.0 Token URL for Notion | https://api.notion.com/v1/oauth/token |
Triggers​
New and Updated Database Items​
Checks for new and updated items in a Notion database on a configured schedule. | key: dataSourceItemsPollingTrigger
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Data Source ID | The unique identifier of the data source. Find this in the Notion URL or database settings menu. See Notion API Data Sources. | 668d797c76fa49349b05ad288df2d136 |
The Data Source Items trigger monitors records within a specific Notion database for new and updated items on a configured schedule. This is the most efficient polling trigger for monitoring database records.
Unlike the Pages and Data Sources triggers that search the entire workspace, this trigger queries a specific data source using server-side filtering, making it significantly more performant for database record monitoring.
How It Works​
- Runs on the configured schedule (e.g., every 5 minutes)
- Makes two parallel requests to the Query Data Source API:
- One filtered by
created_time >= lastPolledAtfor new items - One filtered by
last_edited_time >= lastPolledAtfor updated items
- One filtered by
- Returns separate arrays for new and updated items
- Maintains state to track the last poll time automatically
Note: Newly created items appear in both newItems and updatedItems arrays since creation time equals last edited time for new records.
Configuration​
- Connection: A Notion OAuth or Internal Integration connection with read access to the data source
- Data Source ID: The unique identifier of the data source to monitor
Finding Data Source IDs​
- Open the database as a full page in Notion
- Navigate to Database settings > Manage Data Sources
- Click the menu (⋯) next to the data source > Copy data source ID
Alternatively, use the List Data Sources action to retrieve IDs programmatically.
Returned Data​
Example Response
{
"data": {
"newItems": [
{
"object": "page",
"id": "12345678-1234-1234-1234-123456789012",
"created_time": "2026-01-23T10:00:00.000Z",
"last_edited_time": "2026-01-23T10:00:00.000Z",
"parent": {
"type": "data_source_id",
"data_source_id": "87654321-4321-4321-4321-210987654321"
},
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": [{ "plain_text": "New Record" }]
},
"Status": {
"id": "status",
"type": "select",
"select": { "name": "Active", "color": "green" }
}
},
"url": "https://www.notion.so/New-Record-12345678123412341234123456789012"
}
],
"updatedItems": [
{
"object": "page",
"id": "11111111-1111-1111-1111-111111111111",
"created_time": "2026-01-20T14:30:00.000Z",
"last_edited_time": "2026-01-23T11:15:00.000Z",
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": [{ "plain_text": "Updated Record" }]
},
"Status": {
"id": "status",
"type": "select",
"select": { "name": "Completed", "color": "blue" }
}
},
"url": "https://www.notion.so/Updated-Record-11111111111111111111111111111111"
}
]
}
}
The properties structure depends on the schema defined in the parent data source. See the Notion Property Values documentation for details.
New and Updated Databases​
Checks for new and updated databases in Notion on a configured schedule. | key: dataSourcesPollingTrigger
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. |
The Data Sources trigger monitors all data sources (database tables) shared with your Notion integration for new and updated schemas on a configured schedule.
In Notion's data model, a database is a container that holds one or more data sources (tables of records). This trigger monitors data source schema changes, not individual records within them. For record-level monitoring, use the Data Source Items trigger.
How It Works​
- Runs on the configured schedule (e.g., every 5 minutes)
- Calls the Notion Search API with a filter for data source objects
- Compares data source timestamps against the last poll time
- Categorizes data sources as "new" (created since last poll) or "updated" (modified but not created since last poll)
- Maintains state to track the last poll time automatically
Configuration​
- Connection: A Notion OAuth or Internal Integration connection with read access to the data sources being monitored
Returned Data​
Example Response
{
"data": {
"newDataSources": [
{
"object": "data_source",
"id": "12345678-1234-1234-1234-123456789012",
"created_time": "2026-01-23T10:00:00.000Z",
"last_edited_time": "2026-01-23T10:00:00.000Z",
"title": [{ "plain_text": "New Database" }],
"properties": {
"Name": { "id": "title", "type": "title" },
"Status": { "id": "abc123", "type": "select" }
},
"url": "https://www.notion.so/12345678123412341234123456789012"
}
],
"updatedDataSources": [
{
"object": "data_source",
"id": "87654321-4321-4321-4321-210987654321",
"created_time": "2026-01-20T14:30:00.000Z",
"last_edited_time": "2026-01-23T11:15:00.000Z",
"title": [{ "plain_text": "Updated Database" }],
"properties": {
"Name": { "id": "title", "type": "title" }
},
"url": "https://www.notion.so/87654321432143214321210987654321"
}
]
}
}
For complete data source object structure, see the Notion Data Source documentation.
New and Updated Pages​
Checks for new and updated pages in Notion on a configured schedule. | key: pagesPollingTrigger
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. |
The Pages trigger monitors all pages shared with your Notion integration for new and updated content on a configured schedule.
This trigger is best for workspace-wide page monitoring. For monitoring records within a specific database, use the Data Source Items trigger instead, which is more efficient.
How It Works​
- Runs on the configured schedule (e.g., every 5 minutes)
- Calls the Notion Search API to retrieve all pages shared with the integration
- Compares page timestamps against the last poll time
- Categorizes pages as "new" (created since last poll) or "updated" (modified but not created since last poll)
- Maintains state to track the last poll time automatically
Configuration​
- Connection: A Notion OAuth or Internal Integration connection with read access to the pages being monitored
Returned Data​
Example Response
{
"data": {
"newPages": [
{
"object": "page",
"id": "12345678-1234-1234-1234-123456789012",
"created_time": "2026-01-23T10:00:00.000Z",
"last_edited_time": "2026-01-23T10:00:00.000Z",
"properties": {
"title": {
"id": "title",
"type": "title",
"title": [{ "plain_text": "New Page Title" }]
}
},
"url": "https://www.notion.so/New-Page-12345678123412341234123456789012"
}
],
"updatedPages": [
{
"object": "page",
"id": "87654321-4321-4321-4321-210987654321",
"created_time": "2026-01-20T14:30:00.000Z",
"last_edited_time": "2026-01-23T11:15:00.000Z",
"properties": {
"title": {
"id": "title",
"type": "title",
"title": [{ "plain_text": "Updated Page Title" }]
}
},
"url": "https://www.notion.so/Updated-Page-87654321432143214321210987654321"
}
]
}
}
For complete page object structure, see the Notion Page Object documentation.
Data Sources​
Select Data Source​
Select a Notion data source from a picklist | key: selectDataSource | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. |
{
"result": [
{
"label": "Tasks",
"key": "2f26ee68-df30-4251-aad4-8ddc420cba3d"
},
{
"label": "Projects",
"key": "3c26ee68-df30-4251-aad4-8ddc420cba3e"
}
]
}
Select Database (Deprecated)​
Select a Notion database from a picklist | key: selectDatabase | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. |
Select Page​
Select a Notion page from a picklist | key: selectPage | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. |
{
"result": [
{
"label": "Welcome Page",
"key": "59833787-2cf9-4fdf-8782-e53db20768a5"
},
{
"label": "Getting Started",
"key": "69833787-2cf9-4fdf-8782-e53db20768a6"
}
]
}
Actions​
Create Data Source​
Add an additional data source to an existing database. A standard table view is created alongside the new data source. | key: createDataSource
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Database ID | The unique identifier of the database. For single-source databases, this is also the data source ID. Find this in the Notion URL or database settings menu. See Notion API Database Reference. | d9824bdc84454327be8b5b47500af6ce |
| Icon | The icon of the new page. Either an emoji object or an external file object. | |
| Properties | Property schema of the data source. The keys are the names of properties as they appear in Notion. | |
| Title | The title of the database as it appears in Notion, formatted as a rich text array. |
{
"data": {
"object": "data_source",
"id": "3c26ee68-df30-4251-aad4-8ddc420cba3e",
"properties": {
"Name": {
"id": "title",
"name": "Name",
"type": "title",
"title": {}
},
"Description": {
"id": "V}lX",
"name": "Description",
"type": "rich_text",
"rich_text": {}
}
},
"parent": {
"type": "database_id",
"database_id": "842a0286-cef0-46a8-abba-eac4c8ca644e"
},
"database_parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"created_time": "2024-01-15T10:30:00.000Z",
"created_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"last_edited_time": "2024-01-15T10:30:00.000Z",
"last_edited_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"title": [
{
"type": "text",
"text": {
"content": "New Data Source",
"link": null
},
"plain_text": "New Data Source"
}
],
"description": [],
"archived": false,
"in_trash": false
}
}
Create Database​
Creates a database as a subpage in the specified parent page, with the specified properties schema set on its initial data source. | key: updatedCreateDatabase
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Cover Image | The cover image of the new page, represented as a file object. | |
| Description | The description of the data source formatted as a rich text array. See Notion Rich Text Reference. | |
| Icon | The icon of the new page. Either an emoji object or an external file object. | |
| Initial Data Source Properties | Property schema for the initial data source. The keys are the names of properties as they appear in Notion. | |
| Parent | The parent page where the database will be created. Format: {"type": "page_id", "page_id": "..."} or {"type": "workspace", "workspace": true} for workspace-level. | |
| Title | The title of the database as it appears in Notion, formatted as a rich text array. |
{
"data": {
"object": "database",
"id": "bc1211ca-e3f1-4939-ae34-5260b16f627c",
"created_time": "2021-07-08T23:50:00.000Z",
"last_edited_time": "2021-07-08T23:50:00.000Z",
"created_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"last_edited_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"icon": {
"type": "emoji",
"emoji": "🎉"
},
"cover": {
"type": "external",
"external": {
"url": "https://website.domain/images/image.png"
}
},
"url": "https://www.notion.so/bc1211cae3f14939ae34260b16f627c",
"title": [
{
"type": "text",
"text": {
"content": "Grocery List",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Grocery List",
"href": null
}
],
"description": [],
"is_inline": false,
"parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"archived": false,
"in_trash": false,
"data_sources": [
{
"object": "data_source",
"id": "2f26ee68-df30-4251-aad4-8ddc420cba3d",
"properties": {
"Name": {
"id": "title",
"name": "Name",
"type": "title",
"title": {}
},
"Description": {
"id": "V}lX",
"name": "Description",
"type": "rich_text",
"rich_text": {}
}
}
}
]
}
}
Create Database (Deprecated)​
Creates a database as a subpage in the specified parent page, with the specified properties schema. Currently, the parent of a new database must be a Notion page or a wiki database. | key: createDatabase
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Properties | Property schema of database. The keys are the names of properties as they appear in Notion. For relation properties, use data_source_id instead of database_id. | |
| Title | The title of the database as it appears in Notion, formatted as a rich text array. | |
| Parent | The parent page where the database will be created. Format: {"type": "page_id", "page_id": "..."} |
{
"data": {
"object": "database",
"id": "bc1211ca-e3f1-4939-ae34-5260b16f627c",
"created_time": "2021-07-08T23:50:00.000Z",
"last_edited_time": "2021-07-08T23:50:00.000Z",
"icon": {
"type": "emoji",
"emoji": "🎉"
},
"cover": {
"type": "external",
"external": {
"url": "https://website.domain/images/image.png"
}
},
"url": "https://www.notion.so/bc1211cae3f14939ae34260b16f627c",
"title": [
{
"type": "text",
"text": {
"content": "Grocery List",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Grocery List",
"href": null
}
],
"properties": {
"+1": {
"id": "Wp%3DC",
"name": "+1",
"type": "people",
"people": {}
},
"In stock": {
"id": "fk%5EY",
"name": "In stock",
"type": "checkbox",
"checkbox": {}
},
"Price": {
"id": "evWq",
"name": "Price",
"type": "number",
"number": {
"format": "dollar"
}
},
"Description": {
"id": "V}lX",
"name": "Description",
"type": "rich_text",
"rich_text": {}
},
"Last ordered": {
"id": "eVnV",
"name": "Last ordered",
"type": "date",
"date": {}
},
"Meals": {
"id": "%7DWA~",
"name": "Meals",
"type": "relation",
"relation": {
"data_source_id": "668d797c-76fa-4934-9b05-ad288df2d136",
"single_property": {}
}
},
"Number of meals": {
"id": "Z\\Eh",
"name": "Number of meals",
"type": "rollup",
"rollup": {
"rollup_property_name": "Name",
"relation_property_name": "Meals",
"rollup_property_id": "title",
"relation_property_id": "mxp^",
"function": "count"
}
},
"Store availability": {
"id": "s}Kq",
"name": "Store availability",
"type": "multi_select",
"multi_select": {
"options": [
{
"id": "cb79b393-d1c1-4528-b517-c450859de766",
"name": "Duc Loi Market",
"color": "blue"
},
{
"id": "58aae162-75d4-403b-a793-3bc7308e4cd2",
"name": "Rainbow Grocery",
"color": "gray"
},
{
"id": "22d0f199-babc-44ff-bd80-a9eae3e3fcbf",
"name": "Nijiya Market",
"color": "purple"
},
{
"id": "0d069987-ffb0-4347-bde2-8e4068003dbc",
"name": "Gus's Community Market",
"color": "yellow"
}
]
}
},
"Photo": {
"id": "yfiK",
"name": "Photo",
"type": "files",
"files": {}
},
"Food group": {
"id": "CM%3EH",
"name": "Food group",
"type": "select",
"select": {
"options": [
{
"id": "6d4523fa-88cb-4ffd-9364-1e39d0f4e566",
"name": "Vegetable",
"color": "green"
},
{
"id": "268d7e75-de8f-4c4b-8b9d-de0f97021833",
"name": "Fruit",
"color": "red"
},
{
"id": "1b234a00-dc97-489c-b987-829264cfdfef",
"name": "Protein",
"color": "yellow"
}
]
}
},
"Name": {
"id": "title",
"name": "Name",
"type": "title",
"title": {}
}
},
"parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"archived": false
}
}
Create Database Item​
Creates an Item on a database. | key: createDatabaseItem
| Input | Notes | Example |
|---|---|---|
| Children | The content to be rendered on the new page, represented as an array of block objects. Block reference | |
| Connection | The Notion connection to use. | |
| Cover Image | The cover image of the new page, represented as a file object. | |
| Icon | The icon of the new page. Either an emoji object or an external file object. | |
| Parent | The parent database where the new page is inserted. Recommended format: {"type": "data_source_id", "data_source_id": "..."}. Legacy format {"database_id": "..."} is supported for single-source databases. | |
| Properties | The values of the page's properties. <strong>Important:</strong> If the parent is a database, the schema must match the parent database's properties. If the parent is a page, only 'title' is valid. Learn more |
{
"data": {
"object": "page",
"id": "59833787-2cf9-4fdf-8782-e53db20768a5",
"created_time": "2022-03-01T19:05:00.000Z",
"last_edited_time": "2022-07-06T19:16:00.000Z",
"created_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"last_edited_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"cover": {
"type": "external",
"external": {
"url": "https://upload.wikimedia.org/wikipedia/commons/6/62/Tuscankale.jpg"
}
},
"icon": {
"type": "emoji",
"emoji": "🥬"
},
"parent": {
"type": "data_source_id",
"data_source_id": "d9824bdc-8445-4327-be8b-5b47500af6ce"
},
"archived": false,
"properties": {
"Store availability": {
"id": "%3AUPp"
},
"Food group": {
"id": "A%40Hk"
},
"Price": {
"id": "BJXS"
},
"Responsible Person": {
"id": "Iowm"
},
"Last ordered": {
"id": "Jsfb"
},
"Cost of next trip": {
"id": "WOd%3B"
},
"Recipes": {
"id": "YfIu"
},
"Description": {
"id": "_Tc_"
},
"In stock": {
"id": "%60%5Bq%3F"
},
"Number of meals": {
"id": "zag~"
},
"Photo": {
"id": "%7DF_L"
},
"Name": {
"id": "title"
}
},
"url": "https://www.notion.so/Tuscan-Kale-598337872cf94fdf8782e53db20768a5"
}
}
Create Page​
Creates a new page that is a child of an existing page or database. | key: createPage
| Input | Notes | Example |
|---|---|---|
| Children | The content to be rendered on the new page, represented as an array of block objects. Block reference | |
| Connection | The Notion connection to use. | |
| Cover Image | The cover image of the new page, represented as a file object. | |
| Icon | The icon of the new page. Either an emoji object or an external file object. | |
| Parent | The parent where the new page is inserted. <strong>For page parents:</strong> {"type": "page_id", "page_id": "..."}. <strong>For database parents (recommended):</strong> {"type": "data_source_id", "data_source_id": "..."}. Legacy format {"database_id": "..."} is supported for single-source databases. | |
| Properties | The values of the page's properties. <strong>Important:</strong> If the parent is a database, the schema must match the parent database's properties. If the parent is a page, only 'title' is valid. Learn more |
{
"data": {
"object": "page",
"id": "59833787-2cf9-4fdf-8782-e53db20768a5",
"created_time": "2022-03-01T19:05:00.000Z",
"last_edited_time": "2022-07-06T19:16:00.000Z",
"created_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"last_edited_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"cover": {
"type": "external",
"external": {
"url": "https://upload.wikimedia.org/wikipedia/commons/6/62/Tuscankale.jpg"
}
},
"icon": {
"type": "emoji",
"emoji": "🥬"
},
"parent": {
"type": "data_source_id",
"data_source_id": "d9824bdc-8445-4327-be8b-5b47500af6ce"
},
"archived": false,
"properties": {
"Store availability": {
"id": "%3AUPp"
},
"Food group": {
"id": "A%40Hk"
},
"Price": {
"id": "BJXS"
},
"Responsible Person": {
"id": "Iowm"
},
"Last ordered": {
"id": "Jsfb"
},
"Cost of next trip": {
"id": "WOd%3B"
},
"Recipes": {
"id": "YfIu"
},
"Description": {
"id": "_Tc_"
},
"In stock": {
"id": "%60%5Bq%3F"
},
"Number of meals": {
"id": "zag~"
},
"Photo": {
"id": "%7DF_L"
},
"Name": {
"id": "title"
}
},
"url": "https://www.notion.so/Tuscan-Kale-598337872cf94fdf8782e53db20768a5"
}
}
Get Current User​
Get the currently logged in user | key: getCurrentUser
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. |
{
"data": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b",
"type": "person",
"person": {
"email": "john.doe@example.com"
},
"name": "John Doe",
"avatar_url": "https://secure.notion-static.com/avatar.jpg"
}
}
Get Database (Deprecated)​
Retrieve a database by ID | key: getDatabase
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Database ID | The unique identifier of the database. For single-source databases, this is also the data source ID. Find this in the Notion URL or database settings menu. See Notion API Database Reference. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "database",
"id": "bc1211ca-e3f1-4939-ae34-5260b16f627c",
"created_time": "2021-07-08T23:50:00.000Z",
"last_edited_time": "2021-07-08T23:50:00.000Z",
"title": [
{
"type": "text",
"text": {
"content": "Grocery List",
"link": null
},
"plain_text": "Grocery List"
}
],
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": {}
},
"Description": {
"id": "V}lX",
"type": "rich_text",
"rich_text": {}
}
},
"parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"url": "https://www.notion.so/bc1211cae3f14939ae34260b16f627c",
"archived": false
}
}
Get Page​
Retrieve a page by ID with optional property filters | key: getPage
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Filter Properties | Comma-separated list of page property IDs to include in the response. Use this to limit the response to specific page properties. | title,tags,status |
| Page ID | The unique identifier of the page in Notion. Find this in the page URL. See Notion API Page Reference. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "page",
"id": "59833787-2cf9-4fdf-8782-e53db20768a5",
"created_time": "2022-03-01T19:05:00.000Z",
"last_edited_time": "2022-07-06T19:16:00.000Z",
"created_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"last_edited_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"cover": {
"type": "external",
"external": {
"url": "https://upload.wikimedia.org/wikipedia/commons/6/62/Tuscankale.jpg"
}
},
"icon": {
"type": "emoji",
"emoji": "🥬"
},
"parent": {
"type": "data_source_id",
"data_source_id": "d9824bdc-8445-4327-be8b-5b47500af6ce"
},
"archived": false,
"properties": {
"Store availability": {
"id": "%3AUPp"
},
"Food group": {
"id": "A%40Hk"
},
"Price": {
"id": "BJXS"
},
"Responsible Person": {
"id": "Iowm"
},
"Last ordered": {
"id": "Jsfb"
},
"Cost of next trip": {
"id": "WOd%3B"
},
"Recipes": {
"id": "YfIu"
},
"Description": {
"id": "_Tc_"
},
"In stock": {
"id": "%60%5Bq%3F"
},
"Number of meals": {
"id": "zag~"
},
"Photo": {
"id": "%7DF_L"
},
"Name": {
"id": "title"
}
},
"url": "https://www.notion.so/Tuscan-Kale-598337872cf94fdf8782e53db20768a5"
}
}
Get User by ID​
Get a user by their ID | key: getUser
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| User ID | The unique identifier of the user in Notion. See Notion API User Reference. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b",
"type": "person",
"person": {
"email": "john.doe@example.com"
},
"name": "John Doe",
"avatar_url": "https://secure.notion-static.com/avatar.jpg"
}
}
List Data Sources​
List all data sources accessible to the integration. | key: listDataSources
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Fetch All | When true, fetches all pages using pagination. This ignores the start cursor input. | false |
| Start Cursor | The start cursor returned from a previous list or query action when at least one more page of records is available. Used for pagination. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "list",
"results": [
{
"object": "data_source",
"id": "2f26ee68-df30-4251-aad4-8ddc420cba3d",
"properties": {
"Name": {
"id": "title",
"name": "Name",
"type": "title",
"title": {}
}
},
"parent": {
"type": "database_id",
"database_id": "842a0286-cef0-46a8-abba-eac4c8ca644e"
},
"created_time": "2020-03-17T19:10:04.968Z",
"created_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"last_edited_time": "2020-03-17T21:49:37.913Z",
"last_edited_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"title": [
{
"type": "text",
"text": {
"content": "Tasks",
"link": null
},
"plain_text": "Tasks"
}
],
"description": [],
"archived": false,
"in_trash": false
}
],
"next_cursor": null,
"has_more": false,
"type": "data_source"
}
}
List Databases (Deprecated)​
List all databases or data sources | key: listDatabases
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Fetch All | When true, fetches all pages using pagination. This ignores the start cursor input. | false |
| Start Cursor | The start cursor returned from a previous list or query action when at least one more page of records is available. Used for pagination. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "list",
"results": [
{
"object": "database",
"id": "bc1211ca-e3f1-4939-ae34-5260b16f627c",
"created_time": "2021-07-08T23:50:00.000Z",
"last_edited_time": "2021-07-08T23:50:00.000Z",
"title": [
{
"type": "text",
"text": {
"content": "Grocery List",
"link": null
},
"plain_text": "Grocery List"
}
],
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": {}
}
},
"parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"url": "https://www.notion.so/bc1211cae3f14939ae34260b16f627c",
"archived": false
}
],
"next_cursor": null,
"has_more": false,
"type": "database"
}
}
List Pages​
List all pages | key: listPages
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Fetch All | When true, fetches all pages using pagination. This ignores the start cursor input. | false |
| Start Cursor | The start cursor returned from a previous list or query action when at least one more page of records is available. Used for pagination. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "list",
"results": [
{
"object": "page",
"id": "59833787-2cf9-4fdf-8782-e53db20768a5",
"created_time": "2022-03-01T19:05:00.000Z",
"last_edited_time": "2022-07-06T19:16:00.000Z",
"created_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"last_edited_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"parent": {
"type": "data_source_id",
"data_source_id": "d9824bdc-8445-4327-be8b-5b47500af6ce"
},
"archived": false,
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": [
{
"type": "text",
"text": {
"content": "Sample Page",
"link": null
},
"plain_text": "Sample Page"
}
]
}
},
"url": "https://www.notion.so/Sample-Page-598337872cf94fdf8782e53db20768a5"
}
],
"next_cursor": null,
"has_more": false,
"type": "page"
}
}
List Users​
List all users in the workspace with optional page size | key: listUsers
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Fetch All | Turn this on to fetch all pages. This will ignore the start cursor and page size inputs. | false |
| Page Size | The number of items to return per page. Maximum: 100. | 100 |
| Start Cursor | The start cursor returned from a previous list or query action when at least one more page of records is available. Used for pagination. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "list",
"results": [
{
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b",
"type": "person",
"person": {
"email": "john.doe@example.com"
},
"name": "John Doe",
"avatar_url": "https://secure.notion-static.com/avatar-1.jpg"
},
{
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4",
"type": "bot",
"bot": {
"owner": {
"type": "workspace",
"workspace": true
},
"workspace_name": "Example Workspace"
},
"name": "Integration Bot",
"avatar_url": "https://secure.notion-static.com/avatar-2.jpg"
}
],
"next_cursor": null,
"has_more": false,
"type": "user"
}
}
Query Data Source​
Query a data source to retrieve pages with optional filtering and sorting. | key: queryDataSource
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Data Source ID | The unique identifier of the data source. Find this in the Notion URL or database settings menu. See Notion API Data Sources. | 668d797c76fa49349b05ad288df2d136 |
| Fetch All | When true, fetches all pages using pagination. This ignores the start cursor input. | false |
| Filter Object | Filter conditions to apply to the database query. Supports compound filters using 'and' and 'or' operators. See Notion API Filter Documentation. | |
| Filter Properties | Limit the properties included in the response. Provide an object where keys are property names and values are property values or arrays of values. | |
| Page Size | The number of items to return per page. Maximum: 100. | 100 |
| Result Type | Type of results to return. Use 'data_source' (recommended) for the new API or 'database' for legacy support. | database |
| Sort | Array of sort objects defining the order of query results. Earlier sorts take precedence. See Notion API Sort Documentation. | |
| Start Cursor | The start cursor returned from a previous list or query action when at least one more page of records is available. Used for pagination. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "list",
"results": [
{
"object": "page",
"id": "59833787-2cf9-4fdf-8782-e53db20768a5",
"created_time": "2022-03-01T19:05:00.000Z",
"last_edited_time": "2022-07-06T19:16:00.000Z",
"created_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"last_edited_by": {
"object": "user",
"id": "ee5f0f84-409a-440f-983a-a5315961c6e4"
},
"parent": {
"type": "data_source_id",
"data_source_id": "d9824bdc-8445-4327-be8b-5b47500af6ce"
},
"archived": false,
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": [
{
"type": "text",
"text": {
"content": "Sample Item",
"link": null
},
"plain_text": "Sample Item"
}
]
}
},
"url": "https://www.notion.so/Sample-Item-598337872cf94fdf8782e53db20768a5"
}
],
"next_cursor": null,
"has_more": false,
"type": "page_or_database"
}
}
Query Database (Deprecated)​
Query a Notion database or data source | key: queryDatabase
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Database ID | The unique identifier of the database. For single-source databases, this is also the data source ID. Find this in the Notion URL or database settings menu. See Notion API Database Reference. | d9824bdc84454327be8b5b47500af6ce |
| Filter Object | Filter conditions to apply to the database query. Supports compound filters using 'and' and 'or' operators. See Notion API Filter Documentation. |
{
"data": {
"object": "list",
"results": [
{
"object": "page",
"id": "59833787-2cf9-4fdf-8782-e53db20768a5",
"created_time": "2022-03-01T19:05:00.000Z",
"last_edited_time": "2022-07-06T19:16:00.000Z",
"parent": {
"type": "database_id",
"database_id": "bc1211ca-e3f1-4939-ae34-5260b16f627c"
},
"archived": false,
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": [
{
"type": "text",
"text": {
"content": "Grocery Item",
"link": null
},
"plain_text": "Grocery Item"
}
]
}
},
"url": "https://www.notion.so/Grocery-Item-598337872cf94fdf8782e53db20768a5"
}
],
"next_cursor": null,
"has_more": false,
"type": "page_or_database"
}
}
Raw Request​
Send raw HTTP request to Notion | key: rawRequest
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Data | The HTTP body payload to send to the URL. | {"exampleKey": "Example Data"} |
| File Data | File Data to be sent as a multipart form upload. | [{key: "example.txt", value: "My File Contents"}] |
| File Data File Names | File names to apply to the file data inputs. Keys must match the file data keys above. | |
| Form Data | The Form Data to be sent as a multipart form upload. | [{"key": "Example Key", "value": new Buffer("Hello World")}] |
| Header | A list of headers to send with the request. | User-Agent: curl/7.64.1 |
| Max Retry Count | The maximum number of retries to attempt. Specify 0 for no retries. | 0 |
| Method | The HTTP method to use. | |
| Query Parameter | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2. | |
| Response Type | The type of data you expect in the response. You can request json, text, or binary data. | json |
| Retry On All Errors | If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors. | false |
| Retry Delay (ms) | The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled. | 0 |
| Timeout | The maximum time that a client will await a response to its request | 2000 |
| URL | Input the path only (/users/me), The base URL is already included (https://api.notion.com/v1). For example, to connect to https://api.notion.com/v1/users/me, only /users/me is entered in this field. | /users/me |
| Use Exponential Backoff | Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored. | false |
{
"data": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b",
"type": "person",
"person": {
"email": "john.doe@example.com"
},
"name": "John Doe",
"avatar_url": "https://secure.notion-static.com/avatar.jpg"
}
}
Retrieve Data Source​
Retrieve a data source object containing structural information about columns and configuration. | key: retrieveDataSource
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Data Source ID | The unique identifier of the data source. Find this in the Notion URL or database settings menu. See Notion API Data Sources. | 668d797c76fa49349b05ad288df2d136 |
{
"data": {
"object": "data_source",
"id": "2f26ee68-df30-4251-aad4-8ddc420cba3d",
"properties": {
"Name": {
"id": "title",
"name": "Name",
"type": "title",
"title": {}
},
"Description": {
"id": "V}lX",
"name": "Description",
"type": "rich_text",
"rich_text": {}
},
"Status": {
"id": "select_1",
"name": "Status",
"type": "select",
"select": {
"options": [
{
"id": "opt-1",
"name": "Not Started",
"color": "gray"
},
{
"id": "opt-2",
"name": "In Progress",
"color": "blue"
},
{
"id": "opt-3",
"name": "Completed",
"color": "green"
}
]
}
}
},
"parent": {
"type": "database_id",
"database_id": "842a0286-cef0-46a8-abba-eac4c8ca644e"
},
"database_parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"created_time": "2020-03-17T19:10:04.968Z",
"created_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"last_edited_time": "2020-03-17T21:49:37.913Z",
"last_edited_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"title": [
{
"type": "text",
"text": {
"content": "Tasks",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Tasks",
"href": null
}
],
"description": [],
"archived": false,
"in_trash": false
}
}
Retrieve Database​
Retrieve a database object by ID. Returns database-level information including child data sources. | key: retrieveDatabase
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Database ID | The unique identifier of the database. For single-source databases, this is also the data source ID. Find this in the Notion URL or database settings menu. See Notion API Database Reference. | d9824bdc84454327be8b5b47500af6ce |
{
"data": {
"object": "database",
"id": "bc1211ca-e3f1-4939-ae34-5260b16f627c",
"created_time": "2021-07-08T23:50:00.000Z",
"last_edited_time": "2021-07-08T23:50:00.000Z",
"created_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"last_edited_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"icon": {
"type": "emoji",
"emoji": "🎉"
},
"cover": {
"type": "external",
"external": {
"url": "https://website.domain/images/image.png"
}
},
"url": "https://www.notion.so/bc1211cae3f14939ae34260b16f627c",
"title": [
{
"type": "text",
"text": {
"content": "Grocery List",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Grocery List",
"href": null
}
],
"description": [],
"is_inline": false,
"parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"archived": false,
"in_trash": false,
"data_sources": [
{
"object": "data_source",
"id": "2f26ee68-df30-4251-aad4-8ddc420cba3d"
}
]
}
}
Update Data Source​
Update a data source object including its properties (schema), title, description, and trash status. | key: updateDataSource
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Database ID | If provided, the parent of the data source will be changed to the specified database ID. | d9824bdc84454327be8b5b47500af6ce |
| Data Source ID | The unique identifier of the data source. Find this in the Notion URL or database settings menu. See Notion API Data Sources. | 668d797c76fa49349b05ad288df2d136 |
| Icon | The icon of the new page. Either an emoji object or an external file object. | |
| Properties | Property schema of the data source. The keys are the names of properties as they appear in Notion. | |
| Title | The title of the database as it appears in Notion, formatted as a rich text array. |
{
"data": {
"object": "data_source",
"id": "2f26ee68-df30-4251-aad4-8ddc420cba3d",
"properties": {
"Name": {
"id": "title",
"name": "Name",
"type": "title",
"title": {}
},
"Description": {
"id": "V}lX",
"name": "Description",
"type": "rich_text",
"rich_text": {}
},
"Priority": {
"id": "select_2",
"name": "Priority",
"type": "select",
"select": {
"options": [
{
"id": "opt-low",
"name": "Low",
"color": "gray"
},
{
"id": "opt-med",
"name": "Medium",
"color": "yellow"
},
{
"id": "opt-high",
"name": "High",
"color": "red"
}
]
}
}
},
"parent": {
"type": "database_id",
"database_id": "842a0286-cef0-46a8-abba-eac4c8ca644e"
},
"database_parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"created_time": "2020-03-17T19:10:04.968Z",
"created_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"last_edited_time": "2024-01-15T14:25:00.000Z",
"last_edited_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"title": [
{
"type": "text",
"text": {
"content": "Updated Tasks",
"link": null
},
"plain_text": "Updated Tasks"
}
],
"description": [
{
"type": "text",
"text": {
"content": "A data source for tracking tasks",
"link": null
},
"plain_text": "A data source for tracking tasks"
}
],
"archived": false,
"in_trash": false
}
}
Update Database​
Update database-level attributes such as title, icon, cover, and inline status. To update data source properties, use the Update Data Source action. | key: updatedUpdateDatabase
| Input | Notes | Example |
|---|---|---|
| Connection | The Notion connection to use. | |
| Cover Image | The cover image of the new page, represented as a file object. | |
| Database ID | The unique identifier of the database. For single-source databases, this is also the data source ID. Find this in the Notion URL or database settings menu. See Notion API Database Reference. | d9824bdc84454327be8b5b47500af6ce |
| Icon | The icon of the new page. Either an emoji object or an external file object. | |
| Is Inline | Whether the database should be displayed inline in the parent page. If not provided, the inline status will not be updated. | |
| Parent | If provided, the parent of the database will be changed to the specified page ID or workspace. | |
| Title | The title of the database as it appears in Notion, formatted as a rich text array. |
{
"data": {
"object": "database",
"id": "bc1211ca-e3f1-4939-ae34-5260b16f627c",
"created_time": "2021-07-08T23:50:00.000Z",
"last_edited_time": "2024-01-15T14:30:00.000Z",
"created_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"last_edited_by": {
"object": "user",
"id": "45ee8d13-687b-47ce-a5ca-6e2e45548c4b"
},
"icon": {
"type": "emoji",
"emoji": "📋"
},
"cover": {
"type": "external",
"external": {
"url": "https://website.domain/images/new-cover.png"
}
},
"url": "https://www.notion.so/bc1211cae3f14939ae34260b16f627c",
"title": [
{
"type": "text",
"text": {
"content": "Updated Grocery List",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Updated Grocery List",
"href": null
}
],
"description": [],
"is_inline": false,
"parent": {
"type": "page_id",
"page_id": "98ad959b-2b6a-4774-80ee-00246fb0ea9b"
},
"archived": false,
"in_trash": false,
"data_sources": [
{
"object": "data_source",
"id": "2f26ee68-df30-4251-aad4-8ddc420cba3d"
}
]
}
}
Changelog​
2026-01-23​
Updated Notion component to support API v2025-09-03 with backward compatibility:
- Updated API Version - Now using Notion API v2025-09-03
- Enhanced Query Database - Added Data Source ID input to support databases with multiple data sources. Uses new
/data_sources/{id}/queryendpoint when Data Source ID is provided, falls back to legacy/databases/{id}/queryendpoint for backward compatibility - Enhanced List Databases - Added Result Type input to choose between data sources (recommended) and databases (legacy)
- Updated Create Database Item - Parent format now supports
data_source_idtype for database parents - Updated Create Database - Fixed parent format to use
page_idtype (databases must be created under pages) - Updated Examples - All example payloads now demonstrate the recommended
data_source_idformat for relations and parent objects
Migration Guide: Existing integrations using database_id will continue to work for single-source databases. For databases with multiple data sources, use the new data_source_id format.
2025-08-25​
Added the Internal Integration connection type
2025-04-30​
Added pagination support for improved handling of large datasets and better performance