Notion API logo

Notion API

Notion API

Notion API 让外部应用读写 page 与 database,构建自动化同步、内部工具与 dashboard 集成。

访问站点 ↗健康巡检 9 小时前
适合什么时候用

官方 JS SDK 类型齐全,类型推断到 property level

先注意什么

速率约 3 req/s 平均,批量同步容易触发

第一步先查

到 notion.so/my-integrations 创建一个 internal integration,复制 secret token。把要操作的 page / database 在 Notion 里"共享"给该 integration。之后用 Authorization: Bearer <token> 和 Notion-Version 头调用 API。

认证
oauth
CORS
不支持
HTTPS
注册
需要
延迟
709 ms
协议
REST
计费
freemium

可用率 · 30 天窗口

巡检: 1可用率: 100%平均延迟: 709ms
01

关于这个 API

Notion API 让开发者把 Notion 当作可编程的工作空间——读写 page、查询和过滤 database、操作 block 树。对个人开发者最常见的用法是把 Notion 当 headless CMS:把博客文章、产品改动日志、知识库内容存进 database,前端站点通过 API 拉取并渲染。

它的认证有两套:internal integration 适合自用,生成一个 token 直接用,无需 OAuth 跳转;public integration 走标准 OAuth,方便发布到 Notion 的应用市场。无论哪种,integration 都需要被 page/database 显式"shared"才能访问,这是 Notion 的权限模型。

block 模型是 Notion 数据结构的核心:每个 page 是 block 容器,block 可以是段落、heading、列表、code、子 database 等。读 page 时通常要先取 page metadata,再分页拉 block 树。速率限制平均约 3 req/s,批量同步操作需要节奏控制。一些 property 类型(rollup、formula、关联回链)通过 API 是只读的,写入需走 UI 或上游字段。

02

你可以做什么

  • 1把 Notion 当 headless CMS 给博客或站点供数据
  • 2从外部系统同步数据到 Notion database
  • 3搭建跨工具的自动化(如 Linear issue → Notion)
  • 4用 Notion 内容生成报告或 PDF
  • 5为团队构建只读看板或公开页
03

优劣对比

优点

  • 官方 JS SDK 类型齐全,类型推断到 property level
  • 内部 integration 模式即开即用,无需 OAuth 跳转
  • block 模型表达力强,能存储富文本与嵌套结构
  • 社区中间件(@notionhq/notion-to-md 等)成熟

注意事项

  • 速率约 3 req/s 平均,批量同步容易触发
  • 某些 property 类型只读(如 rollup、formula)
  • 分页大小默认 100,跨页拼装较繁琐
04

示例请求

通用模板 — 实际 endpoint 请查阅文档替换 <endpoint>。
curl https://notion.com/<endpoint> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
05

快速开始

到 notion.so/my-integrations 创建一个 internal integration,复制 secret token。把要操作的 page / database 在 Notion 里"共享"给该 integration。之后用 Authorization: Bearer <token> 和 Notion-Version 头调用 API。

06

常见问题

API 收费吗?+

API 本身免费,但目标 workspace 必须是付费 plan 才能解锁某些高级功能(如多人协作的精细权限)。

为什么提示 page not found?+

最常见原因:integration 没被显式 share 到该 page/database。Notion 的权限是按 integration 粒度授权。

能修改 formula 字段吗?+

不行,formula、rollup、created_by、last_edited_by 这类 derived/system property 通过 API 只读。

一次能取多少条 database 记录?+

默认 page_size 100,最大 100。需要更多用 next_cursor 分页。

07

技术细节

CORS: NoHTTPS: Yes注册: Yes开源: No
认证方式
oauth
计费
freemium
协议
REST
SDK
javascript, typescript, python
响应时间
709 ms
上次巡检
2026/5/12 07:37:58
08

接口端点

从 OpenAPI spec 自动解析。显示 12 / 13 个未弃用端点。

DELETE
/v1/blocks/{id}Blocks

Delete a block

id:path*Notion-Version:header
GET
/v1/blocks/{id}Blocks

Retrieve a block

id:path*Notion-Version:header
PATCH
/v1/blocks/{id}Blocks

Update a block

id:path*Notion-Version:header
GET
/v1/blocks/{id}/childrenBlocks

Retrieve block children

id:path*page_size:queryNotion-Version:header
PATCH
/v1/blocks/{id}/childrenBlocks

Append block children

id:path*Notion-Version:header
GET
/v1/commentsComments

Retrieve comments

block_id:querypage_size:queryNotion-Version:header
GET
/v1/databases/{id}Databases

Retrieve a database

id:path*Notion-Version:header
PATCH
/v1/databases/{id}Databases

Update a database

id:path*Notion-Version:header
POST
/v1/databases/{id}/queryDatabases

Query a database

id:path*Notion-Version:header
GET
/v1/pages/{id}Pages

Retrieve a Page

id:path*Notion-Version:header:header
PATCH
/v1/pages/{id}Pages

Update Page properties

id:path*Notion-Version:header
GET
/v1/pages/{page_id}/properties/{property_id}Pages

Retrieve a Page Property Item

page_id:path*property_id:path*

另有 1 个端点未显示,详见 OpenAPI spec。

09

标签

10

可以替代的选择

不同公司、解决相似问题的备选。按分类、认证、计费档位与标签重合度匹配。