Vizit Public APIAPI
Exports

Download an export artifact

Stream the CSV produced by a COMPLETED export.

GET/v1/exports/{export_id}/download

Streams the CSV artifact for a COMPLETED export. Uses the same Bearer token as every other endpoint — no presigned URL, no embedded credentials. The path itself is what download_url on Retrieve an export points at.

Response shape:

  • Content-Type: text/csv
  • Content-Disposition: attachment; filename="<subject>-<timestamp>.csv"
  • Body is the raw CSV (header row + data rows, UTF-8, \n line separator)

Returns 404 with a typed error_code for every error state — cross-org access is intentionally indistinguishable from a missing or expired export so foreign export_ids never leak existence:

  • EXPORT_NOT_FOUND — does not exist in the caller's org
  • EXPORT_NOT_READY — exists but status is still PENDING or PROCESSING
  • EXPORT_EXPIRED — artifact has been purged past its 7-day retention

Authorization

bearerAuth
Authorization<token>

Short-lived access token issued by Create a token. Send it on every request as Authorization: Bearer <token>.

In: header

Path Parameters

export_id*string

The export_id returned by Create a bulk export job.

Formatuuid

Response Body

text/csv

application/json

curl -X GET "https://ext.vizit.com/v1/exports/497f6eca-6276-4993-bfeb-53cbbbba6f08/download"
"string"
Empty
{  "detail": "string",  "status_code": 0,  "error_code": "INVALID_GTIN",  "request_id": "266ea41d-adf5-480b-af50-15b940c2b846",  "extra": {    "failed_urls": [      {        "url": "https://cdn.example.com/broken.jpg",        "reason": "IMAGE_DOWNLOAD_TIMEOUT"      },      {        "url": "https://cdn.example.com/icon.svg",        "reason": "UNSUPPORTED_IMAGE_FORMAT"      }    ]  },  "timestamp": "2019-08-24T14:15:22Z"}