Get the status of any async job (the single status surface)
/jobs/{jobId}A jobId is returned by POST /documents/process (one batch "preprocess" job over the call’s documents) and by POST /extraction-sessions on 201 (type "extraction"); document.* webhooks also carry a single-document "preprocess" jobId. Returns { id, type, status, progress?, result?, error?, createdAt?, duration?, fileName?, numPages?, totalPages?, reference? } with one canonical status: queued | in_progress | completed | completed_with_failures | failed | cancelled. Batch-preprocess and extraction jobs include progress { done, total, failed } and result.documents (a per-document array — so the default response says WHICH document failed). The two job types carry different row shapes: preprocess rows are { documentId, status, error? }, while extraction rows are { documentId, status } and never include error. Their status sets differ too — extraction rows can be queued, preprocess rows cannot. A single-document preprocess job omits progress and gets fileName/numPages instead. duration is processing seconds (omitted until terminal); reference echoes the caller’s correlation object. Pass ?expand=documents to add the heavy per-doc fields (fileName, numPages, reference) to each breakdown row. A preprocess job is NOT terminal-sticky — a forced re-process of any covered document re-opens it (completed → in_progress). A forged / unknown / cross-org / no-job handle all return 404 (indistinguishable — no existence oracle).
Authorization
bearerAuth An API key created in Settings → API Keys.
In: header
Path Parameters
Query Parameters
expand=documents adds fileName/numPages/reference to each per-doc breakdown row.
Value in
- "documents"
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/jobs/string"{ "data": { "id": "string", "type": "preprocess", "status": "queued", "progress": { "done": 0, "total": 0, "failed": 0 }, "result": {}, "error": "string", "createdAt": "2019-08-24T14:15:22Z", "duration": 0, "fileName": "string", "numPages": 0, "totalPages": 0, "reference": { "property1": "string", "property2": "string" } }, "meta": { "requestId": "string", "timestamp": "string" }}