
# E-Mail-Vorlage veröffentlichen

`POST /v1/email-templates/{family}/{locale}:publish` · Berechtigung `email-templates:write` · Startup-Plan und höher

Validiert einen Entwurf erneut und veröffentlicht ihn. Die bisher veröffentlichte Version wird archiviert, und der Verwaltungs-Auditeintrag `email_template.published` wird in derselben Transaktion geschrieben. E-Mails, die danach versendet werden, verwenden die neue Version.

Die bereits veröffentlichte Version erneut zu veröffentlichen ändert nichts und liefert sie erneut zurück; Wiederholungen sind daher sicher. Ein Entwurf, der älter ist als die veröffentlichte Version, oder eine archivierte Version liefert `409`; verwenden Sie [zurücksetzen](rollback.md), um zu einer archivierten Version zurückzukehren.

## Pfadparameter

| Parameter | Beschreibung |
|---|---|
| `family` | E-Mail-Familie, zum Beispiel `verify_email` oder `email_otp` (siehe [E-Mail-Vorlagen auflisten](list.md)). |
| `locale` | Sprachkennung, zum Beispiel `en` oder `de`. |

## Anfrage

| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| `version` | integer | ja | Die zu veröffentlichende Entwurfsversion (1 oder größer). |

## Antwort

`200 OK` mit der veröffentlichten Version (`status: published`).

## Fehler

| HTTP | code | Wann |
|---|---|---|
| 400 | `unknown_field` | Der Body enthält ein unbekanntes Feld oder ist kein JSON-Objekt. |
| 404 | `not_found` | Familie oder Sprache ist unbekannt, oder die Version existiert nicht. |
| 403 | `plan_feature_unavailable` | Der Plan der Umgebung enthält keine eigenen E-Mail-Vorlagen (Startup und höher; `required_plan` nennt den nötigen Plan). |
| 409 | `conflict` | Die Version ist archiviert oder älter als die veröffentlichte Version. |
| 422 | `validation_failed` | `version` fehlt oder ist kleiner als 1, oder der Entwurf besteht die Validierung nicht mehr. |
| 401 | `unauthenticated` | Die Anmeldeinformation fehlt, ist ungültig oder widerrufen. |
| 403 | `insufficient_permissions` | Der Anmeldeinformation fehlt die erforderliche Berechtigung. |
| 429 | `rate_limited` | Das Ratenlimit wurde überschritten; wiederholen Sie nach der Zeit aus `Retry-After`. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie nach der Zeit aus `Retry-After`. |

## Beispiel

```bash
curl -X POST https://api.eu.keenauth.com/v1/email-templates/verify_email/en:publish \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"version":3}'
```

CLI: `keenauth email-templates publish verify_email en --version 3`
