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
- Create a project — multipart, size limits, more than one file
- Poll project status —
assessment/review - Authentication & scopes