---
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` (the document declares no server; this is the origin it was published from)
- 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-service/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
  - `job_id` string, uuid, required: Parse job being observed.
  - `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.
  - `generation` string, nullable: Provider invocation whose preview is current.
  - `kind` 'page' | 'sheet' | 'section' | 'segment', nullable: Natural unit of this preview.
  - `total` integer, nullable: Number of requested units when known.
  - `units` ParsePreviewUnit[]: Ready units in original document order.
    - `index` integer, required: Original page number or selected sheet position.
    - `revision` string, required: Opaque immutable revision used to replace a prior preview.
    - `content_url` string, required: Authenticated URL for this bounded preview unit.
  - `more` boolean: The bounded preview omits further units; the final result remains complete.
  - `first_ready_at` string, date-time, nullable: Server publication time of the first nonempty preview; null when not measured or unavailable.
  - `all_ready_at` string, date-time, nullable: Server publication time when every requested preview was saved; document finalization can follow.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `410`: Gone
- `413`: Request Entity Too Large
- `422`: Unprocessable Entity
- `424`: Failed Dependency
- `429`: Too Many Requests
- `500`: Internal Server Error
- `501`: Not Implemented
- `503`: Service Unavailable
- `504`: Gateway Timeout

---

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