Jobs

Get job status and result

GET
/jobs/{id}

Tenant-scoped durable job read. Jobs belonging to another tenant return 404. Batch jobs include cursor-paginated child summaries. Playground tokens (ocr:playground) and ocr:full keys are both accepted. Successful parse jobs return the originally requested output_format in result; use GET /jobs/{id}/result?format= to select an alternate stored representation without re-running OCR.

Authorization

bearerAuth
AuthorizationBearer <token>

Existing Eigenpal API key presented as a bearer token.

In: header

Path Parameters

id*string

Durable OCR job identifier (opj_…).

Match^opj_[A-Za-z0-9_-]+$
Lengthlength <= 128

Query Parameters

cursor?string

Opaque pagination cursor for batch child summaries.

Length1 <= length
limit?integer

Maximum number of batch child summaries to return.

Range1 <= value <= 100
Default50

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/jobs/opj_V1StGXR8_Z5jdHi6B-myT" \  -H "Authorization: Bearer $OPENPARSER_API_KEY"

{  "id": "opj_7f9f2f3d0f8a4f0a9a2b2f6f0a7d2c11",  "operation": "parse",  "status": "succeeded",  "output_format": "openparser@1",  "created_at": "2026-07-17T12:00:00Z",  "updated_at": "2026-07-17T12:00:15Z",  "completed_at": "2026-07-17T12:00:15Z",  "pipeline_id": null,  "pipeline_version": null,  "result": {    "output_format": "openparser@1",    "document_id": "doc_01h2example",    "provenance": {      "provider": "paddle",      "model": "paddleocr-vl-1.6"    },    "text": "Hello",    "markdown": "Hello",    "pages": [      {        "number": 1,        "width": 1000,        "height": 1400,        "unit": "pixel",        "element_ids": [          "e0"        ],        "reading_order": [          "e0"        ]      }    ],    "elements": [      {        "id": "e0",        "kind": "text",        "role": "paragraph",        "text": "Hello",        "spans": [],        "languages": [],        "locations": [          {            "page_number": 1,            "bbox": {              "left": 72,              "top": 48,              "right": 200,              "bottom": 92            }          }        ]      }    ],    "text_annotations": [],    "relations": [],    "assets": []  }}

{  "error": {    "code": "unauthorized",    "message": "invalid API key",    "request_id": "req_01h2example",    "retryable": false  }}
{  "error": {    "code": "forbidden",    "message": "API key lacks required scope",    "request_id": "req_01h2example",    "retryable": false  }}
{  "error": {    "code": "job_not_found",    "message": "job not found",    "request_id": "req_01h2example",    "retryable": false  }}

{  "error": {    "code": "rate_limited",    "message": "request rate limit exceeded",    "request_id": "req_01h2example",    "retryable": true  }}