Notion
This page provides information on how to connect Notion with Appsmith, which allows you to build interactive tools or dashboards that fetch, create, or update Notion content.
Connect Notion
To connect Appsmith to Notion, start by authenticating with your Notion account using your Notion email.
Once authenticated, you'll be able to select a Notion workspace and choose specific databases or pages to work with. Appsmith allows you to interact with these resources through queries and actions, enabling seamless integration with your Notion data.
Query Notion
The following section provides a reference guide describing available commands and their parameters for interacting with Notion.
Create Page
Creates a new page in your Notion workspace. This command allows you to define page details such as parent location, properties, content blocks, and visual elements.
Parent object
Specifies where the new page should be created in your Notion workspace. You can create the page either within an existing database or as a sub-page under another page.
To find a database ID:
- Open the database in Notion
- Look at the URL:
https://www.notion.so/workspace/[DATABASE_ID]?v=...
- The ID is the part before the question mark, typically a 32-character string with hyphens
To find a page ID:
- Open the page in Notion
- Look at the URL:
https://www.notion.so/workspace/Page-Title-[PAGE_ID]
- The ID is typically the last part of the URL, a 32-character string with hyphens
Example for creating a page in a database:
{
"database_id": "3f846c9a5d324a93a38a29b6c2a9cb12"
}
Example for creating a sub-page under an existing page:
{
"page_id": "7a774b5c39c942d4a640a9dc3a84f3f0"
}
Properties object
Defines values for the columns in a Notion database when creating a new page. This is required when the parent
is a database_id
.
Each key in the properties object should match a column name in the target Notion database, and the value should follow Notion's property format based on the column type.
Common property types include:
- Title:
{ "title": [{ "text": { "content": "Text here" } }] }
- Select:
{ "select": { "name": "Option name" } }
- Date:
{ "date": { "start": "2025-05-27" } }
- Number:
{ "number": 42 }
- Checkbox:
{ "checkbox": true }
Example for a task database with multiple properties:
{
"Name": {
"title": [
{
"text": {
"content": "Quarterly Report"
}
}
]
},
"Status": {
"select": {
"name": "In Progress"
}
},
"Due Date": {
"date": {
"start": "2025-06-15"
}
}
}
Children array
Defines the content blocks that appear inside the new Notion page. This is commonly used when creating a page under a page_id
(not a database).
Each object in the array represents a block type like paragraph, heading, to-do, bulleted list, etc. Each block must specify its type and corresponding content.
Common block types include:
- Paragraph:
{ "type": "paragraph", "paragraph": { "rich_text": [{ "text": { "content": "Text here" } }] } }
- Heading:
{ "type": "heading_2", "heading_2": { "rich_text": [{ "text": { "content": "Heading text" } }] } }
- Bulleted list:
{ "type": "bulleted_list_item", "bulleted_list_item": { "rich_text": [{ "text": { "content": "List item" } }] } }
Example for creating a page with multiple content blocks:
[
{
"object": "block",
"type": "heading_2",
"heading_2": {
"rich_text": [
{
"text": {
"content": "Project Overview"
}
}
]
}
},
{
"object": "block",
"type": "paragraph",
"paragraph": {
"rich_text": [
{
"text": {
"content": "This project aims to improve customer engagement through targeted content."
}
}
]
}
},
{
"object": "block",
"type": "bulleted_list_item",
"bulleted_list_item": {
"rich_text": [
{
"text": {
"content": "Phase 1: Research and planning"
}
}
]
}
}
]
Cover string
Sets a cover image for the Notion page. This image appears at the top of the page and helps visually distinguish it.
Enter a URL to an image that will be used as the page cover.
Example:
https://images.unsplash.com/photo-1579529518-9e396f309
Icon string
Sets a custom icon for the Notion page. This icon appears next to the page title and helps visually identify the page.
You can use an emoji character as the page icon.
Example:
🚀
Update Page
Updates an existing page in your Notion workspace. This command allows you to modify page details such as properties, icon, cover image, or archive status.
Page ID string
The unique identifier of the page to update.
To find a page ID:
- Open the page in Notion
- Look at the URL:
https://www.notion.so/workspace/Page-Title-[PAGE_ID]
- The ID is typically the last part of the URL, a 32-character string with hyphens
Example:
7a774b5c39c942d4a640a9dc3a84f3f0
Archived boolean
Determines whether the page is archived or active. Set to true
to archive the page or false
to unarchive it.
Archiving a page removes it from the main workspace view but preserves it for future reference.
Example to archive a page:
true
Example to unarchive a page:
false
Properties object
Updates the values of properties (columns) for a page in a database. The format is the same as when creating a page.
Example for updating task status and due date:
{
"Status": {
"select": {
"name": "Completed"
}
},
"Due Date": {
"date": {
"start": "2025-06-30"
}
}
}
Cover string
Updates the cover image for the Notion page.
Enter a URL to an image that will be used as the new page cover.
Example:
https://images.unsplash.com/photo-1518655048521-f130df041f66
Icon string
Updates the icon for the Notion page.
Enter an emoji character to use as the new page icon.
Example:
📊
Get Page by ID
Retrieves detailed information about a specific page using its unique Notion page ID. This command returns comprehensive data about the page, including its properties, parent information, and metadata.
Page Id string
The unique identifier of the page to retrieve.
To find a page ID:
- Open the page in Notion
- Look at the URL:
https://www.notion.so/workspace/Page-Title-[PAGE_ID]
- The ID is typically the last part of the URL, a 32-character string with hyphens
Example:
7a774b5c39c942d4a640a9dc3a84f3f0
Archive Page
Archives a page in your Notion workspace. This command moves the page to the archive, making it less visible but still accessible if needed later.
Page Id string
The unique identifier of the page to archive.
To find a page ID:
- Open the page in Notion
- Look at the URL:
https://www.notion.so/workspace/Page-Title-[PAGE_ID]
- The ID is typically the last part of the URL, a 32-character string with hyphens
Example:
7a774b5c39c942d4a640a9dc3a84f3f0
Search Pages
Searches for pages in your Notion workspace based on a keyword or phrase. This command returns pages that match the search criteria, including their IDs, titles, and other metadata.
Filter string
The search keyword or phrase used to match page titles and content.
The search performs a full-text search across all pages your integration has access to, returning pages where the title or content includes the filter string.
Example to search for project-related pages:
project plan
Example to search for specific content:
quarterly budget
Example to search for pages by topic:
marketing strategy
Get Page Content
Retrieves the full content of a specific page, including all blocks such as text, headings, lists, images, and other elements. This command returns the structured content of the page as a series of blocks.
Block Id string
The unique identifier of the root block of the page. This is typically the same as the page ID.
To find a block ID for a page:
- Open the page in Notion
- Look at the URL:
https://www.notion.so/workspace/Page-Title-[PAGE_ID]
- The page ID is also the root block ID
Example:
7a774b5c39c942d4a640a9dc3a84f3f0
Update Block
Updates a specific block within a Notion page. This command allows you to modify the content or properties of an individual block, such as a paragraph, image, or table.
Block ID string
The unique identifier of the block to update.
To find a block ID:
- Use the "Get Page Content" command to list all blocks in a page
- Each block in the response will have an
id
field - Block IDs are typically 32-character strings with hyphens
Example:
b55c9c91-384d-452b-81db-d1ef79372b75
Archived boolean
Determines whether the block is archived or active. Set to true
to archive the block or false
to unarchive it.
Example to archive a block:
true
Paragraph object
Updates the content of a paragraph block. This is used when the block type is "paragraph".
Example:
{
"rich_text": [
{
"text": {
"content": "This is the updated paragraph text with new information."
}
}
]
}
Image string
Updates an image block with a new image. This is used when the block type is "image".
Enter a URL to the new image.
Example:
https://images.unsplash.com/photo-1504805572947-34fad45aed93
Bookmark string
Updates a bookmark block with a new URL. This is used when the block type is "bookmark".
Enter the new URL for the bookmark.
Example:
https://www.notion.so/help
PDF string
Updates a PDF block with a new PDF file. This is used when the block type is "pdf".
Enter a URL to the new PDF file.
Example:
https://example.org/documents/quarterly-report.pdf
Table object
Updates a table block with new structure and content. This is used when the block type is "table".
Example:
{
"table_width": 3,
"has_column_header": true,
"has_row_header": false,
"children": [
{
"type": "table_row",
"table_row": {
"cells": [
[{"type": "text", "text": {"content": "Product"}}],
[{"type": "text", "text": {"content": "Price"}}],
[{"type": "text", "text": {"content": "Stock"}}]
]
}
},
{
"type": "table_row",
"table_row": {
"cells": [
[{"type": "text", "text": {"content": "Widget A"}}],
[{"type": "text", "text": {"content": "$25.99"}}],
[{"type": "text", "text": {"content": "In stock"}}]
]
}
}
]
}
Table of Contents object
Updates a table of contents block. This is used when the block type is "table_of_contents".
Example:
{
"color": "default"
}
Get Block by ID
Retrieves detailed information about a specific block using its unique Notion block ID. This command returns comprehensive data about the block, including its type, content, and metadata.
Block ID string
The unique identifier of the block to retrieve.
To find a block ID:
- Use the "Get Page Content" command to list all blocks in a page
- Each block in the response will have an
id
field - Block IDs are typically 32-character strings with hyphens
Example:
b55c9c91-384d-452b-81db-d1ef79372b75
Delete Block
Deletes a specific block from a Notion page. This command permanently removes the block and its content.
Block ID string
The unique identifier of the block to delete.
To find a block ID:
- Use the "Get Page Content" command to list all blocks in a page
- Each block in the response will have an
id
field - Block IDs are typically 32-character strings with hyphens
Example:
b55c9c91-384d-452b-81db-d1ef79372b75
Custom Action
Executes a custom action against the Notion API. This command allows for advanced operations not covered by the standard commands.
This command enables you to perform custom operations with Notion that aren't covered by the standard commands. You can specify parameters and values according to your specific requirements.
When using Custom Action, you may need to refer to the Notion documentation for guidance on specific operations and required parameters.
Example for a custom search query:
{
"query": "Project Plan",
"sort": {
"direction": "ascending",
"timestamp": "last_edited_time"
}
}
Example for a custom filter:
{
"filter": {
"property": "Status",
"select": {
"equals": "Completed"
}
}
}