Définir le modèle de page

PUT /v1/branding/page-template · permission branding:write

Écrit le modèle de page Liquid du brouillon de l'environnement (plan Startup ou supérieur, fonctionnalité branding_page_template). Le modèle doit contenir l'emplacement {{ idp.widget }} exactement une fois ; il est compilé dans un bac à sable à l'écriture. Une chaîne vide l'efface.

Requête

Champ Type Obligatoire Description
If-Match en-tête oui L'ETag du brouillon lu en dernier ("0" s'il n'a jamais été écrit). Absent : 428 ; périmé : 412.
page_template chaîne oui 102400 octets au plus ; "" efface.

Réponse

200 OK avec le brouillon de l'environnement et son ETag. theme ne contient que les jetons définis ; les autres héritent de la valeur par défaut de la plateforme.

{
  "theme": {"mode": "light", "light": {"color": {"primary": "#0a3d91"}}, "logo_height": 40},
  "css": null,
  "page_template": null,
  "updated_at": "2026-10-05T09:30:00.123456Z"
}

Erreurs

HTTP code Quand
400 unknown_field Le corps contient un champ inconnu ou n'est pas un objet JSON.
403 plan_feature_unavailable Le plan n'inclut pas la fonctionnalité (plan_feature_unavailable, extensions feature et required_plan). Les environnements de développement ne sont pas restreints.
412 precondition_failed If-Match ne correspond pas à la version actuelle du brouillon.
422 validation_failed page_template est absent ou null (required), ou trop long (too_long).
422 template_forbidden_construct Le modèle utilise une construction interdite (par exemple {% include %} ou <script>), ou {{ idp.widget }} n'apparaît pas exactement une fois.
428 precondition_required L'en-tête If-Match est absent.
401 unauthenticated L'identifiant est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant n'a pas la permission requise.
429 rate_limited La limite de débit est dépassée ; réessayez après le délai Retry-After.
503 service_unavailable Une dépendance est temporairement indisponible ; réessayez après le délai Retry-After.

Exemple

curl -X PUT https://api.eu.keenauth.com/v1/branding/page-template \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H 'If-Match: "3"' \
  -d '{"page_template":"<div class=\"shell\">{{ idp.widget }}</div>"}'