Docs
API 1.39
Status
Jobs

Read the job envelope; `Prefer: wait` long-polls for a state change

GET /v1/jobs/{id}: Read the job envelope; `Prefer: wait` long-polls for a state change

GET /v1/jobs/{id}
Operation idgetJob
Key scoperead: every key
SectionJobs

#Parameters

NameInTypeRequiredDescription
idpathstringyespattern ^job_[0-9a-hjkmnp-tv-z]{26}$
since_statusqueryenum (7 values)With Prefer: wait: answer once the status differs from this one (the state you last saw) instead of from the state at request start. · one of "queued", "running", "awaiting_input", "needs_attention", "succeeded", "failed", "canceled"
preferheaderstringwait=<1-60>: wait up to that many seconds for the job to finish

#Example request

curl -X GET "https://api.kaab.ist/v1/jobs/{id}" \
  -H "Authorization: Bearer $KAAB_API_KEY"

#Responses

#200

Job envelope

Job

{
  "id": "job_01j9zqk3q7m4n5p6r7s8t9v0wx",
  "object": "job",
  "mode": "live",
  "status": "queued",
  "reason": null,
  "program": {
    "id": "prg_01j9zqk3q7m4n5p6r7s8t9v0wx",
    "name": "acme-report",
    "version": 3,
    "version_id": "pv_01j9zqk3q7m4n5p6r7s8t9v0wx"
  },
  "inputs_hash": "sha256:2b8f1c",
  "data": null,
  "raw": null,
  "warnings": [],
  "meta": {
    "tier": null,
    "tier_requested": "browser",
    "escalations": [],
    "region": "eu",
    "final_url": null,
    "cache": "miss",
    "duration_ms": 0,
    "parked_ms": 0
  },
  "error": null,
  "input_request": null,
  "attention": null,
  "progress": null,
  "tags": [
    "customer:42"
  ],
  "webhook_url": null,
  "created_at": "2026-09-18T10:00:00Z",
  "started_at": null,
  "finished_at": null,
  "expires_at": null
}

#Errors

Every error answers with the error envelope; its code is one of the error codes.

StatusWhen
400request_invalid: request validation failed
401Missing or invalid API key
403The key's scope does not cover this operation
404Resource not found
429Rate limited; see Retry-After
500internal: unexpected server error

Was this page helpful?