
# Anwendungsthema ersetzen

`PUT /v1/branding/applications/{application_id}` · Berechtigung `branding:write`

Ersetzt den gesamten Themenentwurf des Bereichs; im Body fehlende Tokens werden gelöscht. `{"theme":{}}` leert den Bereich. `If-Match` trägt das `ETag` dieses Bereichs (aus dem passenden GET), nicht das der Umgebung.

## Anfrage

| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `application_id` | Pfad | ja | `app_…`-ID. |
| `If-Match` | Header | ja | Das zuletzt gelesene `ETag` des Entwurfs (`"0"`, wenn nie geschrieben). Fehlt: `428`; veraltet: `412`. |
| `theme` | Objekt | ja | Vollständiges `BrandingTheme` des Bereichs. |

## Antwort

`200 OK` mit dem Themenentwurf des Bereichs und seinem `ETag` (jeder Bereich hat eine eigene Version).

```json
{
  "theme": {"logo": "logo_acme", "light": {"color": {"primary": "#0a3d91"}}},
  "updated_at": "2026-10-05T09:30:00.123456Z"
}
```

## Fehler

| HTTP | Code | Wann |
|---|---|---|
| 400 | `unknown_field` | Der Body enthält ein unbekanntes Feld oder ist kein JSON-Objekt. |
| 404 | `not_found` | Die Anwendung existiert in dieser Umgebung nicht, oder die ID ist fehlerhaft. |
| 412 | `precondition_failed` | `If-Match` stimmt nicht mit der aktuellen Version des Entwurfs überein. |
| 422 | `validation_failed` | Ein Tokenwert ist ungültig (`invalid_value`, `out_of_range`, `unknown_token`); `pointer` nennt das Token, z. B. `/theme/light/color/primary`. |
| 428 | `precondition_required` | Der `If-Match`-Header fehlt. |
| 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; nach der `Retry-After`-Zeit erneut versuchen. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; nach der `Retry-After`-Zeit erneut versuchen. |

## Beispiel

```bash
curl -X PUT https://api.eu.keenauth.com/v1/branding/applications/app_01jbexample0000000000000000 \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H 'If-Match: "1"' \
  -d '{"theme":{"logo":"logo_acme","light":{"color":{"primary":"#0a3d91"}}}}'
```
