Data Portability JSON Exports
GDPR Article 20 dictates users can request their data in a structured, commonly used format. A screenshot doesn't count.
Asynchronous Generation
A deeply nested user profile might require querying 15 tables. Running this synchronously blocks API threads. Use a worker queue (e.g., Celery, Sidekiq).
| Format | Suitability | Machine Readable? |
|---|---|---|
| JSON | Excellent for nested relational data. | Yes |
| CSV | Good for flat ledger data. | Yes |
| Terrible. Fails Article 20 requirements. | No |
Tool: Export Payload Size Estimator
Common Mistakes
Emailing the JSON file directly. Email is insecure in transit. Generate a secure, expiring, single-use S3 pre-signed URL and email the link instead.