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