Exports
Export a tenant or one account as an archive, then download or delete it.
Guides: Exports.
| Method | Path | Operation | Scope |
|---|---|---|---|
GET | /v1/exports | List exports, newest first | admin |
POST | /v1/exports | Export the tenant or one account | admin |
GET | /v1/exports/{exportId} | Get an export | admin |
DELETE | /v1/exports/{exportId} | Delete an export and its file | admin |
GET | /v1/exports/{exportId}/download | Download an export (application/gzip) | admin |
Runs in your browser against api.workwae.com with the key you enter. Use a read-only key, limited to a test account if you can.
Requires the admin scope.
Required scope: admin.
limit?integer1 <= value <= 20050cursor?string1 <= length <= 512OK
application/json- response
items*array<>nextCursor*|nullcurl -X GET 'https://api.workwae.com/v1/exports'{ "items": [ { "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b", "accountId": "6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b", "accountEmail": "string", "status": "queued", "bytes": 0, "sha256": "string", "contents": { "property1": 0, "property2": 0 }, "error": "string", "createdAt": "2026-05-04T09:30:00.000Z", "startedAt": "2026-05-04T09:30:00.000Z", "completedAt": "2026-05-04T09:30:00.000Z", "expiresAt": "2026-05-04T09:30:00.000Z" } ], "nextCursor": "eyJ0eG5pZCI6IjQyIiwiaWQiOjEwMDF9"}Runs against the live API with the key you enter: this change really happens. Use a key limited to a test account.
Builds a gzip-compressed tar in the background: accounts without secrets, mailboxes, message metadata (JSON lines), stored message bodies as .eml, calendars and events as JSON and .ics, and for a tenant export its webhooks (without signing secrets), templates and settings. Follow it with GET /v1/exports/{exportId}, or the export.completed and export.failed events. Requires the admin scope.
Required scope: admin.
application/json- body
accountId?stringuuidOK
application/json- response
id*stringuuidaccountId*|nullaccountEmail*string|nullstatus*ExportStatus"queued""running""completed""failed""expired"bytes*integersha256*string|nullcontents*error*string|nullcreatedAt*stringdate-timestartedAt*|nullcompletedAt*|nullexpiresAt*|nullcurl -X POST 'https://api.workwae.com/v1/exports' \ -H 'Content-Type: application/json' \ -d '{}'{ "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b", "accountId": "6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b", "accountEmail": "string", "status": "queued", "bytes": 0, "sha256": "string", "contents": { "property1": 0, "property2": 0 }, "error": "string", "createdAt": "2026-05-04T09:30:00.000Z", "startedAt": "2026-05-04T09:30:00.000Z", "completedAt": "2026-05-04T09:30:00.000Z", "expiresAt": "2026-05-04T09:30:00.000Z"}Runs in your browser against api.workwae.com with the key you enter. Use a read-only key, limited to a test account if you can.
Requires the admin scope.
Required scope: admin.
exportId*stringuuidOK
application/json- response
id*stringuuidaccountId*|nullaccountEmail*string|nullstatus*ExportStatus"queued""running""completed""failed""expired"bytes*integersha256*string|nullcontents*error*string|nullcreatedAt*stringdate-timestartedAt*|nullcompletedAt*|nullexpiresAt*|nullcurl -X GET 'https://api.workwae.com/v1/exports/56677aa9-5bc6-4869-a067-424b6e1df1a0'{ "id": "c4e6a8b0-1d3f-4a5c-8e7b-9d1f3a5c7e9b", "accountId": "6f1c2a4e-8b3d-4e5f-9a7b-1c2d3e4f5a6b", "accountEmail": "string", "status": "queued", "bytes": 0, "sha256": "string", "contents": { "property1": 0, "property2": 0 }, "error": "string", "createdAt": "2026-05-04T09:30:00.000Z", "startedAt": "2026-05-04T09:30:00.000Z", "completedAt": "2026-05-04T09:30:00.000Z", "expiresAt": "2026-05-04T09:30:00.000Z"}Runs against the live API with the key you enter: this change really happens. Use a key limited to a test account.
Requires the admin scope.
Required scope: admin.
exportId*stringuuidOK
application/json- response
curl -X DELETE 'https://api.workwae.com/v1/exports/56677aa9-5bc6-4869-a067-424b6e1df1a0'nullRuns in your browser against api.workwae.com with the key you enter. Use a read-only key, limited to a test account if you can.
Streams the decrypted .tar.gz; compare it with the export's sha256. Requires the admin scope.
Required scope: admin.
exportId*stringuuidThe export as a gzip-compressed tar
response?stringapplication/gzipcurl -X GET 'https://api.workwae.com/v1/exports/56677aa9-5bc6-4869-a067-424b6e1df1a0/download'"string"