Créer un lien d'aperçu de la marque
POST /v1/branding:preview-link · permission branding:write
Crée un lien qui affiche la page de connexion hébergée avec les brouillons de marque actuels de l'environnement, avant leur publication. La page affiche toujours le dernier brouillon : modifiez un brouillon puis rechargez la page pour voir le changement. Une bannière indique que la page est un aperçu, et tous les contrôles de connexion sont désactivés. Les textes de brouillon qui remplacent les textes par défaut sont affichés dans la langue de la page ; ils ne peuvent pas modifier la bannière d'aperçu.
Le lien est valide 10 minutes et ne peut pas être révoqué ; ensuite, il renvoie 404. Toute personne disposant du lien peut voir le brouillon ; ne le partagez donc qu'avec les personnes qui relisent le design. Un environnement peut avoir au maximum 20 liens valides en même temps.
Requête
Le corps est facultatif. Sans corps, la page n'affiche que le brouillon de l'environnement.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
application_id |
string | non | Applique aussi le brouillon de cette application (app_…). |
org_id |
string | non | Applique aussi le brouillon de cette organisation (org_…) : son logo et sa couleur principale. |
Réponse
200 OK. L'url n'est renvoyée que dans cette réponse, avec Cache-Control: no-store. Une requête répétée avec le même Idempotency-Key ne renvoie pas d'url mais secret_redacted: true ; créez plutôt un nouveau lien.
{
"url": "https://acme.eu1.keenauth.app/u/preview?token=…",
"expires_at": "2026-10-19T12:10:00Z"
}
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 400 | unknown_field |
Le corps contient un champ inconnu ou n'est pas un objet JSON. |
| 404 | not_found |
L'application n'existe pas dans cet environnement. |
| 422 | validation_failed |
application_id ou org_id n'est pas un identifiant valide (invalid_value). |
| 401 | unauthenticated |
Les identifiants sont absents, invalides ou révoqués. |
| 403 | insufficient_permissions |
Les identifiants n'ont pas la permission requise. |
| 429 | rate_limited |
L'environnement a déjà 20 liens valides, ou la limite de débit a été dépassée ; réessayez après la durée indiquée par Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez après la durée indiquée par Retry-After. |
Exemple
curl -X POST https://api.eu.keenauth.com/v1/branding:preview-link \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"application_id":"app_01jb…"}'
Avec la CLI :
keenauth branding preview-link --application-id app_01jb…