Notiondesk API を使用してヘルプセンターのブランディングとテーマをカスタマイズします

REST API を介して Notiondesk ヘルプセンターのブランディングを更新します。更新内容は、色、フォント、レイアウト、ヘッダーとフッターのリンク、検索表示、テーマなどです。

3 分で読めます

Notiondesk API を使用すると、ヘルプセンターのブランディング(色、フォント、レイアウト、ヘッダーとフッター、リンク、検索とフィードバックの表示、テーマなど)を読み取って変更できます。この API を使用すると、複数のヘルプセンターで同じブランドを展開したり、ブランディングを他のデザインシステムと並行してコードで管理したりできます。

方法パス範囲する
GET/sites/{site_id}/settings/customizereadブランドロゴを読む
PATCH/sites/{site_id}/settings/customizeadminブランドイメージを更新
GET/sites/{site_id}/themesread利用可能なテーマの一覧を表示します

ブランド情報はすべての公開ページに表示されるため、更新にはwriteではなくadminスコープが必要です。ワークスペースの所有者または管理者が作成したキーのみがadminを保持します。

ダッシュボードのブランディングを変更するには、 「ヘルプセンターの色とフォントをカスタマイズする」を参照してください。

APIが変更しないもの

これらはダッシュボード専用です。読み取りルートではこれらは返されず、これらのいずれかを指定する更新では400 validation_errorが返されます。

  • ロゴ(ライト版とダーク版)、フッターロゴ(ライト版とダーク版)、ファビコン、ソーシャルメディア画像、ヘッダー画像(ライト版とダーク版)。

ブランドについて読んでください

レスポンスには、更新処理で受け入れられるフィールドが、同じ名前で正確に含まれています。簡略化した例を以下に示します。

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として読み取られます。
更新が承認されるたびに、ヘルプセンター全体が更新されます。Notiondesk はキャッシュされたページをクリアし、更新内容に関わらずすべてのページを再構築します。変更はフィールドごとにリクエストを送信するのではなく、1つのリクエストで送信してください。

安全なアップデート:読んで、変更して、返送する

ブランディングを更新する最も安全な方法は、読み取った内容に変更を加えた上で返信することです。現在の値で送信されたフィールドはどのプランでも受け入れられるため、この方法であれば、変更していないフィールドのプラン制限に引っかかることはありません。

返送された本文は、以下の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エラーが発生するのでしょうか?

プランに含まれていないフィールドに、保存されている値とは異なる値を送信しました。まずはブランディングを確認し、保存されている値を返すか、そのフィールドを削除してください。

ブランドイメージの更新には同期が必要ですか?

いいえ。アップデートによってヘルプセンター全体が自動的に更新されます。

次は?

関連する記事

このページは役に立ちましたか?

Still need help? Ask us