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.