Workflows & credits
workflow on POST /v1/projects is a JSON array of stages. arbitr runs them in order. You do not assign vendors or sequence the later stages yourself.
Stages
| Stage | What it does | Requires |
|---|---|---|
AI_TRANSLATION |
Machine translation and automatic verification | Always first |
TRANSLATION |
Human translation after AI | AI_TRANSLATION |
EDIT |
Human edit after translation | TRANSLATION |
AI only:
workflow=["AI_TRANSLATION"]
AI then human translation and edit:
workflow=["AI_TRANSLATION","TRANSLATION","EDIT"]
due_date (YYYY-MM-DD) is optional and informational. It never blocks or parks the project. GET /v1/projects/{id} echoes it on assessment and sets due_date_feasible to null if you sent no date.
Two wallets
| Wallet | Used for |
|---|---|
| Intelligence | AI stage |
| Trust | Human stages (TRANSLATION, EDIT) |
Check the org balance (any valid key, no extra scope):
curl -s https://api.arbitr.ai/v1/credits/balance \
-H "X-API-Key: abr_live_…"
intelligence_credits / trust_credits are remaining. Values are numbers (trust can be fractional). abr_test_… keys do not consume credits.
While a project runs
Poll GET /v1/projects/{id} (verify:read). assessment is only on this detail call, not on create or list.
assessment.credits.intelligence— always present (required,available,sufficient)assessment.credits.trust— present when the workflow has a human stage; otherwisenullreview— human-stage lifecycle; fields stay empty until a review is requested
If credits run out mid-flight the project parks. An intelligence shortfall sets status to awaiting_payment; a trust shortfall sets review.status instead and leaves status unchanged (see Project lifecycle). Top up in the arbitr UI, then resume (verify:submit):
| Hold | Call |
|---|---|
| AI / intelligence | POST /v1/projects/{id}/resumptions |
| Human / trust | POST /v1/projects/{id}/review/resumptions |
Still short → 402. Not waiting for payment → 409.
Both resume routes return the normal error envelope: 402 payment_required (with required / available / shortfall), or 409 not_awaiting_payment (intelligence resume may also include current_status). See Errors.