用途:通过 Notion API 对页面、数据源(数据库)和区块进行创建、读取与更新。
配置:在 https://notion.so/my-integrations 创建集成并复制 API Key(以 ntn_ 或 secret_ 开头),保存到 ~/.config/notion/api_key: mkdir -p ~/.config/notion echo "ntn_your_key_here" > ~/.config/notion/api_key 随后在目标页面或数据库的“...”→“Connect to”中选择该集成进行授权。
请求基础:所有请求需带 Authorization: Bearer $NOTION_KEY、Notion-Version: 2025-09-03 与 Content-Type: application/json。Notion-Version 为必填,本技能使用 2025-09-03,该版本中数据库在 API 里称为 data sources。
主要能力:搜索页面与数据源(POST /v1/search)、获取页面(GET /v1/pages/{page_id})、获取页面区块内容(GET /v1/blocks/{page_id}/children)、在数据源中创建页面(POST /v1/pages)、查询数据源(POST /v1/data_sources/{id}/query)、创建数据源(POST /v1/data_sources)、更新页面属性(PATCH /v1/pages/{page_id})、向页面追加区块(PATCH /v1/blocks/{page_id}/children)。
2025-09-03 关键差异:检索与查询使用 /data_sources/ 端点;数据库同时具有 database_id 与 data_source_id,创建页面时用 database_id 作 parent,查询时用 data_source_id;搜索结果中数据库以 object: data_source 返回;页面响应会同时给出 parent.data_source_id 与 parent.database_id。可通过搜索数据库或调用 GET /v1/data_sources/{data_source_id} 获取 data_source_id。
限制:API 无法设置数据库视图筛选(仅 UI 可设);速率约每秒 3 次,超限返回 429 与 Retry-After;单次追加区块最多 100 个子块、最多两层嵌套;载荷上限约 1000 个区块元素与 500KB。页面与数据库 ID 为 UUID(可含或不含短横线)。创建数据源时可设 is_inline: true 以嵌入页面。属性支持 title、rich_text、select、multi_select、date、checkbox、number、url、email、relation 等格式。