List and filter projects
GET /v1/projects returns projects newest first. Scope: verify:read.
curl -s "https://api-arbitr.straker.ai/v1/projects?page=1&limit=50" \
-H "X-API-Key: abr_live_…"
Response
{
"projects": [
{
"id": "3f2a9c1e-4b7d-4c8a-9f10-2d6e5b7c8a91",
"name": "Q1 handbook",
"status": "completed",
"source_language_code": "en-us",
"target_language_codes": ["ja-jp"]
}
],
"page": {
"number": 1,
"has_more": true,
"limit": 50
}
}
There is no total. Keep requesting the next page while page.has_more is true. See Pagination.
List rows carry assessment and review as null rather than omitting them — the keys are there, the contents are not. Use Poll project status when you need either populated.
Query params
Only these four. Anything else (cursor, sort, search, page_size) returns 400 validation_failed and names the parameter.
| Param | Default | Notes |
|---|---|---|
page |
1 |
1-based, max 100000 |
limit |
50 |
1–200 |
status |
omit | One status, e.g. completed, processing, awaiting_payment |
modified_after |
omit | ISO 8601. Only projects with updated_at >= this time |
Filter by status
curl -s "https://api-arbitr.straker.ai/v1/projects?status=awaiting_payment" \
-H "X-API-Key: abr_live_…"
Walk pages until has_more is false. Prefer this over paging the whole org to count rows.
Common failures
| Status | Typical cause |
|---|---|
401 / 403 |
Missing key, or key lacks verify:read |
400 |
Unknown query param |
422 |
page or limit out of range |