---
title: "Poll an async job"
method: GET
path: "/jobs/{id}"
---

# Poll an async job

`GET /jobs/{id}`

## Request

- Base URL: `https://www.merchkit.com/api/v1`
- URL: `https://www.merchkit.com/api/v1/jobs/{id}`
- Auth: HTTP bearer

Status + progress of an asynchronous operation (source processing, imports, workflow runs). `POST /sources` returns a `job_id` to poll here; terminal statuses are `completed`, `failed`, and `cancelled`.

Scope: `read:jobs`.

## Response `200`

Job status.

- object
  - `data` Job: An asynchronous operation. Poll until a terminal status.
    - `id` string, uuid, required
    - `name` string, required
    - `status` 'pending' | 'running' | 'completed' | 'failed' | 'cancelled', required
    - `progress` object, required
      - `current` integer
      - `total` integer, nullable
      - `percent` number
    - `created_at` string, date-time, required
    - `started_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `result` unknown
    - `metadata` object, nullable

## Other responses

- `404`: Not found.

---

[API](https://skmtc.dev/merchkit/apis/merchkit-api.md) - [All operations](https://skmtc.dev/merchkit/apis/merchkit-api/llms.txt) - [OpenAPI document](https://skmtc.dev/merchkit/apis/merchkit-api/revisions/3062ca814757?raw)
