---
title: "get_parse_progress"
method: GET
path: "/v1/jobs/{job_id}/parse-progress"
tags: ["operations"]
---

# get_parse_progress

`GET /v1/jobs/{job_id}/parse-progress`

## Request

- Base URL: `https://ndi-api.nace.ai`
- URL: `https://ndi-api.nace.ai/v1/jobs/{job_id}/parse-progress`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/nace/apis/ndi-platform-api/docs/v1/jobs/:job_id/parse-progress/get.ts> (a function with typed inputs; its response is checked against the schema)

Read bounded ready-unit metadata. Preview content is fetched individually.

## Path parameters

- `job_id` string, uuid, required

## Response `200`

Successful Response

- ParsePreviewSnapshot
  - `all_ready_at` string, date-time, nullable: Server publication time when every requested preview was saved; document finalization can follow.
  - `first_ready_at` string, date-time, nullable: Server publication time of the first nonempty preview; null when not measured or unavailable.
  - `generation` string, nullable: Provider invocation whose preview is current.
  - `job_id` string, uuid, required: Parse job being observed.
  - `kind` 'page' | 'sheet' | 'section' | 'segment', nullable: Natural unit of this preview.
  - `more` boolean: The bounded preview omits further units; the final result remains complete.
  - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled', required: ``cancelled`` is a first-class terminal status, not a ``failed`` variant. Conflating them makes error-rate metrics lie and forces every client to string-match an error code.
  - `total` integer, nullable: Number of requested units when known.
  - `units` ParsePreviewUnit[]: Ready units in original document order.
    - `content_url` string, required: Authenticated URL for this bounded preview unit.
    - `index` integer, required: Original page number or selected sheet position.
    - `revision` string, required: Opaque immutable revision used to replace a prior preview.

## Other responses

- `504`: Gateway Timeout
- `default`: Typed error envelope used by every 4xx and 5xx. ``error.code`` distinguishes the failure; HTTP status is a consequence of the code.

---

[API](https://skmtc.dev/nace/apis/ndi-platform-api.md) - [All operations](https://skmtc.dev/nace/apis/ndi-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nace/apis/ndi-platform-api/revisions/d002a3589a67?raw)
