
# Lister les modèles d'e-mail

`GET /v1/email-templates` · autorisation `email-templates:read`

Renvoie chaque famille d'e-mails personnalisable, dans l'ordre du plan, avec les langues qui ont des versions. La liste est fixe et non paginée (les curseurs `list_metadata` valent toujours `null`). La lecture fonctionne sur tous les plans.

Chaque famille indique ce que doit contenir un modèle :

- `security` : la plateforme ajoute un bloc de sécurité que le modèle ne peut pas supprimer.
- `requires` : la valeur que le message doit afficher dans le corps HTML et dans le corps en texte brut : `code`, `link`, `code_or_link` ou `none`.
- `available` : `false` signifie que la famille n'a pas encore de modèle système dans cette version ; les brouillons sont refusés.
- `variables` : les variables Liquid que le modèle peut utiliser.

## Réponse

`200 OK`

```json
{
  "data": [
    {
      "family": "verify_email",
      "security": false,
      "requires": "code_or_link",
      "available": true,
      "variables": ["application.name", "code", "dir", "environment.display_name", "expires_in_minutes", "link", "locale", "support_url", "user.email"],
      "locales": [{"locale": "en", "latest_version": 3, "published_version": 2}]
    }
  ],
  "list_metadata": {"before": null, "after": null}
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 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

```bash
curl https://api.eu.keenauth.com/v1/email-templates \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI : `keenauth email-templates list`
