Crear un enlace de vista previa de la marca
POST /v1/branding:preview-link · permiso branding:write
Crea un enlace que muestra la página de inicio de sesión alojada con los borradores de marca actuales del entorno, antes de publicarlos. La página siempre muestra el borrador más reciente: cambie un borrador y recargue la página para ver el cambio. Un banner marca la página como vista previa y todos los controles de inicio de sesión están desactivados. Los textos de borrador que reemplazan los predeterminados se muestran en el idioma de la página; no pueden cambiar el banner de vista previa.
El enlace es válido durante 10 minutos y no se puede revocar; después devuelve 404. Cualquiera que tenga el enlace puede ver el borrador, así que compártalo solo con las personas que revisan el diseño. Un entorno puede tener como máximo 20 enlaces válidos al mismo tiempo.
Solicitud
El cuerpo es opcional. Sin cuerpo, la página muestra solo el borrador del entorno.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
application_id |
string | no | Aplica también el borrador de esta aplicación (app_…). |
org_id |
string | no | Aplica también el borrador de esta organización (org_…): su logotipo y su color principal. |
Respuesta
200 OK. La url solo se devuelve en esta respuesta, con Cache-Control: no-store. Una solicitud repetida con el mismo Idempotency-Key no devuelve url, sino secret_redacted: true; cree un enlace nuevo en su lugar.
{
"url": "https://acme.eu1.keenauth.app/u/preview?token=…",
"expires_at": "2026-10-19T12:10:00Z"
}
Errores
| HTTP | code | Cuándo |
|---|---|---|
| 400 | unknown_field |
El cuerpo tiene un campo desconocido o no es un objeto JSON. |
| 404 | not_found |
La aplicación no existe en este entorno. |
| 422 | validation_failed |
application_id u org_id no es un ID válido (invalid_value). |
| 401 | unauthenticated |
Falta la credencial, no es válida o fue revocada. |
| 403 | insufficient_permissions |
La credencial no tiene el permiso requerido. |
| 429 | rate_limited |
El entorno ya tiene 20 enlaces válidos o se superó el límite de solicitudes; reintente después del período indicado en Retry-After. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; reintente después del período indicado en Retry-After. |
Ejemplo
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…"}'
Con la CLI:
keenauth branding preview-link --application-id app_01jb…