Obtener un usuario
GET /v1/users/{user_id} · permiso users:read
Devuelve un usuario. Un usuario de otro entorno, un usuario que no existe y un usuario que ha sido eliminado devuelven todos 404; la existencia nunca se revela entre entornos.
Solicitud
| Parámetro | En | Obligatorio | Descripción |
|---|---|---|---|
user_id |
path | sí | Id del usuario, con el prefijo usr_. |
include |
query | no | Establézcalo en deleted para obtener un registro de eliminación de un usuario eliminado en lugar de 404. |
Con include=deleted, un usuario eliminado devuelve 410 con deleted_at, deletion_id, backups_purged_by (la fecha en que los datos se purgan de las copias de seguridad) y, en el caso de un usuario fusionado, merged_into; un usuario que nunca existió sigue devolviendo 404.
Respuesta
200 OK. El cuerpo es el objeto del usuario. El encabezado ETag contiene la versión del usuario.
Los datos personales se enmascaran cuando la clave no tiene el permiso users:read_pii: email pasa a ser a***@e***.com, phone_number conserva solo sus últimos 2 dígitos (+**********67), name, given_name, family_name, middle_name y nickname pasan a ser iniciales (A. L.), username conserva solo su primer carácter (a***), birthdate pasa a ser ****-**-** y address pasa a ser {"redacted": true}. user_metadata y app_metadata no se enmascaran.
{
"id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
"kind": "regular",
"status": "active",
"external_id": null,
"username": null,
"name": "Ada Lovelace",
"email": "ada@example.com",
"email_verified": true,
"phone_number": null,
"phone_verified": false,
"user_metadata": {},
"app_metadata": {},
"created_via": "admin_api",
"created_at": "2026-01-15T09:30:00Z",
"updated_at": "2026-01-15T09:30:00Z",
"last_sign_in_at": null,
"deletion_requested_at": null,
"deletion_due_at": null
}
Errores
Cada error es un cuerpo application/problem+json con un code estable.
| HTTP | code |
Cuándo |
|---|---|---|
| 404 | not_found |
El usuario no existe en este entorno (o el id tiene un formato incorrecto). |
| 410 | user_deleted |
El usuario fue eliminado y se solicitó include=deleted; el cuerpo incluye deleted_at, deletion_id, backups_purged_by y, en el caso de un usuario fusionado, merged_into. |
| 401 | unauthenticated |
La clave de API falta, no es válida o ha sido revocada. |
| 403 | insufficient_permissions |
La clave no tiene el permiso users:read. |
| 429 | rate_limited |
Se superó el límite de solicitudes; respete Retry-After. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; vuelva a intentarlo más tarde. |
Ejemplo
curl https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
Datos personales
Este endpoint maneja datos personales: perfil del usuario final. Datos personales en las API de KeenAuth describe qué se almacena, 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.