Skip to main content
GET
Download an export document
The route downloadUrl points at. Requires the same credentials as every other read, so the document is never reachable by URL alone. An export that has not finished successfully is 409 export_not_ready (poll GET /v1/exports/{id} first); one that is not visible to the caller is 404 export_not_found. A blob that cannot be read degrades to 503, never a 500.

Authorization

This route requires the read scope. A missing or invalid credential returns 401 authentication_error. A valid credential without the scope returns 403 permission_denied, and the problem body names the exact scope required.

Headers

These are request conventions the contract does not declare as parameters, so they do not appear in the schema tables below.

Success responses

Errors

Beyond the shared statuses, this route can answer with export_not_found, export_not_ready. Every problem body names its own code, and the type URI always resolves to the matching page. Every error is an RFC 9457 application/problem+json body carrying a stable code, a requestId, and a suggestedAction where Exo has one. See Errors.

Notes

  • The download is authenticated, not a presigned URL. The document is never reachable by URL alone.
  • An unfinished export is 409 export_not_ready. Poll GET /v1/exports/{export_id} first.

Authorizations

X-Exo-API-Key
string
header
required

An Exo API key (exo_...) sent as the X-Exo-API-Key header.

Path Parameters

export_id
string
required

The export id returned by POST /v1/exports.

Response

The export document

The response is of type object.