Notiondesk API を使用すると、ヘルプセンターのブランディング(色、フォント、レイアウト、ヘッダーとフッター、リンク、検索とフィードバックの表示、テーマなど)を読み取って変更できます。この API を使用すると、複数のヘルプセンターで同じブランドを展開したり、ブランディングを他のデザインシステムと並行してコードで管理したりできます。
| 方法 | パス | 範囲 | する |
|---|---|---|---|
GET | /sites/{site_id}/settings/customize | read | ブランドロゴを読む |
PATCH | /sites/{site_id}/settings/customize | admin | ブランドイメージを更新 |
GET | /sites/{site_id}/themes | read | 利用可能なテーマの一覧を表示します |
ブランド情報はすべての公開ページに表示されるため、更新にはwriteではなくadminスコープが必要です。ワークスペースの所有者または管理者が作成したキーのみがadminを保持します。
ダッシュボードのブランディングを変更するには、 「ヘルプセンターの色とフォントをカスタマイズする」を参照してください。
APIが変更しないもの
これらはダッシュボード専用です。読み取りルートではこれらは返されず、これらのいずれかを指定する更新では400 validation_errorが返されます。
- カスタムCSSとカスタムJavaScript。 ヘルプセンターをカスタムCSSでカスタマイズする方法については、「ヘルプセンターをカスタムCSSでカスタマイズする」を参照してください。
- ロゴ(ライト版とダーク版)、フッターロゴ(ライト版とダーク版)、ファビコン、ソーシャルメディア画像、ヘッダー画像(ライト版とダーク版)。
ブランドについて読んでください
レスポンスには、更新処理で受け入れられるフィールドが、同じ名前で正確に含まれています。簡略化した例を以下に示します。
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/customize" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"colors": {
"primary": "#2563eb",
"text": "#111827",
"link": "#2563eb",
"link_hover": "#1d4ed8",
"header": "#2563eb",
"header_text": "#ffffff",
"background": "#ffffff",
"footer_background": ""
},
"appearance": null,
"layout_collection": "column_2",
"layout_article": "column_1",
"footer_layout": "compact",
"primary_font": "Inter",
"header_links": [{"title": "Docs", "url": "https://example.com/docs"}],
"footer_links": [{"title": "Product", "links": [{"title": "Pricing", "url": "https://example.com/pricing"}]}],
"show_powered_by_badge": false,
"theme": null
}- 設定されていない色は
""と表示されます。colors.darkにはダークモードの色が格納されており、ヘルプセンターにダークパレットがない場合は存在しません。
- 何も含まれていないリストには「
[]」と表示されます。
themeは、現在のテーマのcode、つまりnullです。
ブランドイメージをアップデートしましょう
ルートの回答は204 No Contentです。変更を確認するために、もう一度ブランド表示をお読みください。
curl -i -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/customize" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-d '{"primary_font": "Inter", "colors": {"primary": "#2563eb"}, "header_links": [{"title": "Docs", "url": "https://example.com/docs"}]}'- 省略したフィールドは、その値を保持します。__ PRESERVED_168__ 内では、省略した色もその値を保持します。
- 送信したリストは保存されているリスト全体を置き換え、
[]はそれを空にします。
- 色は
#rrggbbまたは""の16進数値で指定します。#fffなどの短縮形は拒否されます。
- JSON形式のブール値を送信します。値
0と"false"はtrueとして読み取られ、nullはfalseとして読み取られます。
安全なアップデート:読んで、変更して、返送する
ブランディングを更新する最も安全な方法は、読み取った内容に変更を加えた上で返信することです。現在の値で送信されたフィールドはどのプランでも受け入れられるため、この方法であれば、変更していないフィールドのプラン制限に引っかかることはありません。
返送された本文は、以下の2つの場合に拒否される可能性があります。ダッシュボードで値を修正するか、本文からそのフィールドを削除してください。
const url = "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/customize";
const headers = {
Authorization: `Bearer ${process.env.NOTIONDESK_API_KEY}`,
"nd-version": "2026-10-16",
"Content-Type": "application/json",
};
const branding = await (await fetch(url, { headers })).json();
branding.colors.primary = "#7c3aed";
branding.colors.link = "#7c3aed";
const response = await fetch(url, { method: "PATCH", headers, body: JSON.stringify(branding) });
console.log(response.status);#fffのような短縮形式で保存された色。
- 以下の制限を超える長さの保存済みリスト。
変更可能なフィールド
| エリア | フィールズ |
|---|---|
| 色 | colors と primary、text、link、link_hover、header、header_top、header_text、header_top_text、header_link、header_link_hover、background、footer_background、footer_text、article_card_background、collection_card_background、aside_menu_text、aside_menu_text_hover、 aside_menu_background_hover および dark は、ダークモードでも同じフィールドを使用します。 |
| 外観 | appearance (default: light、dark または system; strict: ブール値) |
| フォントとレイアウト | primary_font、secondary_font、layout_collection、layout_article(column_1、column_2またはcolumn_3)、theme |
| ヘッダ | header_variant (hero または bar)、headline_size、header_background_type (color、image または gradient)、header_gradient_type、header_gradient_angle、header_gradient_colors、header_shape_type、header_links、header_link_translations、homepage_link、homepage_link_translations |
| 検索 | search_bar_length、search_bar_alignment、search_bar_corner_style、search_bar_shadow、search_result_variant、instant_search、segmented_search_results、ai_search_enabled、ai_search_display_mode、ai_search_aside_position |
| コレクション | collections_style、collection_card_corner_style、collection_section_variant、collection_content_variant、collapsable_sub_categories、collapsable_sub_categories_default_state、show_collection_icons、show_collection_descriptions、show_collection_content、show_collection_authors、show_collection_articles_count |
| 記事 | articles_style、article_card_corner_style、content_tabs_style、article_footer_variant、table_of_contents_position、show_table_of_contents、show_article_icons、show_article_descriptions、show_article_authors、show_related_articles、show_breadcrumb_icon、show_article_publish_date、show_article_page_author |
| フィードバック | show_article_feedback_form、require_email_for_article_feedback、feedback_reaction_style(emojiまたはthumbs)、feedback_question_label、feedback_comment_mode |
| サイドメニュー | aside_menu_expansion_mode、show_aside_menu_article_icons、show_aside_menu_collection_icons |
| フッター | footer_layout (compact、standard または multi_level)、footer_shape_type、footer_links、footer_link_translations、footer_text_translations、social_media_links、social_link_translations |
| お問い合わせボタン | show_contact_us_button、contact_us_custom_link、contact_us_button_position(headerまたはfooter) |
| バッジ | show_powered_by_badge |
リンクは、title と url を持つオブジェクトです。フッターリンクグループは、title と links リストを持つオブジェクトです。翻訳は、locale と翻訳された links、groups、または value を持つオブジェクトです。
プラン制限
| フィールズ | 計画機能を変更するには、それらを変更する必要がありました。 |
|---|---|
show_powered_by_badge | ブランド表示を削除してください。Powered by Notiondesk バッジの削除方法を参照してください。 |
theme、header_shape_type、instant_search、segmented_search_results、ai_search_display_mode、ai_search_aside_position、show_article_publish_date、show_article_page_author、フィードバックフィールド、サイドメニューフィールド、フッターフィールド、ソーシャルリンク、および連絡先ボタンフィールド | 高度なカスタマイズ |
機能のないプランでそれらのいずれかを変更すると、403 permission_denied という応答が返され、メッセージには機能名が表示されますが、何も書き込まれません。
高度なカスタマイズを行わない場合、フッターの色は保存された値をエラーなく保持します。AIチャットボットが有効になっていない場合、ai_search_display_mode、ai_search_aside_position、およびai_search_enabled: trueも保存された値を保持します。
リスト制限
- 各リストには最大100件のエントリが格納され、その中の各
linksまたはgroupsリストにも同様に最大100件のエントリが格納されます。
- すべてのリストを合わせると、ネストされたエントリや、身体が省略する保存済みリストを含めて、最大3,000件のエントリを保持できます。
お問い合わせボタンをクリックすると、お問い合わせフォームが有効になります。
show_contact_us_button は高度なカスタマイズが可能なプランでは true ですが、ブランディングの更新のたびに、ダッシュボードでの保存と同様にヘルプセンターの問い合わせフォームが有効になります。 Notiondesk API を使用してヘルプセンターの設定を更新するの問い合わせフォームのセクションを参照してください。
テーマを選択してください
リストには常にすべてのテーマが1つのレスポンスに表示順で格納されます。codeをthemeとして送信することで、テーマを適用できます。
テーマの設定には高度なカスタマイズが必要です。"theme": null を送信すると、テーマは変更されません。
エラー
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/themes" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"object": "list",
"data": [
{
"code": "ocean",
"name": "Ocean",
"description": "A calm, airy theme",
"preview_image_url": "https://example.com/ocean.png",
"layout": "default"
}
],
"has_more": false,
"next_cursor": null
}curl -i -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/customize" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-d '{"theme": "ocean"}'| 状態 | いつ | code |
|---|---|---|
| 400 | 本文にダッシュボード専用フィールド名が含まれている、値がフィールドの選択肢に含まれていない、色が#rrggbbではない、必須値がnullである、リストが長すぎる、themeにテーマ名が含まれていない、または本文に不明なフィールドが含まれている | validation_error |
| 403 | キーには read スコープ、または更新用の admin がありません | insufficient_scope |
| 403 | アップデートにより、プランに含まれていないフィールドが変更されるか、キーの作成者がこのヘルプセンターを変更できない | permission_denied |
| 404 | ヘルプセンターはあなたのワークスペースには存在しません | not_found |
フィールドエラーでは、値の名前が付けられます。たとえば、colors.primary または footer_links[0].links などです。__ ND_TERM_5bcd8dee__ API エラー、レート制限、および再試行の処理については、を参照してください。
よくある質問
Notiondesk APIを使用してロゴをアップロードできますか?
いいえ。ロゴ、ファビコン、ヘッダー画像はダッシュボードで設定します。
APIを使ってカスタムCSSやJavaScriptを変更することはできますか?
いいえ。カスタムCSSとカスタムJavaScriptはダッシュボード専用であり、APIがそれらを読み取ったり変更したりすることはありません。
変更していないフィールドに対して、なぜ更新処理で403エラーが発生するのでしょうか?
プランに含まれていないフィールドに、保存されている値とは異なる値を送信しました。まずはブランディングを確認し、保存されている値を返すか、そのフィールドを削除してください。
ブランドイメージの更新には同期が必要ですか?
いいえ。アップデートによってヘルプセンター全体が自動的に更新されます。