結論、“データソース”という新しい概念が入っています。
この記事では、公式よりも簡潔に最低限だけをまとめます。
それでは本文どぞー
この記事の要点だけ
- 「データソース」という新概念が追加。正直、使い方がイメージしにくい。
- 関係性は データベース=フォルダ、データソース=ファイル、ページ(行)=ファイルの中身。
- データソースIDは、データベース画面のメニューから「データソースの管理 / データベースの整理」経由で追加・取得できる。
- 実際のJSONは下記サンプルをコピペして調整すればOK(現行&旧版の最小例)。
- 旧版(
2022-06-28
)のままでもひとつのデータソース運用なら動く。ただし複数ソースを使い始めると旧実装は不具合が出やすい(僕の所感)。
Contents
1. データベースとデータソースの関係
僕のイメージとしては次の三層です。
- データベース… フォルダ(入れ物)。
- データソース… フォルダの中に入る“表”=ファイル。
- ページ(行)… ファイルの中身(各レコード)。
従来は「データベース=1つの表」という感覚でしたが、現在は1つのデータベースの中に複数のデータソース(表)を置けるのがポイントです。
2. データソースIDの取得手順(アプリ画面)
- 対象のデータベースを開く。
- 右上の「設定」メニューを開く。
- 「データソースを管理」を選ぶ。
- ここでデータソースの追加/既存データソースのリンク、およびIDのコピーが可能。




← 横にスクロールできます。(4枚) →
3. JSONサンプル(現行/旧版の最小構成)
※ 各サンプルは
curl
での最小例です。コードは横スクロールできます。A. 現行モデル(親は data_source_id
)
ページを追加(Notion-Version は最新版に合わせてください)
curl -X POST "https://api.notion.com/v1/pages" \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" \ -d '{ "parent": { "type": "data_source_id", "data_source_id": "YOUR_DATA_SOURCE_ID" }, "properties": { "Name": { "title": [{ "text": { "content": "New item" } }] } } }'
B. 旧版モデル(2022-06-28
:親は database_id
)
ページを追加(単一ソース前提の旧運用)
curl -X POST "https://api.notion.com/v1/pages" \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Notion-Version: 2022-06-28" \ -H "Content-Type: application/json" \ -d '{ "parent": { "database_id": "YOUR_DATABASE_ID" }, "properties": { "Name": { "title": [{ "text": { "content": "New item" } }] } } }'
注意(所感)
旧版は「DB=1表(単一ソース)」という前提なら延命できますが、データソースを複数使い始めると、旧実装では動作が不安定になりがちです。新規や保守予定のあるコードは、親指定を
旧版は「DB=1表(単一ソース)」という前提なら延命できますが、データソースを複数使い始めると、旧実装では動作が不安定になりがちです。新規や保守予定のあるコードは、親指定を
data_source_id
へ移行しておくのをおすすめします。4. 最初の一歩(迷ったらここから)
- まずは既存のDBは触らず、テスト用DBでデータソースを1つ追加して試す。
- JSONでは
parent.data_source_id
を指定する実装に寄せる。 - 運用後に問題なければ、必要なDBだけ段階的に移行。
5.最後に
調べた結果、結局何に使えるのかなー?って感じではありましたが。プログラムが整理できたり、Notionのデータベース同士のリレーションによる複雑さが少しでもシンプルにできるかなって感じですねー!
皆様の人生が少しでもより良いものになりますように。ほなねー
コメント