
# Elencare i modelli e-mail

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

Restituisce ogni famiglia di e-mail personalizzabile in ordine di piano, con le lingue che hanno versioni. L'elenco è fisso e non paginato (i cursori `list_metadata` sono sempre `null`). La lettura funziona su ogni piano.

Ogni famiglia indica cosa deve contenere un modello:

- `security`: la piattaforma aggiunge un blocco di sicurezza che il modello non può rimuovere.
- `requires`: il valore che il messaggio deve mostrare sia nel corpo HTML sia in quello di testo semplice: `code`, `link`, `code_or_link` o `none`.
- `available`: `false` significa che la famiglia non ha ancora un modello di sistema in questa release; le bozze vengono rifiutate.
- `variables`: le variabili Liquid che il modello può usare.

## Risposta

`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}
}
```

## Errori

| HTTP | code | Quando |
|---|---|---|
| 401 | `unauthenticated` | La credenziale è mancante, non valida o revocata. |
| 403 | `insufficient_permissions` | La credenziale non ha il permesso richiesto. |
| 429 | `rate_limited` | È stato superato il limite di frequenza; riprova dopo il periodo indicato in `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo indicato in `Retry-After`. |

## Esempio

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

CLI: `keenauth email-templates list`
