Users can export their data in a structured, machine-readable format
Why it matters
GDPR Art. 20 grants data subjects the right to receive data they have 'provided' in a structured, commonly used, machine-readable format. This is not satisfied by a PDF, an HTML page, or a JSON blob full of abbreviated field names like ts, uid, and evt. The portability right exists specifically so users can take their data to a competing service — which requires a format that a human or automated import tool can interpret without a technical manual. Failing to provide a self-documenting, versioned export also makes your own DSAR compliance fragile: if the schema changes and old exports are unreadable, you have no durable evidence trail.
Severity rationale
Medium because the portability gap is a discrete Art. 20 violation but does not by itself put users at immediate harm — however, it compounds with Art. 15 (access) gaps when no export exists at all.
Remediation
Ensure your export endpoint produces a self-documenting JSON structure with a _meta block, full field names, and a format version.
{
"_meta": {
"exportedAt": "2026-02-22T10:00:00Z",
"formatVersion": "1.0",
"schemaDescription": "Personal data export. Timestamps are UTC ISO 8601. IDs are UUIDs.",
"schemaUrl": "https://example.com/docs/data-export-schema"
},
"profile": {
"userId": "usr_abc123",
"emailAddress": "alice@example.com",
"displayName": "Alice",
"accountCreatedAt": "2025-06-01T09:00:00Z"
},
"contentCreated": [
{ "itemId": "item_xyz", "title": "My first post", "createdAt": "2025-07-15T14:30:00Z" }
]
}
Use full, descriptive field names throughout — never abbreviated database column names. Increment formatVersion whenever the schema changes so older exports remain interpretable. Include the _meta block in your existing app/api/user/export/route.ts response.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the GDPR Readiness Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- gdpr · Art. 20 — Right to data portability
- gdpr · Art. 15 — Right of access by the data subject
Taxons
History
- 2026-04-18·v1.0.0·Initial import from gdpr-readiness·automated