Strata is an extraction API. POST a PDF, an image, or an
email; get back JSON that matches a schema you define — validated, versioned
in a registry, delivered by webhook.
# invoice.pdf → invoice.v2 schema curl https://api.strata.dev/v1/extract \ -H "Authorization: Bearer $STRATA_API_KEY" \ -F "file=@invoice_0231.pdf" \ -F "schema=invoice.v2"
{
"id": "ext_9f2c81d4",
"status": "complete",
"data": {
"vendor": "Nordwind Logistics GmbH",
"invoice_number": "RE-2026-0418",
"total": { "amount": 1284.50, "currency": "EUR" }
},
"confidence": 0.982
}
The panel below is the live reference for POST /v1/extract, not a
picture of it. If it is enough to make your first call, it is doing its job.
Runs a document against a schema from your registry. Large files return
202 and a job; small ones return synchronously.
The document to extract. PDF, PNG, TIFF, or EML, up to 50 MB.
A schema ID with optional version pin — invoice.v2. Unpinned IDs resolve to the latest published version.
Retries with the same key return the original result for 24 hours.
curl https://api.strata.dev/v1/extract \ -H "Authorization: Bearer $KEY" \ -F "file=@packing_list.pdf" \ -F "schema=packing_list.v1"
{
"id": "ext_c07e22a9",
"status": "processing",
"job_url": "/v1/jobs/job_51adf0"
}
Every mutating request takes an idempotency key — retries free, duplicates impossible.
Idempotency-Key: 8f3c-a91dSchemas and the API version separately. Pin both; upgrade each on your own schedule.
schema=invoice.v2Signed events, automatic retries with backoff, and 30-day replay when you drop one.
extraction.completedMachine-readable codes with documented remediation — a 422 names the field that failed.
422 schema_mismatch