Exporter les données d'un utilisateur
POST /v1/users/{user_id}:export · autorisation users:export
Lance une tâche qui regroupe les données personnelles que KeenAuth détient sur un utilisateur, pour une demande d'accès ou de portabilité de la personne concernée (GDPR, articles 15 et 20). La tâche s'exécute en arrière-plan : interrogez Obtenir une tâche d'export de données utilisateur jusqu'à ce que status soit completed, puis téléchargez le paquet. L'utilisateur final n'est pas envoyé par e-mail ; la remise du paquet lui incombe.
Requête
| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
user_id |
path | oui | Identifiant de l'utilisateur, préfixé usr_. |
Idempotency-Key |
header | non | 16 à 64 caractères [A-Za-z0-9_-]. La même clé provenant du même identifiant renvoie la même tâche. |
include_ip |
body | non | true ajoute au paquet les adresses IP des sessions et des événements. Nécessite aussi audit-events:read_ip. Par défaut false. |
Le corps est facultatif ; envoyez {} ou aucun corps pour un export sans adresses IP.
{ "include_ip": false }
Réponse
202 Accepted avec la tâche. Une requête rejouée avec la même Idempotency-Key renvoie la tâche d'origine et 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
}
Le paquet est un fichier ZIP :
| Fichier | Contenu |
|---|---|
manifest.json |
Version du schéma, identifiants de la tâche et de l'utilisateur, date de création, source, et le SHA-256 et le nombre d'enregistrements de chaque autre fichier. |
profile.json, emails.json, phones.json |
Champs de profil, adresses e-mail et numéros de téléphone. |
metadata.json |
user_metadata et app_metadata. |
identities.json |
Identités sociales et d'entreprise liées. |
authenticators.json, sessions.json |
Clés d'accès et autres authentificateurs (sans secrets), et sessions. |
organizations.json, oauth_grants.json, consents.json |
Appartenances aux organisations, autorisations OAuth et enregistrements de consentement. |
auth_events.ndjson |
Événements d'authentification, un objet JSON par ligne. |
Les empreintes de mots de passe, les graines TOTP, les codes de récupération, les jetons de session et les jetons SAML ou ID bruts ne sont jamais inclus. Le paquet est conservé 7 jours après la fin de la tâche.
Erreurs
Chaque erreur est un corps application/problem+json avec un code stable.
| HTTP | code |
Quand |
|---|---|---|
| 400 | malformed_request |
Le corps ou l'en-tête Idempotency-Key est mal formé. |
| 401 | unauthenticated |
La clé d'API est absente, invalide ou révoquée. |
| 403 | insufficient_permissions |
La clé ne dispose pas de users:export, ou include_ip est true et la clé ne dispose pas de audit-events:read_ip (required_permissions les liste toutes deux). |
| 404 | not_found |
L'utilisateur n'existe pas dans cet environnement, ou l'identifiant est mal formé. |
| 422 | idempotency_key_reuse |
Idempotency-Key a été utilisé avec une requête différente. |
| 429 | rate_limited |
Trop de tâches d'export sont en file d'attente ou en cours dans cet environnement, ou la limite de débit a été dépassée ; respectez Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez plus tard. |
Exemple
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
Données personnelles
Ce point de terminaison traite des données personnelles : profil de l'utilisateur final. Données personnelles dans les API KeenAuth décrit ce qui est stocké, la durée de conservation et la suppression. Ne transmettez aucune catégorie particulière de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.