Export de données & effacement
Demander une archive de portabilité RGPD (art. 20) via l'API, et planifier ou annuler l'effacement du compte.
Deux droits des personnes concernées disposent d'endpoints dans l'API publique : la portabilité (art. 20), qui produit une archive JSON de vos données personnelles, et l'effacement (art. 17), qui programme la suppression du compte.
L'export de données n'a aucune interface dans le tableau de bord. Il est accessible uniquement par l'API.
Il n'existe dans l'application Parsurai ni bouton, ni page, ni lien de téléchargement pour l'archive de l'art. 20. Les trois endpoints ci-dessous constituent toute la fonctionnalité — demander une archive, en suivre l'état et la télécharger passent tous par l'API avec votre clé API. La section Export de données sous Paramètres → Sécurité correspond à l'export CSV DATEV, qui est une autre fonctionnalité.
L'effacement, lui, est différent : il dispose d'un chemin dans le tableau de bord en plus des endpoints décrits plus bas.
Aucune de ces routes n'est soumise à l'offre, et aucune n'est conditionnée à l'acceptation d'une nouvelle version des documents juridiques — subordonner un droit de la personne concernée à l'acceptation d'un document viderait ce droit de sa substance.
Demander une archive
/v1/me/data-exportcurl -X POST "https://api.parsurai.com/v1/me/data-export" \
-H "X-API-Key: $PARSURAI_API_KEY"
{
"export_id": "3c8a1d52-7e04-4b91-bd6f-5a2c7f0e9b31",
"status": "pending"
}
La réponse est un 202 Accepted : l'archive est construite en arrière-plan, pas pendant la requête.
Cet endpoint est limité à 5 requêtes par heure et par compte, bien en deçà des limites générales décrites dans Limites de taux & Erreurs. Une archive est la copie la plus concentrée de vos données personnelles dans le système : elle est donc délibérément coûteuse à demander. Interrogez l'état plutôt que de demander une seconde archive.
Suivre l'état
/v1/me/data-export/{export_id}curl "https://api.parsurai.com/v1/me/data-export/3c8a1d52-7e04-4b91-bd6f-5a2c7f0e9b31" \
-H "X-API-Key: $PARSURAI_API_KEY"
{
"export_id": "3c8a1d52-7e04-4b91-bd6f-5a2c7f0e9b31",
"status": "ready",
"download_url": "https://api.parsurai.com/v1/me/data-export/3c8a1d52-7e04-4b91-bd6f-5a2c7f0e9b31/download?token=...",
"expires_at": "2026-06-14T10:12:44Z"
}
| Champ | Type | Description |
|---|---|---|
export_id | UUID | L'archive décrite |
status | string | pending, ready, failed ou expired |
download_url | string | null | Le lien à usage unique, présent seulement tant que l'archive est ready et inutilisée |
expires_at | timestamp | null | Quand le jeton de téléchargement cesse de fonctionner |
Un export_id qui n'est pas le vôtre renvoie 404, jamais 403 — un 403 confirmerait qu'une archive appartenant à quelqu'un d'autre existe sous cet identifiant.
download_url disparaît dès que l'archive a été téléchargée une fois. Relire l'état après un téléchargement réussi renvoie download_url: null, le statut restant ready.
Télécharger
/v1/me/data-export/{export_id}/downloadLe token signé présent dans la chaîne de requête est la seule authentification acceptée par cette route — les navigateurs suivent un lien de téléchargement sans envoyer d'en-tête X-API-Key. Le jeton est lié à une archive et à un compte, expire, et est consommé dès la première utilisation.
curl -L "$DOWNLOAD_URL" -o data-export.json
La réponse diffuse l'archive en pièce jointe :
HTTP/1.1 200 OK
Content-Type: application/json
Content-Disposition: attachment; filename="data-export-3c8a1d52-7e04-4b91-bd6f-5a2c7f0e9b31.json"
Cache-Control: no-store
Referrer-Policy: no-referrer
Tout refus — jeton expiré, mauvaise archive, mauvais propriétaire, archive non prête, déjà téléchargée — renvoie le même 403 avec le même message :
{ "detail": "download link is not valid" }
Les cas sont délibérément indiscernables : le détenteur d'un lien volé n'apprend rien sur la partie du lien qu'il faudrait modifier.
Le lien de téléchargement est à usage unique. Un transfert interrompu après que le serveur a marqué l'archive comme téléchargée ne peut pas être relancé avec le même lien — demandez alors un nouvel export.
Durée de vie du jeton et de l'archive
Les deux sont des réglages de déploiement : confirmez-les auprès de l'exploitant de votre déploiement. Les valeurs par défaut livrées sont :
| Réglage | Valeur par défaut |
|---|---|
| Durée de vie du jeton de téléchargement | 60 minutes à partir du moment où l'archive est prête |
| Rétention de l'archive | 7 jours, après quoi les octets stockés sont purgés et l'enregistrement supprimé |
L'archive existe pour être téléchargée, pas pour être conservée : c'est pourquoi elle a la fenêtre de rétention la plus courte de toutes les catégories de données.
Contenu de l'archive
L'archive est un unique document JSON : un manifest décrivant l'export, puis une section par catégorie de données.
| Section | Contenu |
|---|---|
account | Identifiant du compte, e-mail, nom affiché, offre, date de création |
settings | Les paramètres de votre compte |
webhooks | La configuration de vos endpoints de webhook |
legal_acceptances | Quelles versions des documents juridiques vous avez acceptées, et quand |
business_details | Les informations d'entreprise enregistrées |
billing | Identifiant client Stripe et statut d'abonnement |
extraction_history | Votre historique d'extractions |
manifest contient schema_version, generated_at, user_id, ainsi qu'un décompte par section dans categories.
Les identifiants d'accès sont exclus par construction : empreintes de mots de passe, empreintes de clés API et secrets de signature de webhook ne figurent jamais dans l'archive. Ce ne sont pas des données personnelles portables, et les exporter créerait un nouveau risque de divulgation.
Si l'archive assemblée dépasse la taille maximale du déploiement (64 Mo par défaut), la construction échoue et l'export se termine avec status: "failed".
Effacement
L'effacement programme la suppression du compte après un délai de grâce, pendant lequel vous pouvez encore changer d'avis.
/v1/mecurl -X DELETE "https://api.parsurai.com/v1/me" \
-H "X-API-Key: $PARSURAI_API_KEY"
{ "scheduled_for": "2026-07-14T09:12:44Z" }
Programmer la suppression :
- fixe la date de suppression à 30 jours,
- résilie un abonnement Stripe actif à la fin de la période de facturation en cours, et
- envoie un e-mail de confirmation à l'adresse du compte.
Le compte continue de fonctionner jusqu'à la date prévue. Les clés API restent valides et les extractions continuent ; les requêtes ne commencent à être refusées qu'une fois la date de suppression passée. Après le délai de grâce, une purge planifiée supprime le compte et ses données.
/v1/me/cancel-deletioncurl -X POST "https://api.parsurai.com/v1/me/cancel-deletion" \
-H "X-API-Key: $PARSURAI_API_KEY"
L'annulation renvoie les données courantes du compte, dans la même structure que GET /v1/me. Un compte sans suppression programmée reçoit un 409.
L'effacement est également disponible dans le tableau de bord, sous Paramètres → Zone de danger, avec le même parcours de programmation et d'annulation. Contrairement à l'archive de l'art. 20, l'API n'est pas nécessaire.