Exportar los datos de un usuario
POST /v1/users/{user_id}:export · permiso users:export
Inicia un trabajo que empaqueta los datos personales que KeenAuth conserva sobre un usuario, para una solicitud de acceso o de portabilidad del interesado (artículos 15 y 20 de GDPR). El trabajo se ejecuta en segundo plano: consulte Obtener un trabajo de exportación de datos de usuario hasta que status sea completed, y después descargue el paquete. No se envía ningún correo electrónico al usuario final; la entrega del paquete a esa persona es responsabilidad suya.
Solicitud
| Parámetro | En | Obligatorio | Descripción |
|---|---|---|---|
user_id |
path | sí | Identificador del usuario, con el prefijo usr_. |
Idempotency-Key |
header | no | De 16 a 64 caracteres [A-Za-z0-9_-]. La misma clave desde la misma credencial devuelve el mismo trabajo. |
include_ip |
body | no | true añade al paquete las direcciones IP de las sesiones y de los eventos. Requiere también audit-events:read_ip. Valor predeterminado: false. |
El cuerpo es opcional; envíe {} o no envíe cuerpo para exportar sin direcciones IP.
{ "include_ip": false }
Respuesta
202 Accepted con el trabajo. Una solicitud repetida con la misma Idempotency-Key devuelve el trabajo original y Idempotent-Replayed: true.
{
"id": "job_01j9xk3m7q8r2s4t6v8w0y2z4e",
"kind": "subject",
"source": "management_api",
"user_id": "usr_01j9xk3m7q8r2s4t6v8w0y2z4a",
"status": "queued",
"include_app_metadata": true,
"include_ip": false,
"file": null,
"failure_reason": null,
"requested_by": { "type": "api_key", "id": "key_01j9xk3m7q8r2s4t6v8w0y2z4b" },
"created_at": "2026-10-28T09:00:00Z",
"started_at": null,
"completed_at": null,
"expires_at": null
}
El paquete es un archivo ZIP:
| Archivo | Contenido |
|---|---|
manifest.json |
Versión del esquema, identificadores del trabajo y del usuario, fecha de creación, origen y el SHA-256 y el número de registros de cada uno de los demás archivos. |
profile.json, emails.json, phones.json |
Campos del perfil, direcciones de correo electrónico y números de teléfono. |
metadata.json |
user_metadata y app_metadata. |
identities.json |
Identidades sociales y empresariales vinculadas. |
authenticators.json, sessions.json |
Claves de acceso y otros autenticadores (sin secretos), y sesiones. |
organizations.json, oauth_grants.json, consents.json |
Membresías de organizaciones, concesiones de OAuth y registros de consentimiento. |
auth_events.ndjson |
Eventos de autenticación, un objeto JSON por línea. |
Nunca se incluyen los hashes de contraseñas, las semillas TOTP, los códigos de recuperación, los tokens de sesión ni los tokens SAML o de ID sin procesar. El paquete se conserva durante 7 días después de que el trabajo se complete.
Errores
Todo error es un cuerpo application/problem+json con un code estable.
| HTTP | code |
Cuándo |
|---|---|---|
| 400 | malformed_request |
El cuerpo o el encabezado Idempotency-Key tienen un formato incorrecto. |
| 401 | unauthenticated |
La clave de API falta, no es válida o ha sido revocada. |
| 403 | insufficient_permissions |
La clave no tiene users:export, o include_ip es true y la clave no tiene audit-events:read_ip (required_permissions enumera ambos). |
| 404 | not_found |
El usuario no existe en este entorno, o el identificador tiene un formato incorrecto. |
| 422 | idempotency_key_reuse |
La Idempotency-Key se usó con una solicitud diferente. |
| 429 | rate_limited |
Hay demasiados trabajos de exportación en cola o en ejecución en este entorno, o 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 -X POST https://api.eu.keenauth.com/v1/users/usr_01j9xk3m7q8r2s4t6v8w0y2z4a:export \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Idempotency-Key: dsar-2026-10-28-0001" \
-H "Content-Type: application/json" \
-d '{"include_ip": false}'
CLI: keenauth users export usr_01j9xk3m7q8r2s4t6v8w0y2z4a
Datos personales
Este endpoint contiene datos personales: el perfil del usuario final. Datos personales en las API 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.