notion
NotionのAPIを使用して、ページ・データベース・ブロックの作成と管理を行います。Notionワークスペース上のコンテンツをプログラムから操作したい場合に活用できます。
description の原文を見る
Notion API for creating and managing pages, databases, and blocks.
SKILL.md 本文
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:
{"title": [{"text": {"content": "..."}}]} - Rich text:
{"rich_text": [{"text": {"content": "..."}}]} - Select:
{"select": {"name": "Option"}} - Multi-select:
{"multi_select": [{"name": "A"}, {"name": "B"}]} - Date:
{"date": {"start": "2024-01-15", "end": "2024-01-16"}} - Checkbox:
{"checkbox": true} - Number:
{"number": 42} - URL:
{"url": "https://..."} - Email:
{"email": "a@b.com"} - Relation:
{"relation": [{"id": "page_id"}]}
2025-09-03 の主な変更点
- Databases → Data Sources: クエリと取得には
/data_sources/エンドポイントを使用します - 2つの 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.data_source_idとparent.database_idの両方を表示します - data_source_id の確認: データベースを検索するか、
GET /v1/data_sources/{data_source_id}を呼び出します
注記
- ページ/データベース ID は UUID です(ダッシュの有無は問いません)
- API はデータベースビューフィルターを設定できません — これは UI のみです
- レート制限:平均で約 3 リクエスト/秒。
Retry-Afterを使用した429 rate_limitedレスポンスが返されます - ブロック子の追加:1 リクエストあたり最大 100 個の子、1 つの追加リクエストで最大 2 段階のネストまで
- ペイロードサイズ制限:最大 1000 ブロック要素、全体で最大 500KB
- データソースをページに埋め込む場合は
is_inline: trueを使用します
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- steipete
- リポジトリ
- steipete/clawdis
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/steipete/clawdis / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。