Quickstart

Three calls: create a project, poll until it is done, download the file.

Use a Live key (abr_live_…) with both verify:submit and verify:read. Start with one small file — a real project is the only way to see real word counts, real deliverables and real turnaround.

1. Submit

curl -s https://api-arbitr.straker.ai/v1/projects \
  -X POST \
  -H "X-API-Key: abr_live_…" \
  -F "file=@/path/to/document.txt" \
  -F "name=My first project" \
  -F "source_language_code=en-us" \
  -F 'target_language_codes=["ja-jp"]' \
  -F 'workflow=["AI_TRANSLATION"]'

201. Copy id — that is the project id for the next calls.

Language codes are lowercase BCP-47 (en-us, ja-jp). workflow and target_language_codes are JSON arrays sent as form strings.

2. Poll

curl -s https://api-arbitr.straker.ai/v1/projects/PROJECT_ID \
  -H "X-API-Key: abr_live_…"

Repeat until status is completed. Stop just as firmly on failed, cancelled and refunded — those are terminal too, and a loop that only watches for completed never exits. awaiting_payment is a hold, not an end state: see Resume after payment.

3. Download

List files, then fetch one. Use the deliverable id from the list, not a number.

curl -s https://api-arbitr.straker.ai/v1/projects/PROJECT_ID/deliverables \
  -H "X-API-Key: abr_live_…"

Send Accept: application/octet-stream to get the bytes rather than the metadata:

curl -s https://api-arbitr.straker.ai/v1/projects/PROJECT_ID/deliverables/DELIVERABLE_ID \
  -H "X-API-Key: abr_live_…" \
  -H "Accept: application/octet-stream" \
  -OJ

All files as one zip:

curl -s "https://api-arbitr.straker.ai/v1/projects/PROJECT_ID/deliverables?format=zip" \
  -H "X-API-Key: abr_live_…" \
  -o project.zip

To rehearse this flow without touching the pipeline, swap the header for a test key — but read Test mode first, because the counts and files it returns are canned.

Next