关于 notion
notion 技能指导通过 Notion API 创建、读取和更新页面、数据源及内容块,面向需要在自动化流程中操作 Notion 的用户。它涵盖新版 API 的数据源端点和常见操作。
主要功能
- 01搜索页面和数据源
- 02读取页面与内容块
- 03创建页面和数据源
- 04更新页面属性与内容块
- 05说明 API 认证及版本差异
适用场景
- 01查找并读取 Notion 页面
- 02向数据库添加页面条目
- 03更新页面状态或属性
- 04向页面追加文本内容
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ letta-ai/ skills --skill notion安装后在 Claude Code 中输入/notion确认已加载。
附带文件assets/notion-small.svgLICENSE
详细介绍
notion
使用 Notion API 创建、读取和更新页面、数据源(数据库)及块。
设置
- 在 https://notion.so/my-integrations 创建集成
- 复制 API 密钥(以
ntn_或secret_开头) - 保存:
mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
- 将目标页面/数据库共享给你的集成(点击“...” →“Connect to”→ 选择你的集成名称)
API 基础知识
所有请求都需要:
NOTION_KEY=$(cat ~/.config/notion/api_key)
curl -X GET "https://api.notion.com/v1/..." \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json"
注意: 必须提供
Notion-Version标头。此技能使用2025-09-03(最新版本)。在此版本中,API 将数据库称为“数据源”。
常见操作
搜索页面和数据源:
curl -X POST "https://api.notion.com/v1/search" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{"query": "page title"}'
获取页面:
curl "https://api.notion.com/v1/pages/{page_id}" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03"
获取页面内容(块):
curl "https://api.notion.com/v1/blocks/{page_id}/children" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03"
在数据源中创建页面:
curl -X POST "https://api.notion.com/v1/pages" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{
"parent": {"database_id": "xxx"},
"properties": {
"Name": {"title": [{"text": {"content": "New Item"}}]},
"Status": {"select": {"name": "Todo"}}
}
}'
查询数据源(数据库):
curl -X POST "https://api.notion.com/v1/data_sources/{data_source_id}/query" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{
"filter": {"property": "Status", "select": {"equals": "Active"}},
"sorts": [{"property": "Date", "direction": "descending"}]
}'
创建数据源(数据库):
curl -X POST "https://api.notion.com/v1/data_sources" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{
"parent": {"page_id": "xxx"},
"title": [{"text": {"content": "My Database"}}],
"properties": {
"Name": {"title": {}},
"Status": {"select": {"options": [{"name": "Todo"}, {"name": "Done"}]}},
"Date": {"date": {}}
}
}'
更新页面属性:
curl -X PATCH "https://api.notion.com/v1/pages/{page_id}" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{"properties": {"Status": {"select": {"name": "Done"}}}}'
向页面添加块:
curl -X PATCH "https://api.notion.com/v1/blocks/{page_id}/children" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json" \
-d '{
"children": [
{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Hello"}}]}}
]
}'
属性类型
数据库条目常用的属性格式:
- 标题:
{"title": [{"text": {"content": "..."}}]} - 富文本:
{"rich_text": [{"text": {"content": "..."}}]} - 单选:
{"select": {"name": "Option"}} - 多选:
{"multi_select": [{"name": "A"}, {"name": "B"}]} - 日期:
{"date": {"start": "2024-01-15", "end": "2024-01-16"}} - 复选框:
{"checkbox": true} - 数字:
{"number": 42} - URL:
{"url": "https://..."} - 电子邮件:
{"email": "[email protected]"} - 关联:
{"relation": [{"id": "page_id"}]}
2025-09-03 版本的主要变化
- 数据库 → 数据源: 查询和检索请使用
/data_sources/端点 - 两个 ID: 每个数据库现在都有
database_id和data_source_id- 创建页面时使用
database_id(parent: {"database_id": "..."}) - 查询时使用
data_source_id(POST /v1/data_sources/{id}/query)
- 创建页面时使用
- 搜索结果: 数据库以
"object": "data_source"的形式返回,并包含其data_source_id - 响应中的父级信息: 页面会在
parent.database_id旁显示parent.data_source_id - 查找 data_source_id: 搜索数据库,或调用
GET /v1/data_sources/{data_source_id}
注意事项
- 页面/数据库 ID 是 UUID(带或不带连字符)
- API 无法设置数据库视图筛选条件,此操作只能在 UI 中完成
- 速率限制:平均约为每秒 3 个请求;触发限制时会返回
429 rate_limited,并附带Retry-After - 追加块子项:每个请求最多 100 个子项;单次追加请求最多支持两层嵌套
- 负载大小限制:最多 1000 个块元素,整体不超过 500KB
- 创建数据源并将其嵌入页面时,请使用
is_inline: true
评论
支持 Markdown