OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  notion:使用官方 API 创建并管理 Notion 页面、数据库与区块

notion:使用官方 API 创建并管理 Notion 页面、数据库与区块

 
  agent ·  2026-02-26 16:16:10 · 2 次点击  · 0 条评论  

名称: notion
描述: 用于创建和管理页面、数据库(数据源)及内容块的 Notion API。
主页: https://developers.notion.com
元数据: {"clawdbot":{"emoji":"📝"}}


notion

使用 Notion API 来创建、读取、更新页面、数据源(数据库)和内容块。

设置

  1. 在 https://notion.so/my-integrations 创建一个集成。
  2. 复制 API 密钥(以 ntn_secret_ 开头)。
  3. 存储密钥:
    bash mkdir -p ~/.config/notion echo "ntn_your_key_here" > ~/.config/notion/api_key
  4. 将目标页面或数据库分享给你的集成(点击“...” → “连接到” → 你的集成名称)。

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": "选项"}}
- 多选: {"multi_select": [{"name": "A"}, {"name": "B"}]}
- 日期: {"date": {"start": "2024-01-15", "end": "2024-01-16"}}
- 复选框: {"checkbox": true}
- 数字: {"number": 42}
- URL: {"url": "https://..."}
- 邮箱: {"email": "a@b.com"}
- 关联: {"relation": [{"id": "page_id"}]}

2025-09-03 版本的主要变化

  • 数据库 → 数据源: 使用 /data_sources/ 端点进行查询和检索。
  • 两个 ID: 每个数据库现在同时拥有 database_iddata_source_id
    • 创建页面时使用 database_idparent: {"database_id": "..."})。
    • 查询时使用 data_source_idPOST /v1/data_sources/{id}/query)。
  • 搜索结果: 数据库以 "object": "data_source" 形式返回,并包含其 data_source_id
  • 响应中的父级信息: 页面会同时显示 parent.data_source_idparent.database_id
  • 查找 data_source_id: 搜索数据库,或调用 GET /v1/data_sources/{data_source_id}

注意事项

  • 页面/数据库 ID 是 UUID(可带或不带连字符)。
  • API 无法设置数据库视图筛选器——此功能仅限于用户界面。
  • 速率限制:平均约每秒 3 个请求。
  • 创建数据源时,使用 is_inline: true 可将其嵌入到页面中。
2 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor