Autenticazione
Invia una chiave API come token di tipo bearer. La chiave deve disporre dell'autorizzazione reseller.manage; una chiave sprovvista di tale autorizzazione viene rifiutata con 403 anziché 404.
L'ID della tua organizzazione va qui
Questo endpoint accetta org_id come parametro di query. Omettilo e la chiamata coprirà l'intero sottoalbero del tuo tenant; invialo per limitare la chiamata a una singola organizzazione.
L'identificativo della tua organizzazione si trova nella schermata delle chiavi API nella tua dashboard, accanto alla chiave stessa. È lo stesso identificativo in ogni chiamata che effettui.
Provalo
Sostituisci qualsiasi elemento tra parentesi angolari con i tuoi valori e il segnaposto key con una chiave dalla tua dashboard.
curl -X POST https://api.zinndigital.com/v1/reseller/brand/menu \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "label": <string>, "url": <string> }'Hai effettuato l'accesso? La console API nella tua dashboard inserisce il tuo ID organizzazione reale e la tua chiave personale, ed esegue la richiesta sull'API live in modo da poter vedere la risposta effettiva. Apri questo endpoint nella console API
Dettagli
Adds one navigation link. Requires `reseller.manage` and the `white_label` entitlement. ⛔ `url` accepts `https://`, `http://` or a same-origin path beginning `/`, and nothing else. Your clients click these from inside an authenticated panel on your hostname, so a `javascript:` link would run in the origin holding their session — the allow-list is what makes that unrepresentable rather than merely filtered. ⛔ Over the limit is a **422 naming the limit**, never a silent truncation at read time: a ninth link that simply never appears is a defect nobody can report.
Parametri
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
org_id (query) | Uuid | No | The organization this call acts on. Optional for a caller with exactly one direct membership; **required** for anyone with more than one — which is every reseller and every agen… |
Corpo della richiesta
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
label | string | Sì | — |
url | string | Sì | — |
icon | string | No | — |
position | integer | No | — |
new_tab | boolean | No | — |
visibility | string<both, client, staff> | No | — |
Risposta
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
id | string | Sì | — |
label | string | Sì | — |
url | string | Sì | — |
icon | string | Sì | A design-system icon name from `icons`, or `""` for a label-only item. |
position | integer | Sì | Sort key. Ties break on the label, so the order is total and stable. |
new_tab | boolean | Sì | Renders `target="_blank"`. The panel pairs it with `rel="noopener noreferrer"` unconditionally — that is set on **every** external item, not only the new-tab ones, because `Refe… |
visibility | string<both, client, staff> | Sì | Who sees it. Filtered **server-side** on `GET /v1/branding`: a payload carrying a staff-only link that the app hides has already disclosed it to anybody with a network tab, whic… |
external | boolean | Sì | Whether the link leaves the panel. Computed here so every renderer agrees. |
Errori che questo endpoint può restituire
401 · 403 · 422