Télécharger un export de données utilisateur

GET /v1/jobs/user-exports/{job_id}/download · autorisation users:export

Fournit un lien à usage unique vers le paquet d'un export de données utilisateur terminé. Chaque appel écrit un enregistrement user_export.downloaded dans le journal d'audit de gestion avant l'émission du lien.

Requête

Paramètre Dans Obligatoire Description
job_id chemin oui Identifiant de la tâche, préfixé job_.

Une tâche créée avec include_ip: true exige aussi audit-events:read_ip sur l'identifiant qui effectue le téléchargement.

Réponse

302 Found avec un corps vide. Location est un lien relatif sur le même hôte, /downloads/user-exports/{environment_id}/{job_id}/{token}. La réponse contient Cache-Control: no-store et Referrer-Policy: no-referrer.

Suivre le lien avec GET renvoie 200 OK avec Content-Type: application/zip, Content-Length et Content-Disposition: attachment; filename="user-export-job_….zip". HEAD est refusé avec 405 afin que les aperçus de liens ne consomment pas le jeton. Comparez le SHA-256 du fichier avec file.sha256 de la tâche. Si la connexion se termine avant que Content-Length octets ne soient reçus, le paquet est incomplet : supprimez-le et demandez un nouveau lien. Un lien invalide, déjà utilisé ou expiré renvoie 404 not_found.

Erreurs

Chaque erreur est un corps application/problem+json avec un code stable.

HTTP code Quand
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 la tâche a été créée avec include_ip et la clé ne dispose pas de audit-events:read_ip (required_permissions les liste toutes les deux).
404 not_found La tâche n'existe pas, appartient à un autre environnement, ou l'identifiant est mal formé. Sur le lien : le jeton est invalide, déjà utilisé ou expiré.
409 conflict La tâche n'est pas encore terminée, ou son fichier a expiré.
429 rate_limited La limite de débit a été dépassée ; respectez Retry-After. Le lien lui-même autorise 10 requêtes par minute et par adresse IP.
503 service_unavailable Une dépendance est temporairement indisponible ; réessayez plus tard.

Exemple

curl -L -o user-export.zip \
  https://api.eu.keenauth.com/v1/jobs/user-exports/job_01j9xk3m7q8r2s4t6v8w0y2z4e/download \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

L'outil CLI suit lui-même le lien, écrit le paquet dans un fichier (jamais sur la sortie standard), refuse d'écraser un fichier existant et affiche la taille et le SHA-256 de ce qu'il a écrit :

keenauth jobs user-exports download job_01j9xk3m7q8r2s4t6v8w0y2z4e --file user-export.zip

Données personnelles

Ce point de terminaison contient des données personnelles : profil de l'utilisateur final. Données personnelles dans les API KeenAuth décrit ce qui est stocké, pendant combien de temps et comment elles sont supprimées. N'envoyez aucune catégorie particulière de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.