Skip to main content
Cet endpoint matérialise le droit à la portabilité prévu par le RGPD article 20 et la déclaration “Privacy by design” Actero. Il retourne en un seul appel toutes les données stockées sur le tenant de l’utilisateur authentifié, prêtes à être archivées ou migrées chez un autre prestataire. Voir Export RGPD pour le contexte légal et opérationnel.

Authentification

Authorization: Bearer <jwt> (Supabase). Les clés API ak_… fonctionnent aussi. Le client_id n’est pas un paramètre — il est résolu côté serveur depuis l’utilisateur authentifié :
  1. Si l’user est clients.owner_user_id d’un tenant → ce tenant.
  2. Sinon, premier client_id trouvé dans client_users pour cet user.
Si l’user n’est lié à aucun client → 403 Aucun client associé.
Pour les comptes multi-tenants (rare), seul le premier client lié est exporté. Lance une session séparée par tenant si tu en as plusieurs.

Query params

enum
default:"json"
json (défaut) ou csv. Le CSV concatène toutes les tables en un seul fichier avec des sections ## table_name (count) pour pouvoir l’ouvrir dans Excel ou LibreOffice (BOM UTF-8 inclus).

Headers

Response — 200 OK

Format JSON

Content-Type: application/json; charset=utf-8 Content-Disposition: attachment; filename="actero-export-2026-04-22T10-00-00.json"

Format CSV

Content-Type: text/csv; charset=utf-8 Content-Disposition: attachment; filename="actero-export-2026-04-22T10-00-00.csv"

Tables exportées

Les tokens OAuth (Shopify, Stripe…) sont volontairement exclus de l’export. Ils sont stockés chiffrés et liés à l’instance Actero ; ils ne sont pas portables. Pour migrer, reconnecte tes intégrations chez le nouveau prestataire.

Response — autres cas

401 Unauthorized

403 Forbidden

405 Method Not Allowed

Cet endpoint accepte uniquement GET.

Erreurs partielles

Si une table individuelle échoue (problème de droits, table absente d’un déploiement particulier), elle apparaît avec un tableau vide [] plutôt que de faire échouer tout l’export. La réponse reste 200 OK. Cross-vérifie les volumes attendus avant d’archiver.

Exemples

Performance et taille

L’export est synchrone : le serveur lit séquentiellement chaque table puis stream la réponse. Pour un tenant moyen :
Si tu hits le timeout Vercel (60 s), contacte contact@actero.fr — on a un job async dédié pour les très gros tenants qui dump vers un bucket S3 signé.

Suppression vs export

L’export ne supprime rien. Pour exercer ton droit à l’effacement (RGPD article 17), envoie un email à contact@actero.fr depuis l’adresse owner du tenant — la suppression est manuelle et tracée pour des raisons d’audit.

Rate limit

5 exports / minute / user. Inutile d’en faire plus — l’export représente un instantané, pas un flux temps réel. Pour streamer les nouvelles données, utilise les webhooks sortants.