Requête exemple
Réponse exemple
POST/v1/gdpr/exportGénère un export RGPD complet de l'espace de travail et enregistre une demande DSAR.Cet endpoint déclenche un export RGPD de portabilité (article 20 du RGPD) pour l'espace de travail authentifié. Il rassemble synchroniquement les données du propriétaire de l'espace et les retourne directement dans la réponse : profil, transferts, fichiers (métadonnées uniquement), journal d'audit, webhooks, clés d'API (sans matériel cryptographique), branding et préférences de notification. L'opération est lourde (classée expensive) : chaque table est plafonnée à 10 000 lignes (5 000 pour le journal d'audit) afin de borner la durée et la taille de la réponse.
En parallèle, l'appel enregistre une vraie ligne d'admission DSAR dans la console RGPD interne via fileGdprRequest. Cet enregistrement est dédupliqué : si une demande d'export de type export est déjà ouverte (statut pending ou in_progress) pour le même utilisateur, aucune nouvelle ligne n'est créée. Ce suivi est best-effort : une erreur lors de l'enregistrement ne fait jamais échouer la réponse d'export retournée au client.
Authentification
Requiert une clé d'API valide portant le scope gdpr:export. Le périmètre des données exportées est déterminé par l'espace de travail (workspace_id) lié à la clé : seules les données de cet espace et de son propriétaire (owner_id) sont retournées. Aucun paramètre d'identification supplémentaire n'est nécessaire.
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
| (aucun) | - | Non | Aucun champ de corps n'est lu ni requis ; la cible est l'espace de travail de la clé d'API. |
Réponse
Retourne un objet gdpr_export (HTTP 200) contenant l'instantané complet des données. Les champs clés sont : object (toujours "gdpr_export"), exported_at (horodatage ISO 8601 de génération), workspace (id, owner_id, name, plan, created_at), profile (profil complet du propriétaire, ou null), transfers (liste des transferts avec short_code, statut, expiration, compteurs de téléchargement, scan_status, encryption_mode), files (métadonnées des fichiers : nom, taille, type, transfer_id, sans contenu), audit_log (jusqu'à 5 000 entrées du journal d'audit), webhooks, api_keys (avec key_prefix mais sans secret), branding et notifications. Les tableaux vides sont retournés tels quels et les objets uniques absents valent null.
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 404 not_found | L'espace de travail lié à la clé est introuvable ou sans propriétaire (owner_id) résolu. | Vérifiez que la clé d'API est rattachée à un espace de travail valide et actif. |
| 401 missing_api_key | Aucune clé d'API n'est fournie dans l'en-tête Authorization. | Ajoutez un en-tête Authorization: Bearer <clé>. |
| 401 invalid_api_key | La clé d'API est invalide, expirée ou révoquée. | Régénérez une clé valide depuis la console développeur. |
| 403 scope_missing | La clé d'API ne porte pas le scope gdpr:export. | Émettez une clé incluant le scope gdpr:export. |
| 429 rate_limited | Le quota par minute de l'espace de travail pour les endpoints expensive est dépassé. | Respectez l'en-tête Retry-After puis réessayez ; espacez les exports. |
| 500 internal_error | Erreur serveur lors de la collecte des données. | Réessayez ; si le problème persiste, contactez le support avec le request_id. |
Voir aussi
POST /v1/gdpr/erase— déclencher l'effacement des données (RGPD Art. 17).- GET /v1/transfers — lister les transferts inclus dans l'export.
GET /v1/audit/logs— consulter le journal d'audit exporté ici.