Notiondesk API は、ヘルプセンターで公開されているすべてのコンテンツ(あらゆる言語の記事とコレクション、Markdown 形式のコンテンツ、公開ステータス、同期状態、および公開済みの変更履歴エントリ)を読み取ります。この API を使用して、ヘルプセンターのバックアップを作成したり、コンテンツを他のツールに取り込んだり、同期に失敗した記事を確認したりできます。
APIはコンテンツを読み取りますが、書き込むことはありません。記事やコレクションはNotion内に保持されます。変更するには、Notionで編集して同期をトリガーしてください。
Notiondesk API では、コレクションはカテゴリと呼ばれます。
| 方法 | パス | 範囲 | する |
|---|---|---|---|
GET | /sites/{site_id}/articles | read | 1つの言語の記事を一覧表示する |
GET | /sites/{site_id}/articles/{article_id} | read | マークダウンコンテンツを含む記事を1つ読みます。 |
GET | /sites/{site_id}/categories | read | 階層構造を持つコレクションを、1つの言語で一覧表示します。 |
GET | /sites/{site_id}/categories/{category_id} | read | マークダウンコンテンツを含むコレクションを1つ読み込みます。 |
GET | /sites/{site_id}/changelog | read | 公開された変更履歴エントリを一覧表示します(新しい順)。 |
言語を選択してください
このページのすべてのルートは、?locale=fr などのオプションのクエリ パラメータ locale を受け取ります。これがない場合、応答にはヘルプ センターのデフォルト言語が使用されます。リスト ルートでは、locale はヘルプセンターが提供する言語のいずれかである必要があります。つまり、ヘルプ センターの supported_locales です。言語を追加するには、 「ヘルプ センターで複数の言語をサポートする」を参照してください。
記事一覧
リストには、すべてのステータスのすべての記事、下書き、アーカイブされた記事も、作成順に含まれています。ページネーションとバージョン Notiondesk API リクエストの説明にあるように、page_size と cursor を使用してページをめくります。
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles?page_size=100&locale=en" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"object": "list",
"data": [
{
"id": "1761580412",
"title": "Connect your Notion workspace",
"slug": "connect-your-notion-workspace",
"status": "published",
"categories": [
{"id": "910000002", "name": "Connecting Notion", "slug": "connecting-notion", "locale": "en", "status": "published"}
],
"tags": [{"name": "Setup", "slug": "setup"}],
"locales_count": 2,
"updated_at": "2026-10-18T14:39:03+00:00",
"published_at": "2026-10-05T04:39:04+00:00",
"locale": "en",
"reading_time": 3,
"views_count": 42,
"reactions_percent": {"smiley": 50, "neutral_face": 25, "disappointed": 25},
"source_notion_page_id": "3d5001d0-2470-8122-a1b2-c3d4e5f60789",
"notion_article_page_url": "https://www.notion.so/3d5001d024708122a1b2c3d4e5f60789",
"sync_in_progress": false,
"sync_timeout": false,
"sync_failed": false,
"sync_error_code": null,
"auto_translated": false
}
],
"has_more": true,
"next_cursor": "OPAQUE_CURSOR"
}| 分野 | 意味 |
|---|---|
id | 記事の識別子。article_id として使用され、記事を読み取ります。 |
title、slug | ヘルプセンターの記事タイトルとそのパス部分 |
status | draft、published、review、またはarchived。 記事の表示設定方法については、「記事の表示設定方法」を参照してください。 |
categories | この記事が属するコレクションは、それぞれid、name、slug、locale、statusで示されています。 |
tags | 記事のタグにはそれぞれnameとslugが付いています。 |
locales_count | この記事はいくつの言語で存在しますか? |
updated_at、published_at | 記事の最終更新日時と公開日時 |
locale | このアイテムの言語 |
reading_time | 推定読書時間(分) |
views_count | 読者が記事を開いた回数 |
reactions_percent | 各読者の反応とその全反応に占める割合(パーセント)。反応名はフィードバックのスタイルによって異なります。 |
source_notion_page_id、notion_article_page_url | 記事が同期される元のNotionページ、およびこの言語のNotionページのURL(自動翻訳の場合はnull) |
sync_in_progress、sync_timeout、sync_failed、sync_error_code | 記事の同期が実行中かどうか、前回の同期がタイムアウトまたは失敗したかどうか、そしてその理由 |
auto_translated | この言語が自動翻訳によって生成されたかどうか |
記事をマークダウン形式で読む
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles/1761580412?locale=en" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"id": "1761580412",
"type": "article",
"title": "Connect your Notion workspace",
"slug": "connect-your-notion-workspace",
"text": "# Connect your Notion workspace\n\nOpen **Settings**, then **Notion**...",
"url": "https://help.example.com/en/articles/connect-your-notion-workspace",
"locale": "en",
"last_updated": "2026-10-18T14:39:03+00:00",
"category": {"id": "910000002", "title": "Connecting Notion", "slug": "connecting-notion"},
"tags": ["setup"],
"truncated": false,
"author": {"name": "Ada Lovelace"},
"status": "published",
"content_available": true,
"sync_in_progress": false,
"sync_timeout": false,
"sync_failed": false,
"sync_error_code": null
}| 分野 | 意味 |
|---|---|
type | 常にarticle |
text | 記事の内容をマークダウン形式で記述します。コンテンツがまだ保存されていない場合は空欄になります。 |
truncated | text が 200,000 バイトで切り取られたとき、true が切り取られました。切り取りは常に文字単位で行われます。 |
content_available | Notiondesk にこの言語のコンテンツが含まれているかどうか |
url | 記事の公開演説 |
category | この記事の主要コレクション:id、title、slug |
tags | 記事のタグのスラッグ |
author | 記事の著者: name |
すべてのステータスは読みやすいので、公開前に下書きを読むことができます。要求されたlocaleに翻訳がない記事は、404 not_foundを返します。
リストコレクション
各項目は、リクエストされた言語のコレクションであり、コレクションが作成された順序で並んでいます。
3つのフィールドを使用してコレクションツリーを再構築します。
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/categories?page_size=100" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"id": "910000001",
"name": "Getting Started",
"slug": "getting-started",
"updated_at": "2026-10-18T14:39:12+00:00",
"locale": "en",
"is_parent": true,
"source_notion_page_id": "5d5001d0-2470-8122-a1b2-c3d4e5f60789",
"notion_category_page_url": "https://www.notion.so/5d5001d024708122a1b2c3d4e5f60789",
"sync_in_progress": false,
"sync_timeout": false,
"sync_failed": false,
"sync_error_code": null,
"parent_ids": [],
"children_ids": ["910000002"],
"locales_count": 2,
"status": "published",
"auto_translated": false
}| 分野 | 意味 |
|---|---|
is_parent | 階層構造の最上位にあるコレクションに対してtrue |
parent_ids | このコレクションのすぐ上にあるコレクション |
children_ids | このコレクションのすぐ下のコレクション |
このリストには記事数は含まれていません。コレクションの記事数をカウントするには、記事を一覧表示し、「categories」でグループ化してください。ヘルプセンターをコレクションで整理する方法については、「コレクションを使用して記事を整理する」を参照してください。
コレクションを読む
レスポンスは記事と同じ形式です。type は、同期フィールドである category、title、slug、url、status、およびコレクション独自のコンテンツをマークダウンで含む text で構成され、コンテンツがない場合は空になります。
変更履歴エントリの一覧
変更履歴には、変更履歴コレクションに登録された公開済みの記事が、新しい順に表示されます。設定方法は、 ヘルプセンターの「変更履歴の設定」をご覧ください。
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/categories/910000001?locale=en" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/changelog?page_size=50&locale=en" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"object": "list",
"data": [
{
"id": "article:1761497350",
"title": "Multilingual sync is now available",
"slug": "multilingual-sync-is-now-available",
"text": "Help centers on the Enterprise plan can now sync every configured locale in a single run instead of one language at a time.",
"published_at": "2026-10-13T09:12:44+00:00",
"last_updated": "2026-10-18T14:39:03+00:00",
"tags": [],
"url": "https://help.example.com/en/changelogs",
"locale": "en"
}
],
"has_more": true,
"next_cursor": "OPAQUE_CURSOR"
}| 分野 | 意味 |
|---|---|
id | article: に続いてエントリの記事 ID が続きます。プレフィックスを削除すると、記事ルートでエントリ全体を読むことができます。 |
text | エントリーのプレーンテキスト(通常は約30語の抜粋) |
published_at、last_updated | 記事が公開された日時と最終更新日時 |
tags | エントリのタグのスラッグ |
url | この言語での変更履歴ページ |
知っておくと良いこと:
- エントリは、その変更履歴コレクションが要求された言語で公開された場合にのみ表示されます。
- ゲストアカウントを使用するヘルプセンターでは、リストにはすべての閲覧者が閲覧できるエントリのみが表示されます。
- このリストには、最新のエントリが最大で1,000件まで表示されます。それ以降は、古いエントリが存在する場合でも、
has_moreはfalseとなります。
- まれに、一時的なサービス障害発生時に、リストの読み込みでエントリがスキップされたり、重複して読み込まれることがあります。完全なリストを表示するには、後でもう一度読み込んでください。
エラー
| 状態 | いつ | code |
|---|---|---|
| 400 | page_size が 1 ~ 100 の範囲外である、cursor が無効である、locale がヘルプセンターが対応している言語(リスト)ではないか、2 ~ 10 文字(単一読み取り)ではない、またはクエリに不明なパラメータが含まれている。 | validation_error |
| 403 | キーにはreadスコープがありません | insufficient_scope |
| 403 | 変更履歴のみ:変更履歴が無効になっているか、プランに含まれていないか、ヘルプセンターの分析機能が無効になっています。 | permission_denied |
| 404 | ヘルプセンター、記事、またはコレクションがワークスペースに存在しないか、locale に翻訳がないか、変更履歴が有効になっているが変更履歴コレクションがない | not_found |
すべてのルートは、invalid_version、authentication_error、rate_limited、およびinternal_errorにも応答できます。__ ND_TERM_5bcd8dee__ APIエラー、レート制限、および再試行の処理を参照してください。
よくある質問
Notiondesk API を使用して記事を作成または編集できますか?
いいえ。Notionはコンテンツの信頼できる情報源です。Notionで記事を編集した後、APIとの同期を実行するか、スケジュールされた同期をお待ちください。
記事一覧には下書きも含まれていますか?
はい。リストと読み取りルートには、draft、published、review、archived のすべてのステータスが含まれています。公開済みの記事のみを残すには、コード内で status で結果をフィルタリングしてください。
すべての記事をマークダウン形式でエクスポートするにはどうすればよいですか?
記事の一覧を表示し、それぞれの記事をidの順に読んでください。例の記事には、完全なバックアップスクリプトが含まれています。
truncated: trueとはどういう意味ですか?
truncated: trueとはどういう意味ですか?この記事のマークダウンは20万バイトを超えているため、textには最初の20万バイトが格納され、1文字単位で切り取られます。
なぜ一部の言語ではnotion_article_page_urlが空になるのですか?
notion_article_page_urlが空になるのですか?その言語は自動翻訳によって生成されたため、Notionには専用のページがありません。