Skip to main content

Notion Component

Manage Notion pages, databases, and users

Component key: notion ·
· Changelog ↓

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: notionInternalIntegration

To 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

  1. Visit notion.so/my-integrations and log into Notion.
  2. Click Create new integration.
  3. 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
  4. 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
  5. Under Content Capabilities, choose specific content types if needed (pages, databases, comments, etc.).
  6. Save the integration settings.

Get the Integration Token

  1. Navigate to the Secrets tab in the integration settings.
  2. Copy the Internal Integration Token value.
    • The token format is: secret_ followed by a series of alphanumeric characters
    • Example format: secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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:

  1. Navigate to the Notion page or database that the integration should access.
  2. Click the ... (more) menu in the top right corner of the page.
  3. Select Connect to from the menu.
  4. 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.

InputNotesExample
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: notionOauth

To 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

Setup Steps

  1. Visit notion.so/my-integrations and log into Notion.
  2. Click Create new integration.
  3. 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
  4. 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
  5. Under Content Capabilities, choose specific content types if needed (pages, databases, comments, etc.).
  6. Save the integration settings.

Configure OAuth Settings

  1. Navigate to the Distribution tab in the integration settings.
  2. Select Public integration to enable OAuth 2.0 authentication.
  3. Under Redirect URIs, add the OAuth callback URL: https://oauth2.prismatic.io/callback
  4. Configure any additional OAuth settings as needed.
  5. Review and save the distribution settings.

Get OAuth Credentials

  1. Navigate to the Secrets tab in the integration settings.
  2. Locate the OAuth credentials section.
  3. Copy the OAuth client ID value.
  4. 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.

InputNotesExample
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

InputNotesExample
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

  1. Runs on the configured schedule (e.g., every 5 minutes)
  2. Makes two parallel requests to the Query Data Source API:
    • One filtered by created_time >= lastPolledAt for new items
    • One filtered by last_edited_time >= lastPolledAt for updated items
  3. Returns separate arrays for new and updated items
  4. 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

  1. Open the database as a full page in Notion
  2. Navigate to Database settings > Manage Data Sources
  3. 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

InputNotesExample
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

  1. Runs on the configured schedule (e.g., every 5 minutes)
  2. Calls the Notion Search API with a filter for data source objects
  3. Compares data source timestamps against the last poll time
  4. Categorizes data sources as "new" (created since last poll) or "updated" (modified but not created since last poll)
  5. 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

InputNotesExample
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

  1. Runs on the configured schedule (e.g., every 5 minutes)
  2. Calls the Notion Search API to retrieve all pages shared with the integration
  3. Compares page timestamps against the last poll time
  4. Categorizes pages as "new" (created since last poll) or "updated" (modified but not created since last poll)
  5. 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

InputNotesExample
Connection

The Notion connection to use.

Example Payload for Select Data Source
Loading…

Select Database (Deprecated)

Select a Notion database from a picklist | key: selectDatabase | type: picklist

InputNotesExample
Connection

The Notion connection to use.


Select Page

Select a Notion page from a picklist | key: selectPage | type: picklist

InputNotesExample
Connection

The Notion connection to use.

Example Payload for Select Page
Loading…

Select User

Select a Notion user from a picklist. | key: selectUser | type: picklist

InputNotesExample
Connection

The Notion connection to use.

Example Payload for Select User
Loading…

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

InputNotesExample
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.

{
  "type": "external",
  "external": {
    "url": "https://images.unsplash.com/photo-1525310072745-f49212b5ac6d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1065&q=80"
  }
}
Properties

Property schema of the data source. The keys are the names of properties as they appear in Notion.

{
  "Name": {
    "title": {}
  },
  "Description": {
    "rich_text": {}
  }
}
Title

The title of the database as it appears in Notion, formatted as a rich text array.

[
  {
    "type": "text",
    "text": {
      "content": "Some words ",
      "link": null
    },
    "annotations": {
      "bold": false,
      "italic": false,
      "strikethrough": false,
      "underline": false,
      "code": false,
      "color": "default"
    },
    "plain_text": "Some words ",
    "href": null
  }
]
Example Payload for Create Data Source
Loading…

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

InputNotesExample
Connection

The Notion connection to use.

Cover Image

The cover image of the new page, represented as a file object.

{
  "type": "file",
  "file": {
    "url": "https://s3.us-west-2.amazonaws.com/secure.notion-static.com/7b8b0713-dbd4-4962-b38b-955b6c49a573/My_test_image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20221024%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20221024T205211Z&X-Amz-Expires=3600&X-Amz-Signature=208aa971577ff05e75e68354e8a9488697288ff3fb3879c2d599433a7625bf90&X-Amz-SignedHeaders=host&x-id=GetObject",
    "expiry_time": "2022-10-24T22:49:22.765Z"
  }
}
Description

The description of the data source formatted as a rich text array. See Notion Rich Text Reference.

[
  {
    "annotations": {
      "bold": false,
      "italic": false,
      "strikethrough": false,
      "underline": false,
      "code": false,
      "color": "\"default\""
    }
  }
]
Icon

The icon of the new page. Either an emoji object or an external file object.

{
  "type": "external",
  "external": {
    "url": "https://images.unsplash.com/photo-1525310072745-f49212b5ac6d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1065&q=80"
  }
}
Initial Data Source Properties

Property schema for the initial data source. The keys are the names of properties as they appear in Notion.

{
  "Name": {
    "title": {}
  },
  "Description": {
    "rich_text": {}
  },
  "In stock": {
    "checkbox": {}
  },
  "Food group": {
    "select": {
      "options": [
        {
          "name": "Vegetable",
          "color": "green"
        },
        {
          "name": "Fruit",
          "color": "red"
        },
        {
          "name": "Protein",
          "color": "yellow"
        }
      ]
    }
  },
  "Price": {
    "number": {
      "format": "dollar"
    }
  },
  "Last ordered": {
    "date": {}
  },
  "Meals": {
    "relation": {
      "data_source_id": "668d797c-76fa-4934-9b05-ad288df2d136",
      "single_property": {}
    }
  },
  "Number of meals": {
    "rollup": {
      "rollup_property_name": "Name",
      "relation_property_name": "Meals",
      "function": "count"
    }
  },
  "Store availability": {
    "type": "multi_select",
    "multi_select": {
      "options": [
        {
          "name": "Duc Loi Market",
          "color": "blue"
        },
        {
          "name": "Rainbow Grocery",
          "color": "gray"
        },
        {
          "name": "Nijiya Market",
          "color": "purple"
        },
        {
          "name": "Gus's Community Market",
          "color": "yellow"
        }
      ]
    }
  },
  "+1": {
    "people": {}
  },
  "Photo": {
    "files": {}
  }
}
Parent

The parent page where the database will be created. Format: {"type": "page_id", "page_id": "..."} or {"type": "workspace", "workspace": true} for workspace-level.

{
  "type": "page_id",
  "page_id": "d9824bdc84454327be8b5b47500af6ce"
}
Title

The title of the database as it appears in Notion, formatted as a rich text array.

[
  {
    "type": "text",
    "text": {
      "content": "Some words ",
      "link": null
    },
    "annotations": {
      "bold": false,
      "italic": false,
      "strikethrough": false,
      "underline": false,
      "code": false,
      "color": "default"
    },
    "plain_text": "Some words ",
    "href": null
  }
]
Example Payload for Create Database
Loading…

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

InputNotesExample
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.

{
  "Name": {
    "title": {}
  },
  "Description": {
    "rich_text": {}
  },
  "In stock": {
    "checkbox": {}
  },
  "Food group": {
    "select": {
      "options": [
        {
          "name": "Vegetable",
          "color": "green"
        },
        {
          "name": "Fruit",
          "color": "red"
        },
        {
          "name": "Protein",
          "color": "yellow"
        }
      ]
    }
  },
  "Price": {
    "number": {
      "format": "dollar"
    }
  },
  "Last ordered": {
    "date": {}
  },
  "Meals": {
    "relation": {
      "data_source_id": "668d797c-76fa-4934-9b05-ad288df2d136",
      "single_property": {}
    }
  },
  "Number of meals": {
    "rollup": {
      "rollup_property_name": "Name",
      "relation_property_name": "Meals",
      "function": "count"
    }
  },
  "Store availability": {
    "type": "multi_select",
    "multi_select": {
      "options": [
        {
          "name": "Duc Loi Market",
          "color": "blue"
        },
        {
          "name": "Rainbow Grocery",
          "color": "gray"
        },
        {
          "name": "Nijiya Market",
          "color": "purple"
        },
        {
          "name": "Gus's Community Market",
          "color": "yellow"
        }
      ]
    }
  },
  "+1": {
    "people": {}
  },
  "Photo": {
    "files": {}
  }
}
Title

The title of the database as it appears in Notion, formatted as a rich text array.

[
  {
    "type": "text",
    "text": {
      "content": "Some words ",
      "link": null
    },
    "annotations": {
      "bold": false,
      "italic": false,
      "strikethrough": false,
      "underline": false,
      "code": false,
      "color": "default"
    },
    "plain_text": "Some words ",
    "href": null
  }
]
Parent

The parent page where the database will be created. Format: {"type": "page_id", "page_id": "..."}

{
  "type": "page_id",
  "page_id": "d9824bdc84454327be8b5b47500af6ce"
}
Example Payload for Create Database (Deprecated)
Loading…

Create Database Item

Creates an Item on a database. | key: createDatabaseItem

InputNotesExample
Children

The content to be rendered on the new page, represented as an array of block objects. Block reference

[
  {
    "object": "block",
    "heading_2": {
      "rich_text": [
        {
          "text": {
            "content": "Lacinato kale"
          }
        }
      ]
    }
  },
  {
    "object": "block",
    "paragraph": {
      "rich_text": [
        {
          "text": {
            "content": "Lacinato kale is a variety of kale with a long tradition in Italian cuisine, especially that of Tuscany. It is also known as Tuscan kale, Italian kale, dinosaur kale, kale, flat back kale, palm tree kale, or black Tuscan palm.",
            "link": {
              "url": "https://en.wikipedia.org/wiki/Lacinato_kale"
            }
          },
          "href": "https://en.wikipedia.org/wiki/Lacinato_kale"
        }
      ],
      "color": "default"
    }
  }
]
Connection

The Notion connection to use.

Cover Image

The cover image of the new page, represented as a file object.

{
  "type": "file",
  "file": {
    "url": "https://s3.us-west-2.amazonaws.com/secure.notion-static.com/7b8b0713-dbd4-4962-b38b-955b6c49a573/My_test_image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20221024%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20221024T205211Z&X-Amz-Expires=3600&X-Amz-Signature=208aa971577ff05e75e68354e8a9488697288ff3fb3879c2d599433a7625bf90&X-Amz-SignedHeaders=host&x-id=GetObject",
    "expiry_time": "2022-10-24T22:49:22.765Z"
  }
}
Icon

The icon of the new page. Either an emoji object or an external file object.

{
  "type": "external",
  "external": {
    "url": "https://images.unsplash.com/photo-1525310072745-f49212b5ac6d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1065&q=80"
  }
}
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.

{
  "type": "data_source_id",
  "data_source_id": "d9824bdc84454327be8b5b47500af6ce"
}
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

{
  "Name": {
    "title": [
      {
        "text": {
          "content": "Tuscan kale"
        }
      }
    ]
  },
  "Description": {
    "rich_text": [
      {
        "text": {
          "content": "A dark green leafy vegetable"
        }
      }
    ]
  },
  "Food group": {
    "select": {
      "name": "🥬 Vegetable"
    }
  }
}
Example Payload for Create Database Item
Loading…

Create Page

Creates a new page that is a child of an existing page or database. | key: createPage

InputNotesExample
Children

The content to be rendered on the new page, represented as an array of block objects. Block reference

[
  {
    "object": "block",
    "heading_2": {
      "rich_text": [
        {
          "text": {
            "content": "Lacinato kale"
          }
        }
      ]
    }
  },
  {
    "object": "block",
    "paragraph": {
      "rich_text": [
        {
          "text": {
            "content": "Lacinato kale is a variety of kale with a long tradition in Italian cuisine, especially that of Tuscany. It is also known as Tuscan kale, Italian kale, dinosaur kale, kale, flat back kale, palm tree kale, or black Tuscan palm.",
            "link": {
              "url": "https://en.wikipedia.org/wiki/Lacinato_kale"
            }
          },
          "href": "https://en.wikipedia.org/wiki/Lacinato_kale"
        }
      ],
      "color": "default"
    }
  }
]
Connection

The Notion connection to use.

Cover Image

The cover image of the new page, represented as a file object.

{
  "type": "file",
  "file": {
    "url": "https://s3.us-west-2.amazonaws.com/secure.notion-static.com/7b8b0713-dbd4-4962-b38b-955b6c49a573/My_test_image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20221024%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20221024T205211Z&X-Amz-Expires=3600&X-Amz-Signature=208aa971577ff05e75e68354e8a9488697288ff3fb3879c2d599433a7625bf90&X-Amz-SignedHeaders=host&x-id=GetObject",
    "expiry_time": "2022-10-24T22:49:22.765Z"
  }
}
Icon

The icon of the new page. Either an emoji object or an external file object.

{
  "type": "external",
  "external": {
    "url": "https://images.unsplash.com/photo-1525310072745-f49212b5ac6d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1065&q=80"
  }
}
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.

{
  "type": "page_id",
  "page_id": "d9824bdc84454327be8b5b47500af6ce"
}
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

{
  "Name": {
    "title": [
      {
        "text": {
          "content": "Tuscan kale"
        }
      }
    ]
  },
  "Description": {
    "rich_text": [
      {
        "text": {
          "content": "A dark green leafy vegetable"
        }
      }
    ]
  },
  "Food group": {
    "select": {
      "name": "🥬 Vegetable"
    }
  }
}
Example Payload for Create Page
Loading…

Get Current User

Get the currently logged in user | key: getCurrentUser

InputNotesExample
Connection

The Notion connection to use.

Example Payload for Get Current User
Loading…

Get Database (Deprecated)

Retrieve a database by ID | key: getDatabase

InputNotesExample
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
Example Payload for Get Database (Deprecated)
Loading…

Get Page

Retrieve a page by ID with optional property filters | key: getPage

InputNotesExample
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
Example Payload for Get Page
Loading…

Get User by ID

Get a user by their ID | key: getUser

InputNotesExample
Connection

The Notion connection to use.

User ID

The unique identifier of the user in Notion. See Notion API User Reference.

d9824bdc84454327be8b5b47500af6ce
Example Payload for Get User by ID
Loading…

List Data Sources

List all data sources accessible to the integration. | key: listDataSources

InputNotesExample
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
Example Payload for List Data Sources
Loading…

List Databases (Deprecated)

List all databases or data sources | key: listDatabases

InputNotesExample
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
Example Payload for List Databases (Deprecated)
Loading…

List Pages

List all pages | key: listPages

InputNotesExample
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
Example Payload for List Pages
Loading…

List Users

List all users in the workspace with optional page size | key: listUsers

InputNotesExample
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
Example Payload for List Users
Loading…

Query Data Source

Query a data source to retrieve pages with optional filtering and sorting. | key: queryDataSource

InputNotesExample
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.

{
  "and": [
    {
      "property": "Done",
      "checkbox": {
        "equals": true
      }
    },
    {
      "or": [
        {
          "property": "Tags",
          "contains": "A"
        },
        {
          "property": "Tags",
          "contains": "B"
        }
      ]
    }
  ]
}
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.

{
  "Name": "example",
  "Tag": [
    "tag1",
    "tag2"
  ]
}
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.

[
  {
    "property": "Last ordered",
    "direction": "ascending"
  }
]
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
Example Payload for Query Data Source
Loading…

Query Database (Deprecated)

Query a Notion database or data source | key: queryDatabase

InputNotesExample
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.

{
  "and": [
    {
      "property": "Done",
      "checkbox": {
        "equals": true
      }
    },
    {
      "or": [
        {
          "property": "Tags",
          "contains": "A"
        },
        {
          "property": "Tags",
          "contains": "B"
        }
      ]
    }
  ]
}
Example Payload for Query Database (Deprecated)
Loading…

Raw Request

Send raw HTTP request to Notion | key: rawRequest

InputNotesExample
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
Example Payload for Raw Request
Loading…

Retrieve Data Source

Retrieve a data source object containing structural information about columns and configuration. | key: retrieveDataSource

InputNotesExample
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
Example Payload for Retrieve Data Source
Loading…

Retrieve Database

Retrieve a database object by ID. Returns database-level information including child data sources. | key: retrieveDatabase

InputNotesExample
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
Example Payload for Retrieve Database
Loading…

Update Data Source

Update a data source object including its properties (schema), title, description, and trash status. | key: updateDataSource

InputNotesExample
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.

{
  "type": "external",
  "external": {
    "url": "https://images.unsplash.com/photo-1525310072745-f49212b5ac6d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1065&q=80"
  }
}
Properties

Property schema of the data source. The keys are the names of properties as they appear in Notion.

{
  "Name": {
    "title": {}
  },
  "Description": {
    "rich_text": {}
  }
}
Title

The title of the database as it appears in Notion, formatted as a rich text array.

[
  {
    "type": "text",
    "text": {
      "content": "Some words ",
      "link": null
    },
    "annotations": {
      "bold": false,
      "italic": false,
      "strikethrough": false,
      "underline": false,
      "code": false,
      "color": "default"
    },
    "plain_text": "Some words ",
    "href": null
  }
]
Example Payload for Update Data Source
Loading…

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

InputNotesExample
Connection

The Notion connection to use.

Cover Image

The cover image of the new page, represented as a file object.

{
  "type": "file",
  "file": {
    "url": "https://s3.us-west-2.amazonaws.com/secure.notion-static.com/7b8b0713-dbd4-4962-b38b-955b6c49a573/My_test_image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20221024%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20221024T205211Z&X-Amz-Expires=3600&X-Amz-Signature=208aa971577ff05e75e68354e8a9488697288ff3fb3879c2d599433a7625bf90&X-Amz-SignedHeaders=host&x-id=GetObject",
    "expiry_time": "2022-10-24T22:49:22.765Z"
  }
}
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.

{
  "type": "external",
  "external": {
    "url": "https://images.unsplash.com/photo-1525310072745-f49212b5ac6d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1065&q=80"
  }
}
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.

{
  "type": "page_id",
  "page_id": "d9824bdc84454327be8b5b47500af6ce"
}
Title

The title of the database as it appears in Notion, formatted as a rich text array.

[
  {
    "type": "text",
    "text": {
      "content": "Some words ",
      "link": null
    },
    "annotations": {
      "bold": false,
      "italic": false,
      "strikethrough": false,
      "underline": false,
      "code": false,
      "color": "default"
    },
    "plain_text": "Some words ",
    "href": null
  }
]
Example Payload for Update Database
Loading…

Changelog

2026-04-30

Updated spectral version

2026-02-26

Added inline data source for users to enable dynamic dropdown selection

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}/query endpoint when Data Source ID is provided, falls back to legacy /databases/{id}/query endpoint 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_id type for database parents
  • Updated Create Database - Fixed parent format to use page_id type (databases must be created under pages)
  • Updated Examples - All example payloads now demonstrate the recommended data_source_id format 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