Export my personal data (GDPR)

gethttps://api.expiryedge.com/v1/exportMyData
any role60/min
Request
curl 'https://api.expiryedge.com/v1/exportMyData' \
  -H "Authorization: Bearer $EXPIRYEDGE_API_KEY"
Response
{
  "exported_at": "2026-09-27T14:05:00.000Z",
  "account": {
    "email": "dana@northwinddental.com",
    "firstName": "Dana",
    "lastName": "Brooks",
    "organization_id": "org_northwind",
    "role": "admin"
  },
  "organization": {
    "name": "Northwind Dental",
    "id_note": "Full organization record available to the organization owner only."
  },
  "user_settings": null,
  "user_onboarding": null,
  "notification_preferences": {
    "push_enabled": true,
    "push_scope": "assigned"
  },
  "note": "This export covers your account profile and settings."
}

Returns a JSON download (Content-Disposition: attachment) of your profile, settings, onboarding state, notification preferences and (redacted) organization record. Expiries, contacts and documents are not included yet.

Returns

200
JSON export, sent as an attachment named expiryedge-my-data.json.
  • exported_atstringrequired
    UTC timestamp, ISO 8601. Every v1 response uses this form, never a raw Firestore Timestamp ({_seconds, _nanoseconds}).
    format: date-time
  • accountobjectrequired
    Your full user profile record.
  • organizationobject | null
    Full record (billing identifiers removed) for the owner; only name for other members.
  • user_settingsobject | null
  • user_onboardingobject | null
  • notification_preferencesobject | null
  • notestring

Errors

401
Missing, expired or invalid bearer token.
404
The record does not exist or is not in your organization.
429
Too many requests for this endpoint from your IP. Wait Retry-After seconds.
500
Unexpected server error. Retry later; quote requestId to support.