Actualizar tus metadatos
PATCH /fapi/v1/me/metadata · llamado desde el host de inicio de sesión del entorno
Aplica un merge patch de RFC 7396 a user_metadata del usuario autenticado. app_metadata no se puede escribir aquí. El resultado puede tener como máximo 16 KiB, profundidad 5 y 100 claves de nivel superior. Requiere la cookie __Host-idp_session del usuario autenticado; no es necesaria una reverificación reciente. Una aplicación de primera parte en otro origen puede enviar en su lugar su token de acceso de la API frontal (Authorization: DPoP <token> con una prueba DPoP; consulte Token de acceso de la API frontal).
Solicitud
Encabezados:
| Encabezado | Obligatorio | Descripción |
|---|---|---|
Idp-Client |
sí | Identificador del SDK. |
Origin |
sí | Debe ser exactamente https://<host de inicio de sesión>. |
If-Match |
no | Opcional. El ETag de una respuesta anterior (o *); el cambio solo se realiza si el perfil sigue en esa versión. |
Cuerpo (application/merge-patch+json o application/json): el propio merge patch, un objeto JSON. Una clave establecida en null se elimina; los objetos anidados se combinan.
{
"theme": null,
"preferences": {
"newsletter": false
}
}
Respuesta
200 OK con el perfil actualizado (mismos campos que GET /fapi/v1/me) y un nuevo ETag.
Errores
| Estado | Código | Cuándo |
|---|---|---|
| 400 | malformed_request |
El cuerpo no es un objeto JSON, o el encabezado If-Match está mal formado. |
| 401 | unauthenticated |
No hay una cookie de sesión válida. |
| 403 | origin_not_allowed |
Origin falta o es incorrecto. |
| 404 | not_found |
La cuenta no se puede leer (por ejemplo, está bloqueada o en proceso de eliminación). |
| 412 | precondition_failed |
If-Match no coincide con la versión actual; no se cambió nada. |
| 413 | payload_too_large |
El cuerpo supera los 16 KiB. |
| 415 | unsupported_media_type |
Content-Type no compatible. |
| 422 | validation_failed |
El patch está vacío o el resultado supera un límite (too_large, too_many_keys; el puntero es la raíz del cuerpo). |
| 503 | service_unavailable |
El directorio de usuarios no está disponible temporalmente; reintente después de los segundos indicados en Retry-After. |
Ejemplo
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}'
Datos personales
Este endpoint contiene datos personales: perfil del usuario final. Datos personales en las APIs de KeenAuth describe qué se almacena, durante cuánto tiempo se conserva y cómo se elimina. No envíe categorías especiales de datos personales (salud, datos biométricos, religión, opiniones políticas, orientación sexual) en ningún campo.