NotionAPI技能Skill notion

这个技能使用Notion API来自动化管理Notion中的页面、数据库和块,支持创建、读取、更新、查询等操作,适用于开发者和团队进行内容自动化、工作流集成和应用程序开发。关键词:Notion API, 自动化, 页面管理, 数据库查询, 开发集成, API调用, 后端开发, 低代码自动化。

后端开发 0 次安装 0 次浏览 更新于 3/24/2026

名称: notion 描述: Notion API用于创建和管理页面、数据库和块。 主页: https://developers.notion.com 元数据: { “otto”: { “表情”: “📝”, “要求”: { “环境”: [“NOTION_API_KEY”] }, “主要环境”: “NOTION_API_KEY” }, }

notion

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

设置

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

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": "页面标题"}'

获取页面:

curl "https://api.notion.com/v1/pages/{页面_id}" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03"

获取页面内容(块):

curl "https://api.notion.com/v1/blocks/{页面_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": {
      "名称": {"title": [{"text": {"content": "新项目"}}]},
      "状态": {"select": {"name": "待办"}}
    }
  }'

查询数据源(数据库):

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": "状态", "select": {"equals": "活跃"}},
    "sorts": [{"property": "日期", "direction": "降序"}]
  }'

创建数据源(数据库):

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": "我的数据库"}}],
    "properties": {
      "名称": {"title": {}},
      "状态": {"select": {"options": [{"name": "待办"}, {"name": "完成"}]}},
      "日期": {"date": {}}
    }
  }'

更新页面属性:

curl -X PATCH "https://api.notion.com/v1/pages/{页面_id}" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{"properties": {"状态": {"select": {"name": "完成"}}}}'

向页面添加块:

curl -X PATCH "https://api.notion.com/v1/blocks/{页面_id}/children" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "children": [
      {"object": "block", "type": "段落", "paragraph": {"rich_text": [{"text": {"content": "你好"}}]}}
    ]
  }'

属性类型

数据库项目的常见属性格式:

  • 标题: {"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": "页面_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不能设置数据库视图过滤器 — 那是仅限UI的
  • 速率限制:平均约3个请求/秒
  • 创建数据源时使用is_inline: true以嵌入到页面中