---
title: "Get an upload job's status"
method: GET
path: "/v1/projects/{project_id}/jobs/{job_id}"
tags: ["Projects / Jobs"]
---

# Get an upload job's status

`GET /v1/projects/{project_id}/jobs/{job_id}`

## Request

- Base URL: `https://api.kamai.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kamai.io/v1/projects/{project_id}/jobs/{job_id}`
- Auth: HTTP bearer

The state of one upload job, the one `/upload/complete` returned.

The job record is written when processing starts, not when the upload returns, and when many uploads are queued that
can take minutes. Until then, a `job_id` you got from an upload answers `404` with `detail` `Job not found`: keep
polling it. `Project not found` is final.

Poll it every 5–10 seconds until `status` is final:

| status | meaning |
|---|---|
| `PENDING` | queued, not started |
| `RUNNING` | being read; `progress` is 0–100 |
| `SUCCEEDED` | done; read the sheet with `GET /v1/blueprints/{blueprint_id}` |
| `FAILED` | could not be read; see `error_code` and `error_message` |
| `CANCELLED` | stopped by `POST …/cancel` |
| `ABANDONED` | stopped by the system, for example after a timeout |

## Path parameters

- `project_id` string, required
- `job_id` string, required

## Response `200`

Successful Response

- JobResponse
  - `job` JobPublic, required
    - `id` string, required
    - `status` string, required
    - `state` string, nullable
    - `blueprint_id` string, required
    - `filename` string, required
    - `progress` integer
    - `error_code` string, nullable
    - `error_message` string, nullable
    - `page_index` integer, nullable: The page of the uploaded file this job reads, 0-based. `null` until the page is cut from the upload.
    - `auto_rotation` integer, nullable: Degrees clockwise (0, 90, 180, 270) Kamai turned this page at upload to bring it upright; 0 = left as the PDF had it. `null` until the page is cut, or when the check did not run. The sheet carries the same value (`auto_rotation` on GET /v1/blueprints/{id}).
  - `message` string

## Other responses

- `404`: No such job in this project.
- `422`: Validation Error

---

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