Download deliverables

Wait until GET /v1/projects/{id} shows status completed. Scope: verify:read.

Three ways in:

  1. List the files
  2. Fetch one file — its metadata, or its bytes
  3. Or take everything as a single zip

Always use UUIDs from the API. Do not put file_id in a path.

List

curl -s https://api-arbitr.straker.ai/v1/projects/3f2a9c1e-4b7d-4c8a-9f10-2d6e5b7c8a91/deliverables \
  -H "X-API-Key: abr_live_…"
{
  "deliverables": [
    {
      "id": "8c1d0b52-9a3f-4e17-b6cd-71f0a2e94b33",
      "file_id": "…",
      "file_type": "verified_doc",
      "name": "Q1 handbook_ja-jp.docx",
      "locale_code": "ja-jp"
    }
  ],
  "page": {
    "number": 1,
    "has_more": false,
    "limit": 1
  }
}

This is a full list in one page (has_more is false). locale_code is lowercase BCP-47. Copy id for the next call — not file_id.

One file

GET /v1/projects/{project_id}/deliverables/{deliverable_id} answers with either the metadata or the bytes, depending on the Accept header you send.

Metadata — omit Accept, or send application/json or */*:

curl -s https://api-arbitr.straker.ai/v1/projects/3f2a9c1e-4b7d-4c8a-9f10-2d6e5b7c8a91/deliverables/8c1d0b52-9a3f-4e17-b6cd-71f0a2e94b33 \
  -H "X-API-Key: abr_live_…"

Bytes — send Accept: application/octet-stream:

curl -s https://api-arbitr.straker.ai/v1/projects/3f2a9c1e-4b7d-4c8a-9f10-2d6e5b7c8a91/deliverables/8c1d0b52-9a3f-4e17-b6cd-71f0a2e94b33 \
  -H "X-API-Key: abr_live_…" \
  -H "Accept: application/octet-stream" \
  -OJ

-OJ writes the file using Content-Disposition.

application/octet-stream is what you ask for. What comes back is the file's own content type — text/plain, the Word MIME type, and so on. Do not assert that the response Content-Type is application/octet-stream; it usually is not.

All files as a zip

Add format=zip to the collection route. Quote the URL so the shell does not eat the ?.

curl -s "https://api-arbitr.straker.ai/v1/projects/3f2a9c1e-4b7d-4c8a-9f10-2d6e5b7c8a91/deliverables?format=zip" \
  -H "X-API-Key: abr_live_…" \
  -o deliverables.zip

Content-Type is application/zip. Omit format for the JSON list; any other value returns 400 validation_failed naming the formats that are supported.

Common failures

Status Typical cause
401 / 403 Missing key, or key lacks verify:read
404 Unknown project or deliverable, or not in your org
400 A format value other than zip

Poll first if the project is not completed yet. See Poll project status.