Notion REST API
All-in-one workspace API for notes, docs, and databases
The Notion API enables developers to programmatically access and manipulate workspaces, databases, pages, and blocks. It provides endpoints for creating, reading, updating, and deleting content in Notion, making it ideal for building integrations, automating workflows, and syncing data between Notion and other applications. Developers use it to build custom connectors, automate documentation, and create productivity tools.
https://api.notion.com/v1
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /databases/{database_id} | Retrieve a database object by ID with its properties and schema |
| POST | /databases/{database_id}/query | Query a database and retrieve filtered, sorted pages with pagination |
| POST | /databases | Create a new database as a child of an existing page |
| PATCH | /databases/{database_id} | Update database properties, title, or description |
| GET | /pages/{page_id} | Retrieve a page object by ID including properties and metadata |
| POST | /pages | Create a new page in a database or as a child of another page |
| PATCH | /pages/{page_id} | Update page properties, archived status, or icon |
| GET | /blocks/{block_id} | Retrieve a block object by ID with its type and content |
| GET | /blocks/{block_id}/children | Retrieve all child blocks of a parent block with pagination |
| PATCH | /blocks/{block_id} | Update block content, type, or nested properties |
| DELETE | /blocks/{block_id} | Delete a block by setting it to archived status |
| PATCH | /blocks/{block_id}/children | Append child blocks to an existing block |
| GET | /users | List all users in the workspace with pagination |
| GET | /users/{user_id} | Retrieve a user object by ID including name and avatar |
| POST | /search | Search for pages and databases by title with filters and sorting |
Sponsor this page
AvailableReach developers actively building with Notion. See live pageview data and self-serve checkout — your slot goes live in minutes.
View inventory & pricing →Code Examples
curl -X POST https://api.notion.com/v1/databases/abc123def456/query \
-H 'Authorization: Bearer secret_XXXXXXXXXXXXXXXXXXXXXXXXXXXX' \
-H 'Notion-Version: 2022-06-28' \
-H 'Content-Type: application/json' \
-d '{
"filter": {
"property": "Status",
"select": {
"equals": "In Progress"
}
},
"sorts": [
{
"property": "Created",
"direction": "descending"
}
]
}'
Use Notion from Claude / Cursor / ChatGPT
Get a hosted MCP endpoint for Notion. Paste your Notion API key, copy back one URL, drop it into Claude Desktop, Cursor, or any AI client that supports remote MCP. Your AI calls Notion directly with your credentials — no local install, works on mobile.
query_notion_database
Query Notion databases with filters and sorting to retrieve relevant pages based on AI-determined criteria
create_notion_page
Create new pages in Notion databases or workspaces with AI-generated content and properties
update_notion_content
Update existing Notion pages or database entries with new information based on AI analysis
search_notion_workspace
Search across the entire Notion workspace to find relevant pages and databases for context
append_notion_blocks
Add new content blocks to existing Notion pages including text, lists, code, and embeds
Connect in 60 seconds
Paste your Notion key → get an MCP URL → paste into Claude/Cursor. Hosted by IOX, encrypted at rest.
Connect Notion to your AI →