Aggiorna il tema dell'ambiente
PATCH /v1/branding · autorizzazione branding:write
Modifica la bozza del tema dell'ambiente con un merge patch JSON (application/merge-patch+json, RFC 7396). Un token impostato a null (o un intero gruppo come "light": null) viene cancellato e torna a ereditare; "theme": null cancella ogni token. Vengono scritti solo i token modificati; una patch che non cambia nulla mantiene la versione. I valori vengono verificati in scrittura: i colori sono #rgb/#rrggbb, font.size_base 14-18, radius.card 0-24, radius.control 0-16, logo_height 24-80. logo, favicon e background_image devono indicare un'immagine di quel tipo caricata con Carica una risorsa di branding; altrimenti il campo fallisce con asset_not_found. Il contrasto viene verificato alla pubblicazione.
Richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
If-Match |
header | sì | L'ETag della bozza come l'ultima letta ("0" se mai scritta). Mancante: 428; obsoleto: 412. |
theme |
object | null | no | BrandingTheme parziale; ogni campo e gruppo può essere null. |
Risposta
200 OK con la bozza dell'ambiente e il suo ETag. theme contiene solo i token impostati; i token non impostati ereditano dal default della piattaforma.
{
"theme": {"mode": "light", "light": {"color": {"primary": "#0a3d91"}}, "logo_height": 40},
"css": null,
"page_template": null,
"updated_at": "2026-10-05T09:30:00.123456Z"
}
Errori
| HTTP | code | Quando |
|---|---|---|
| 400 | unknown_field |
Il corpo contiene un campo sconosciuto oppure non è un oggetto JSON. |
| 412 | precondition_failed |
If-Match non corrisponde alla versione attuale della bozza. |
| 415 | unsupported_media_type |
Il content type non è application/merge-patch+json. |
| 422 | validation_failed |
Un valore di token non è valido (invalid_value, out_of_range, unknown_token); pointer indica il token, per esempio /theme/light/color/primary. |
| 428 | precondition_required |
L'header If-Match manca. |
| 401 | unauthenticated |
La credenziale manca, non è valida o è stata revocata. |
| 403 | insufficient_permissions |
La credenziale non ha l'autorizzazione richiesta. |
| 429 | rate_limited |
È stato superato il limite di richieste; riprova dopo il periodo indicato in Retry-After. |
| 503 | service_unavailable |
Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo indicato in Retry-After. |
Esempio
curl -X PATCH https://api.eu.keenauth.com/v1/branding \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "3"' \
-d '{"theme":{"light":{"color":{"primary":"#0a3d91"}},"radius":null}}'