
# Metadaten aktualisieren

`PATCH /fapi/v1/me/metadata` · wird vom Anmelde-Host der Umgebung aufgerufen

Wendet einen Merge-Patch nach RFC 7396 auf das `user_metadata` des authentifizierten Benutzers an. `app_metadata` kann hier nicht geschrieben werden. Das Ergebnis darf höchstens 16 KiB groß sein, eine Tiefe von 5 und höchstens 100 Schlüssel auf oberster Ebene haben. Erforderlich ist das Cookie `__Host-idp_session` des authentifizierten Benutzers; eine kürzliche erneute Verifizierung ist nicht nötig. Eine First-Party-Anwendung auf einem anderen Origin kann stattdessen ihr Front-API-Zugriffstoken senden (`Authorization: DPoP <token>` mit einem DPoP-Proof; siehe [Front-API-Zugriffstoken](/docs/api/fapi/front-api-token)).

## Anfrage

Header:

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Idp-Client` | ja | Kennung des SDK. |
| `Origin` | ja | Muss genau `https://<Anmelde-Host>` sein. |
| `If-Match` | nein | Optional. Das `ETag` einer früheren Antwort (oder `*`); die Änderung erfolgt nur, wenn das Profil noch in dieser Version vorliegt. |

Body (`application/merge-patch+json` oder `application/json`): der Merge-Patch selbst, ein JSON-Objekt. Ein Schlüssel mit dem Wert `null` wird entfernt; verschachtelte Objekte werden zusammengeführt.

```json
{
  "theme": null,
  "preferences": {
    "newsletter": false
  }
}
```

## Antwort

`200 OK` mit dem aktualisierten Profil (dieselben Felder wie bei `GET /fapi/v1/me`) und einem neuen `ETag`.

## Fehler

| Status | Code | Wann |
| --- | --- | --- |
| 400 | `malformed_request` | Der Body ist kein JSON-Objekt oder der Header `If-Match` ist fehlerhaft. |
| 401 | `unauthenticated` | Kein gültiges Sitzungs-Cookie. |
| 403 | `origin_not_allowed` | `Origin` fehlt oder ist falsch. |
| 404 | `not_found` | Das Konto kann nicht gelesen werden (zum Beispiel gesperrt oder in Löschung). |
| 412 | `precondition_failed` | `If-Match` stimmt nicht mit der aktuellen Version überein; nichts wurde geändert. |
| 413 | `payload_too_large` | Der Body überschreitet 16 KiB. |
| 415 | `unsupported_media_type` | Nicht unterstützter `Content-Type`. |
| 422 | `validation_failed` | Der Patch ist leer oder das Ergebnis überschreitet ein Limit (`too_large`, `too_many_keys`; der Pointer ist die Body-Wurzel). |
| 503 | `service_unavailable` | Das Benutzerverzeichnis ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach `Retry-After` Sekunden. |

## Beispiel

```bash
curl -X PATCH https://example.keenauth.app/fapi/v1/me/metadata \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/merge-patch+json" \
  -b cookies.txt \
  -d '{"theme":null}'
```

## Personenbezogene Daten

Dieser Endpunkt verarbeitet personenbezogene Daten: Profil des Endbenutzers. [Personenbezogene Daten in den KeenAuth-APIs](/docs/policies/personal-data) beschreibt, was gespeichert wird, wie lange es aufbewahrt wird und wie es gelöscht wird. Übermitteln Sie keine besonderen Kategorien personenbezogener Daten (Gesundheit, biometrische Daten, Religion, politische Meinungen, sexuelle Orientierung) in irgendeinem Feld.
