L'API Notiondesk consente di leggere e modificare l'immagine coordinata del centro assistenza: colori, caratteri, layout, intestazione e piè di pagina, collegamenti, visualizzazione della ricerca e del feedback e tema. Utilizzala per implementare lo stesso marchio in diversi centri assistenza o per mantenere l'immagine coordinata nel codice insieme al resto del sistema di progettazione.
| Metodo | Sentiero | Ambito di applicazione | Fa |
|---|---|---|---|
GET | /sites/{site_id}/settings/customize | read | Legge il marchio |
PATCH | /sites/{site_id}/settings/customize | admin | Aggiorna il marchio |
GET | /sites/{site_id}/themes | read | Elenca i temi disponibili |
Il branding è visibile su ogni pagina pubblica, quindi per aggiornarlo è necessario l'ambito admin, non write. Solo una chiave creata dal proprietario di un'area di lavoro o da un amministratore detiene admin.
Per modificare il branding nella dashboard, consulta la sezione Personalizzare i colori e i caratteri del centro assistenza .
Ciò che l'API non cambia
Questi rimangono solo nella dashboard. Il percorso di lettura non li restituisce e un aggiornamento che ne nomina uno risponde 400 validation_error:
- CSS personalizzato e JavaScript personalizzato. Vedi Personalizzare il centro assistenza con CSS personalizzato ;
- loghi (chiaro e scuro), loghi a piè di pagina (chiaro e scuro), favicon, immagine per i social media e immagini di intestazione (chiaro e scuro).
Leggi il tuo marchio
La risposta contiene esattamente i campi accettati dall'aggiornamento, con gli stessi nomi. Ecco un esempio abbreviato:
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
}- Un colore che non è mai stato impostato è
"".colors.darkcontiene i colori della modalità scura ed è assente quando il centro assistenza non ha una tavolozza scura.
- Un elenco vuoto si legge
[].
themeè ilcodedel tema corrente, ovveronull.
Aggiorna il tuo marchio
Il percorso risponde 204 No Content. Rileggi il branding per confermare la modifica.
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"}]}'- Un campo che ometti mantiene il suo valore. All'interno di
colors, anche un colore che ometti mantiene il suo valore.
- Un elenco inviato sostituisce l'intero elenco memorizzato e
[]lo svuota.
- I colori sono valori esadecimali
#rrggbbo"". Le forme abbreviate come#fffvengono rifiutate.
- Invia valori booleani JSON. I valori
0e"false"vengono letti cometrue, enullcomefalse.
Aggiornamenti sicuri: leggi, modifica, rimanda indietro
Il modo più sicuro per aggiornare il branding è inviare nuovamente il testo letto, con le modifiche apportate. Un campo inviato con il suo valore attuale è accettato da qualsiasi piano, quindi questo schema non supera mai i limiti del piano per i campi che non sono stati modificati.
Un corpo della risposta può comunque essere rifiutato in due casi. Correggi il valore nella dashboard oppure ometti quel campo dal corpo della risposta:
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);- un colore memorizzato in forma abbreviata come
#fff;
- un elenco memorizzato più lungo dei limiti indicati di seguito.
Campi che è possibile modificare
| Zona | Campi |
|---|---|
| Colori | colors con 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 e dark con gli stessi campi per la modalità scura |
| Aspetto | appearance (default: light, dark o system; strict: booleano) |
| Caratteri e layout | primary_font, secondary_font, layout_collection, layout_article (column_1, column_2 o column_3), theme |
| Intestazione | header_variant (hero o bar), headline_size, header_background_type (color, image o gradient), header_gradient_type, header_gradient_angle, header_gradient_colors, header_shape_type, header_links, header_link_translations, homepage_link, homepage_link_translations |
| Ricerca | 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 |
| Collezioni | 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 |
| Articoli | 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 |
| Feedback | show_article_feedback_form, require_email_for_article_feedback, feedback_reaction_style (emoji o thumbs), feedback_question_label, feedback_comment_mode |
| Menù laterale | aside_menu_expansion_mode, show_aside_menu_article_icons, show_aside_menu_collection_icons |
| Piè di pagina | footer_layout (compact, standard o multi_level), footer_shape_type, footer_links, footer_link_translations, footer_text_translations, social_media_links, social_link_translations |
| Pulsante di contatto | show_contact_us_button, contact_us_custom_link, contact_us_button_position (header o footer) |
| Distintivo | show_powered_by_badge |
I collegamenti sono oggetti con un title e un url. I gruppi di collegamenti del piè di pagina sono oggetti con un title e un elenco links. Le traduzioni sono oggetti con un locale e il links, groups o value tradotto.
Piano limite
| Campi | È necessaria la funzione Piano per modificarli |
|---|---|
show_powered_by_badge | Rimuovi il marchio. Vedi Come rimuovere il 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, i campi di feedback, i campi del menu laterale, i campi del piè di pagina, i link social e i campi del pulsante di contatto | Personalizzazione avanzata |
Modificandone uno su un piano senza la funzionalità, si ottiene l'errore 403 permission_denied, il messaggio indica la funzionalità e non viene scritto nulla.
Senza personalizzazioni avanzate, i colori del piè di pagina mantengono il loro valore memorizzato senza errori. Senza un chatbot AI abilitato, anche ai_search_display_mode, ai_search_aside_position e ai_search_enabled: true mantengono il loro valore memorizzato.
Elenco delle dimensioni
- Ciascun elenco può contenere fino a 100 voci, così come ciascun elenco
linksogroupsal suo interno.
- Tutte le liste insieme possono contenere fino a 3.000 voci, comprese le voci annidate e le liste memorizzate che il tuo corpo esclude.
Il pulsante di contatto attiva il modulo di contatto
Mentre show_contact_us_button è true su un piano con personalizzazione avanzata, ogni aggiornamento del marchio attiva il modulo di contatto del centro assistenza, come avviene con un salvataggio nella dashboard. Consulta la sezione relativa al modulo di contatto in Aggiornare le impostazioni del centro assistenza con l'API Notiondesk .
Scegli un tema
L'elenco contiene sempre tutti i temi in una risposta, nell'ordine di visualizzazione. Applicane uno inviando il suo code come theme:
L'impostazione di un tema richiede una personalizzazione avanzata. L'invio di "theme": null lascia il tema invariato.
Errori
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"}'| Stato | Quando | code |
|---|---|---|
| 400 | Il corpo specifica un campo presente solo nella dashboard, un valore non è una delle opzioni del campo, un colore non è #rrggbb, un valore obbligatorio è null, un elenco è troppo lungo, theme non specifica alcun tema oppure il corpo contiene un campo sconosciuto | validation_error |
| 403 | La chiave non ha l'ambito read o admin per l'aggiornamento | insufficient_scope |
| 403 | L'aggiornamento modifica un campo non incluso nel tuo piano oppure il creatore della chiave non può modificare questo centro assistenza | permission_denied |
| 404 | Il centro assistenza non è presente nel tuo spazio di lavoro | not_found |
Gli errori di campo specificano il valore, ad esempio colors.primary o footer_links[0].links. Vedi Gestione degli errori API, dei limiti di frequenza e dei tentativi di invio per Notiondesk .
Domande frequenti
Posso caricare un logo tramite l'API Notiondesk?
No. I loghi, la favicon e le immagini dell'intestazione vengono impostati nella dashboard.
Posso modificare CSS o JavaScript personalizzati tramite API?
No. Il CSS personalizzato e il JavaScript personalizzato sono disponibili solo nella dashboard e l'API non li legge né li modifica mai.
Perché il mio aggiornamento restituisce un errore 403 su un campo che non ho modificato?
Hai inviato un valore diverso da quello memorizzato in un campo non previsto dal tuo piano. Leggi prima le informazioni sul marchio e invia nuovamente il valore memorizzato, oppure ometti il campo.
Un aggiornamento del marchio richiede una sincronizzazione?
No. L'aggiornamento aggiorna automaticamente l'intero centro assistenza.