
# Mettre à jour vos métadonnées

`PATCH /fapi/v1/me/metadata` · appelé depuis l'hôte de connexion de l'environnement

Applique un correctif de fusion RFC 7396 à `user_metadata` de l'utilisateur authentifié. `app_metadata` ne peut pas être modifié ici. Le résultat peut peser au plus 16 Kio, avoir une profondeur maximale de 5 et compter au plus 100 clés de premier niveau. Nécessite le cookie `__Host-idp_session` de l'utilisateur authentifié ; aucune vérification récente n'est requise. Une application de première partie sur une autre origine peut à la place envoyer son jeton d'accès à l'API front (`Authorization: DPoP <token>` avec une preuve DPoP ; voir [Jeton d'accès à l'API front](/docs/api/fapi/front-api-token)).

## Requête

En-têtes :

| En-tête | Obligatoire | Description |
| --- | --- | --- |
| `Idp-Client` | oui | Identifiant du SDK. |
| `Origin` | oui | Doit être exactement `https://<hôte de connexion>`. |
| `If-Match` | non | Facultatif. Le `ETag` d'une réponse précédente (ou `*`) ; la modification n'est effectuée que si le profil est toujours à cette version. |

Corps (`application/merge-patch+json` ou `application/json`) : le correctif de fusion lui-même, un objet JSON. Une clé définie à `null` est supprimée ; les objets imbriqués sont fusionnés.

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

## Réponse

`200 OK` avec le profil mis à jour (mêmes champs que `GET /fapi/v1/me`) et un nouveau `ETag`.

## Erreurs

| Statut | Code | Quand |
| --- | --- | --- |
| 400 | `malformed_request` | Le corps n'est pas un objet JSON, ou l'en-tête `If-Match` est mal formé. |
| 401 | `unauthenticated` | Aucun cookie de session valide. |
| 403 | `origin_not_allowed` | `Origin` est absent ou incorrect. |
| 404 | `not_found` | Le compte ne peut pas être lu (par exemple bloqué ou en cours de suppression). |
| 412 | `precondition_failed` | `If-Match` ne correspond pas à la version actuelle ; rien n'a été modifié. |
| 413 | `payload_too_large` | Le corps dépasse 16 Kio. |
| 415 | `unsupported_media_type` | `Content-Type` non pris en charge. |
| 422 | `validation_failed` | Le correctif est vide, ou le résultat dépasse une limite (`too_large`, `too_many_keys` ; le pointeur est la racine du corps). |
| 503 | `service_unavailable` | L'annuaire des utilisateurs est temporairement indisponible ; réessayez après `Retry-After` secondes. |

## Exemple

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

## Données personnelles

Cet point d'accès traite des données personnelles : le profil de l'utilisateur final. [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, la durée de conservation et la manière dont elles sont supprimées. N'envoyez pas de catégories particulières de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.
