REFERENCE · DOCUMENTS
GET /v1/documents/{document_id}
Status, extraction summary, coverage lines derived, requests opened.
PARAMETERS
| NAME | TYPE | REQUIRED | DESCRIPTION |
|---|---|---|---|
| document_id | string | yes |
RESPONSE
| FIELD | TYPE | DESCRIPTION |
|---|---|---|
| document_id | string | |
| document_ref | string | |
| insured_ref | string | |
| consumer_ref | string | |
| engagement_id | string | The verification this document fed (0015), set when insured_ref and consumer_ref were both sent on the push |
| requirement_set | string | The requirement set (lineage key) that engagement follows |
| engagements | string[] | Every engagement any of this document's lines' clocks now serve, sorted (0015: an insured may hold several requirement sets with one consumer) |
| sha256 | string | |
| parts | object[] | The documents inside the file, in page order. A certificate on page 1 with the declarations behind it is two parts; the file is a packet, never just its first page. One entry for a single document. |
| pages | integer | |
| status | enum | received (stored, not yet read) → extracted | classified (read, not an insurance document) | escalated (a reviewer has it: extraction errored, or the file could not be read as sent). in_packet: one photo of a packet; read the packet named by parent_document_id. failed, rejected, unreadable_fields and not_insurance are defined and no path sets them as a status. A low-confidence read gets one second read; the document is then extracted with unreadable_fields[] and document.unreadable_fields fires. Request ids arrive on document.extracted once a line's clock opens One of: received, extracted, classified, escalated, unreadable_fields, not_insurance, failed, rejected, in_packet. |
| deduplicated | boolean | |
| outcome | string | Read from status: pending | extracted | not_insurance | needs_review | failed | packet_page |
| test | boolean | |
| coverage_lines | object[] | |
| requests | string[] | request_ids opened for this document's lines |
| kind | enum | file (one uploaded file) or packet (2 or more photos pushed together, read together as one document; no file of its own) One of: file, packet. |
| parent_document_id | string | A photo's packet. Null for a standalone file and for a packet |
| packet_position | integer | A photo's place in its packet, in upload order from 1. parts[] page_start/page_end on the packet count these |
| page_documents | object[] | A packet's photos, in upload order. Empty for a file |
| received_at | timestamp | |
| channel | enum | insured_upload, agent_email, portal, other. |
| program_ref | string | Set when this document was attached to a program |
| meta | object | Optional JSON. May include `prior_extraction`: any extraction you already hold, stored for side-by-side comparison in the audit trail only. Insurance Verified extracts every document, and meta has no effect on what it reads. |
| integrity | object | Document integrity. `state` is `clear`, `under_review` (a person is looking at something the checks found; the verdict is unchanged) or `not_relied_on` (the document is left out of the surface check, and the rules it fed read not yet on file with reason `document_held`). `findings` lists what is in force, worst first, as severity and title only. |
Errors: 401, 403, 404, 429, 500. Every error body carries error.code, error.message, and error.request_id.