List jobs
Tenant-scoped chronological list of top-level OCR jobs (batch children are omitted).
Returns lightweight summaries only — full results remain on GET /jobs/{id}.
Cursor pagination is stable newest-first with an id tie-break. Optional status
and operation filters are validated strictly; unknown values return 400.
Authorization
bearerAuth Existing Eigenpal API key presented as a bearer token.
In: header
Query Parameters
Opaque pagination cursor from a prior JobListResponse.next_cursor. Jobs are
returned newest-first (created_at descending, id descending tie-break).
1 <= lengthMaximum number of job summaries to return.
1 <= value <= 10025Optional filter by public job status. Admission-phase (admitting) jobs are
never listed.
Value in
- "queued"
- "running"
- "succeeded"
- "failed"
- "indeterminate"
Optional filter by job operation.
Value in
- "parse"
- "extract"
- "parse_batch"
- "extract_batch"
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/jobs" \ -H "Authorization: Bearer $OPENPARSER_API_KEY"{ "data": [ { "id": "opj_V1StGXR8_Z5jdHi6B-myT", "operation": "parse", "status": "queued", "output_format": "openparser@1", "ocr_model": "string", "llm_model": "string", "page_count": 0, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "error": { "code": "string", "message": "string", "retryable": true, "details": { "property1": null, "property2": null } }, "has_result": true, "url": "string", "has_source": true, "pipeline_id": "string", "pipeline_version": 1, "review_status": "pending" } ], "next_cursor": "string"}{ "error": { "code": "malformed_request", "message": "multipart field `request` is not valid JSON", "request_id": "req_01h2example", "retryable": false }}{ "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": "rate_limited", "message": "request rate limit exceeded", "request_id": "req_01h2example", "retryable": true }}Suggest an extraction schema POST
Suggest an extraction JSON Schema from a tenant-owned succeeded parse result. Optional `hint` is capped at 500 characters. Definitive failures return `schema_suggestion_failed`.
Get job status and result GET
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.