Restaurer un modèle d'e-mail
POST /v1/email-templates/{family}/{locale}:rollback · autorisation email-templates:write · plan Startup et supérieurs
Valide de nouveau le contenu d'une version publiée antérieure (désormais archivée) et la publie comme nouvelle version, avec source_version défini sur la version restaurée. L'historique n'est pas réécrit. L'enregistrement d'audit email_template.rolled_back est écrit dans la même transaction.
Une version qui n'a jamais été publiée, ou celle qui est publiée actuellement, renvoie 409.
Paramètres de chemin
| Paramètre | Description |
|---|---|
family |
Famille d'e-mails, par exemple verify_email ou email_otp (voir Lister les modèles d'e-mail). |
locale |
Étiquette de langue, par exemple en ou de. |
Requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
version |
integer | oui | La version archivée à republier (1 ou plus). |
Réponse
200 OK avec la nouvelle version publiée.
{
"family": "verify_email",
"locale": "en",
"version": 4,
"status": "published",
"subject": "Confirm your email for {{ application.name }}",
"html": "<p><a href=\"{{ link }}\">Confirm your email</a></p>",
"text_body": "Confirm your email: {{ link }}",
"from_name": null,
"source_version": 1,
"created_at": "2026-10-19T10:00:00Z",
"published_at": "2026-10-19T10:00:00Z",
"latest_version": 4,
"published_version": 4
}
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 400 | unknown_field |
Le corps contient un champ inconnu ou n'est pas un objet JSON. |
| 404 | not_found |
La famille ou la langue est inconnue, ou la version n'existe pas. |
| 403 | plan_feature_unavailable |
Le plan de l'environnement n'inclut pas les modèles d'e-mail personnalisés (Startup et supérieurs ; required_plan indique lequel). |
| 409 | conflict |
La version n'a jamais été publiée, ou c'est la version publiée actuellement. |
| 422 | validation_failed |
version est absent ou inférieur à 1, ou le contenu ne passe plus la validation. |
| 401 | unauthenticated |
L'identifiant est absent, invalide ou révoqué. |
| 403 | insufficient_permissions |
L'identifiant n'a pas l'autorisation requise. |
| 429 | rate_limited |
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/email-templates/verify_email/en:rollback \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"version":1}'
CLI : keenauth email-templates rollback verify_email en --version 1 --yes