Create Extraction Job
POST/extractions/jobs
Start a structured data extraction job.
Creates a background job to extract structured data from a document based on a JSON schema. Returns a job ID that can be used to poll for the result.
Indexing requirement: The document must be indexed before extraction can run. If the document is not yet indexed when this request is received, the job will wait until indexing completes before starting. Upload documents in advance to minimize latency.
Schema handling: Each request stores its schema as a standalone record
scoped to this run. These API-created schemas are kept separate from the
project's auto-extraction schema library — they do not appear in the
project's auto-extraction configuration UI or in project search filters.
Confidence scores: Set return_confidence_score to true to receive a
per-field confidence score for each extracted value. The result then carries
the per-field metadata under metadata.extraction. Measured scores range from
0 to 0.9999; an exact 1.0 marks values without a measured score (empty or
not-found fields, and deterministically computed values) — not maximum
certainty.
Bounding boxes: Set return_bbox to true to receive the location of
each extracted value. Page-based documents (PDF, Word, PowerPoint, text)
carry the 1-based page and a normalized bbox_2d; spreadsheets carry
sheet, column_name, column_letter, row and a short reason; XML
documents (e-invoices) and hybrid PDF e-invoices (ZUGFeRD / Factur-X, read
from their embedded XML) carry a short reason and quote, the verbatim
source text the value was read from, and a hybrid value the XML cannot pin
to one element also carries the page and bbox_2d where it appears on
the rendered PDF; images and emails carry model-reported location fields
on a best-effort basis.
This is independent of return_confidence_score, so you can request
either, both or neither. Locating values requires an extra vision pass over
every page, so these jobs take noticeably longer — and on very large
documents the extra work can exceed the job time limit and fail the job.
The extraction happens in the background. Use the GET /extractions/jobs/{job_id} endpoint
to check status and retrieve results.
Request
Responses
- 201
- 401
- 403
- 404
- 500
- 503
Extraction job created successfully
Unauthorized
Forbidden
Not Found
Internal Server Error
Service Unavailable