Download an export file
Streams the file of a completed export as an attachment. Content-Type follows the job’s
format: text/csv, application/json or application/x-ndjson. Content-Disposition names
the file <type>_export_<id>.<ext>, and Content-Length is set from file_size_bytes.
The response is the raw file, not a JSON envelope. Errors are still JSON. Read the body as a stream, since files can reach 100,000 rows.
A job that is not finished answers 404 Export file is not ready for download. Once expires_at
has passed (72 hours after completion), the answer is 410 Export file has expired. If the file
is gone for any other reason, the answer is 404 Export file has expired or is no longer available.
To get the data again, create a new export.
Idempotency. A read with no side effects. Safe to retry, and you can download a file as many times as you like until it expires.
Access
- Required scope:
readorwrite. Jobs of typeaudit_logoragent_actionsneedfull, and human users need the owner or admin role for them. - Rate limit: General API — 120 requests/min per workspace on Starter or with no active plan, 200 on Growth, 300 on Business, 600 on Enterprise. See Rate limits.
- Plan: Available on every plan.
Authentication
Workspace API key: jl_ followed by 64 lowercase hex characters, created by the workspace owner in the
dashboard (Settings → API Keys) and sent as Authorization: Bearer jl_.... The plaintext is shown once,
at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys.
Operations restricted to admins or owners reject keys without the full scope with 403, and say so in
their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret —
that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds.
See Authentication.
Path parameters
UUID of a completed export job. A job of another workspace answers 404.
Response headers
File size in bytes (same as file_size_bytes). Omitted for an empty file.

