Настройте фирменный стиль и темы оформления справочного центра с помощью API Notiondesk

Обновите фирменный стиль справочного центра Notiondesk через REST API: цвета, шрифты, макет, ссылки в заголовке и нижнем колонтитуле, отображение результатов поиска и темы оформления.

3 мин чтения

API Notiondesk позволяет считывать и изменять фирменный стиль вашего справочного центра: цвета, шрифты, макет, заголовок и нижний колонтитул, ссылки, отображение поиска и обратной связи, а также тему оформления. Используйте его для внедрения единого фирменного стиля в нескольких справочных центрах или для сохранения фирменного стиля в коде в соответствии с остальной частью вашей системы дизайна.

Метод Путь Объем Делает
GET/sites/{site_id}/settings/customizereadЧитает фирменную символику
PATCH/sites/{site_id}/settings/customizeadminОбновляет фирменный стиль.
GET/sites/{site_id}/themesreadОтображает список доступных тем.

Фирменный стиль отображается на каждой общедоступной странице, поэтому для его обновления требуется область действия admin, а не write. Только ключ, созданный владельцем рабочей области или администратором, содержит admin.

Чтобы изменить фирменную символику на панели управления, см. раздел «Настройка цветов и шрифтов справочного центра» .

Что API не меняет

Эти данные остаются только на панели управления. Маршрут чтения их не возвращает, а обновление, в котором указан один из них, приводит к ошибке 400 validation_error:

  • Логотипы (светлые и темные), логотипы в нижнем колонтитуле (светлые и темные), значок сайта (favicon), изображение для социальных сетей и изображения в шапке сайта (светлые и темные).

Прочитайте свой фирменный стиль.

В ответе содержатся в точности те же поля, которые принимает обновление, под теми же именами. Сокращенный пример:

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"}]}'
  • Поле, которое вы пропускаете, сохраняет своё значение. Внутри colors цвет, который вы пропускаете, также сохраняет своё значение.
  • Отправленный вами список заменяет весь сохраненный список, а [] очищает его.
  • Цвета задаются в шестнадцатеричном формате #rrggbb или "". Сокращенные формы, такие как #fff, отклоняются.
  • Отправка логических значений в формате JSON. Значения 0 и "false" считываются как true, а null как false.
Каждое принятое обновление обновляет весь справочный центр: Notiondesk очищает кэшированные страницы и перестраивает каждую страницу, внеся в нее изменения. Все изменения отправляются в одном запросе, а не по одному запросу на каждое поле.

Безопасные обновления: прочитать, изменить, отправить обратно

Самый безопасный способ обновить фирменную символику — отправить обратно прочитанный текст с внесенными изменениями. Поле, отправленное с его текущим значением, принимается в любом тарифном плане, поэтому этот подход никогда не превысит лимит тарифного плана для полей, которые вы не изменяли.

В двух случаях отправленное сообщение может быть отклонено. Исправьте значение на панели управления или исключите это поле из сообщения:

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_search_display_mode, ai_search_aside_position и ai_search_enabled: true также сохраняют свои значения.

Ограничения списка

  • Каждый список содержит до 100 записей, как и каждый список links или groups внутри него.
  • В совокупности все списки содержат до 3000 записей, включая вложенные записи и сохраненные списки, которые не были включены в ваш основной текст.

Кнопка «Контакты» включает форму обратной связи.

В то время как show_contact_us_button заменяется на true в тарифном плане с расширенными возможностями настройки, каждое обновление фирменной символики включает форму обратной связи в центре поддержки, как и сохранение в панели управления. См. раздел «Форма обратной связи» в документе « Обновление настроек центра поддержки с помощью API Notiondesk» .

Выберите тему

Список всегда содержит все темы в одном ответе, в порядке отображения. Чтобы применить одну из них, отправьте ее 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. См. раздел «Обработка ошибок API Notiondesk, ограничений скорости и повторных попыток» .

Часто задаваемые вопросы

Могу ли я загрузить логотип с помощью API Notiondesk?

Нет. Логотипы, значок сайта и изображения заголовка устанавливаются в панели управления.

Могу ли я изменять пользовательские CSS- или JavaScript-коды с помощью API?

Нет. Пользовательские CSS и JavaScript доступны только на панели управления, и API никогда их не считывает и не изменяет.

Почему при обновлении появляется ошибка 403 по полю, которое я не изменял?

Вы отправили значение, отличающееся от сохраненного, для поля, которое не входит в ваш тарифный план. Сначала ознакомьтесь с фирменной символикой и отправьте сохраненное значение обратно или исключите это поле из плана.

Требуется ли синхронизация при обновлении фирменного стиля?

Нет. Обновление автоматически обновляет весь справочный центр.

Что дальше?

Связанные статьи

Эта страница была полезной?

Still need help? Ask us