← Back to Marketplace

Notion

Bearer

Pages, databases, and blocks. A programmable workspace for teams.

https://api.notion.com
OVERVIEW

The Notion API lets you read and write pages, query databases, and manipulate block-level content. Databases in Notion are powerful structured data stores with rich property types (select, multi-select, dates, relations, formulas).

Authentication uses internal integration tokens with a required Notion-Version header. The block model is composable. Pages contain blocks, blocks can contain other blocks, and databases are queryable with filters and sorts.

GET YOUR API KEY

Authentication setup

  1. Go to notion.so/my-integrations
  2. Click New integration
  3. Give it a name, select the workspace, choose capabilities
  4. Copy the Internal Integration Secret. Starts with ntn_
  5. Share pages/databases with the integration in Notion (three-dot menu → Connections)
Token format ntn_...
Auth type bearer
Required header Notion-Version: 2022-06-28
QUICK CONNECT

Create a connection in one request.

CONNECT NOTION
POST /connections Authorization: Bearer $TOKEN Content-Type: application/json { "name": "Notion", "base_url": "https://api.notion.com", "auth_type": "bearer", "auth_config": {"token": "ntn_..."}, "extra_headers": {"Notion-Version": "2022-06-28"} } → {"id": "cn_xxxxxxxx", "name": "Notion"}
KEY ENDPOINTS

What you can call via proxy.

MethodPathDescription
POST /v1/pages Create a new page
GET /v1/pages/{id} Get page properties
PATCH /v1/pages/{id} Update page properties
POST /v1/databases/{id}/query Query a database with filters and sorts
POST /v1/search Search across pages and databases
GET /v1/blocks/{id}/children Get child blocks of a page or block
PATCH /v1/blocks/{id} Update a block's content
GET /v1/users List workspace users
EXAMPLE

Query Database

PROXY CALL
POST /proxy/cn_xxxxxxxx/v1/databases/abc123/query Authorization: Bearer $TOKEN Content-Type: application/json { "filter": { "property": "Status", "select": {"equals": "In Progress"} }, "sorts": [{"property": "Priority", "direction": "descending"}] } { "results": [ { "id": "page-1", "properties": { "Name": {"title": [{"text": {"content": "Ship API v2"}}]}, "Status": {"select": {"name": "In Progress"}}, "Priority": {"select": {"name": "High"}} } } ], "has_more": false }
USE CASES

What people build with Notion.

CMS Backend

Use Notion databases as a content management system for blogs and marketing pages.

Project Tracking

Query tasks, update statuses, and sync project data with external tools.

Knowledge Base Sync

Read and write documentation pages programmatically for automated wiki updates.

Data Collection

Create pages from form submissions, API events, or CI/CD pipeline results.

# Notion > Pages, databases, and blocks. A programmable workspace for teams. ## Overview The Notion API lets you read and write pages, query databases, and manipulate block-level content. Databases in Notion are powerful structured data stores with rich property types (select, multi-select, dates, relations, formulas). Authentication uses internal integration tokens with a required <code>Notion-Version</code> header. The block model is composable. Pages contain blocks, blocks can contain other blocks, and databases are queryable with filters and sorts. - **Base URL:** https://api.notion.com - **Auth type:** bearer - **Token format:** ntn_... ## Get Your API Key 1. Go to notion.so/my-integrations 2. Click New integration 3. Give it a name, select the workspace, choose capabilities 4. Copy the Internal Integration Secret. Starts with ntn_ 5. Share pages/databases with the integration in Notion (three-dot menu → Connections) ## Quick Connect bashcurl -X POST https://api.liteio.dev/connections \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Notion", "base_url": "https://api.notion.com", "auth_type": "bearer", "auth_config": {"token": "ntn_..."} }' ## Key Endpoints MethodPathDescription POST/v1/pagesCreate a new page GET/v1/pages/{id}Get page properties PATCH/v1/pages/{id}Update page properties POST/v1/databases/{id}/queryQuery a database with filters and sorts POST/v1/searchSearch across pages and databases GET/v1/blocks/{id}/childrenGet child blocks of a page or block PATCH/v1/blocks/{id}Update a block's content GET/v1/usersList workspace users ## Example: Query Database bashcurl -X POST https://api.liteio.dev/proxy/cn_xxx/v1/databases/abc123/query \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "filter": { "property": "Status", "select": {"equals": "In Progress"} }, "sorts": [{"property": "Priority", "direction": "descending"}] }' ## Use Cases - **CMS Backend**: Use Notion databases as a content management system for blogs and marketing pages. - **Project Tracking**: Query tasks, update statuses, and sync project data with external tools. - **Knowledge Base Sync**: Read and write documentation pages programmatically for automated wiki updates. - **Data Collection**: Create pages from form submissions, API events, or CI/CD pipeline results. ## Links - Back to Marketplace - Developer Guide - Get API Key