Export My Data
Export the calling user's personal data — profile, the usage and balance of the accounts they own, and recent sign-ins — as a single JSON file. Useful for GDPR data-portability requests.
Account resources (endpoints, tunnels, domains, firewall policies, …) are not in it: they belong to the account, not to the member who created them, and stay with the account when a member leaves. A member of the account reads them through their own API routes (for example GET /v1/endpoints).
Unlike most POST endpoints, this streams the export inline as a JSON download (Content-Type: application/json, Content-Disposition: attachment, file name easytunnel-data-export-<your user uuid>-<date>.json); there's no async queue. Individual sections that fail to load are logged server-side and left empty — the export always completes with whatever data was readable.
Request body
None — pass {} or omit the body entirely. The export covers the authenticated user.
Response (200 OK)
JSON document, returned as a streaming download. Every object carries its public uuid and every reference its <thing>_uuid — the same ids the rest of the API uses. Top-level keys:
{uuid, username, email, plan, status, created_at}.{accounts: [{account_uuid, account_name, period_requests, period_bytes_in, …}]} — one entry per account you own.{accounts: [{account_uuid, account_name, balance_cents, transactions: [{uuid, type, amount_cents, description, created_at}]}], total_balance_cents} — the last 100 ledger rows per account you own.{ip_address, user_agent, success, created_at}.Deprecated: the export still carries the integer id and account_id fields next to the uuids. They are removed at the sunset; use the uuid fields.