---
title: "Poll an async job"
method: GET
path: "/api/jobs/{job_id}"
tags: ["Design Pipeline"]
---

# Poll an async job

`GET /api/jobs/{job_id}`

## Request

- Base URL: `https://api.crayonz.ai`
- URL: `https://api.crayonz.ai/api/jobs/{job_id}`
- Auth: API key in header `X-API-Key`

Status and result of a job returned as 202 + job_id (for example by POST /api/design/custom). Poll every few seconds until status is completed, failed or cancelled; the poll_url in the 202 response is this path. Free.

## Path parameters

- `job_id` string, required: The job_id from the 202 response

## Response `200`

Success

- object
  - `status` string: "ok" when the job was found
  - `job` object: id, job_type, status (queued | running | completed | failed | cancelled), progress_pct, credits_charged, result (when completed), error_code and last_error (when failed), completed_at

## Other responses

- `401`: Unauthorized — invalid or missing API key
- `402`: Insufficient credits
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/crayonz/apis/crayonz-api.md) · [All operations](https://skmtc.dev/crayonz/apis/crayonz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crayonz/apis/crayonz-api/revisions/1114c84167b2?raw)
