Send a PDF and JSON Schema to /v2/extract to receive schema-shaped values with a confidence score on each field. Enable citations when you also need source-page coordinates.
Extract takes a PDF and valid JSON Schema, then returns values that follow the requested structure. Each field includes a confidence score, and optional citations link values to their location in the source PDF.
Teams automating invoices, contracts, claims, and onboarding workflows that need consistent fields from documents with varied layouts.
Prompt-only extraction can change shape between runs and provides little evidence for verification. Extract constrains the response to your schema and can return source coordinates alongside the values.
Return vendor details, totals, line items, and payment terms in one consistent schema across varied invoice layouts.
Parties, dates, renewal terms, and governing law pulled into a consistent shape for review.
Extract balance-sheet and filing figures with per-field scores that can drive review thresholds.
ID fields, claim amounts, and applicant details captured with citations for audit.
Represent repeated rows as schema-defined arrays instead of flattening them into a single text field.
Apply the same schema to a document batch so each response follows the same field structure.
Define field names, types, required values, arrays, and nested objects before the job runs.
Use each field’s score to set review thresholds based on the risk and document type in your workflow.
Enable citations when reviewers need to trace a value to its position in the PDF.
Model line items, parties, transactions, and other repeated structures directly in the schema.
Set required fields and disable additional properties when downstream systems need a fixed response shape.
The document pipeline can read image-only and scanned PDF pages before extracting the requested values.
POST pdf_file and schema_data to /v2/extract with your api-key header, add enable_citations when you need source coordinates, and capture the returned job ID.
The service locates a value for each requested field and calculates its confidence score.
GET /extract/{job_id} until the status is completed or failed.
Read extracted values from result and, when citations are enabled, use each field’s bbox and page to trace them to the PDF.
1 import os, json, time, requests 2 3 BASE = "https://prod.visionapi.unsiloed.ai" 4 HEADERS = {"api-key": os.environ["UNSILOED_API_KEY"]} 5 6 schema = { 7 "type": "object", 8 "properties": { 9 "vendor": {"type": "string"},10 "amount": {"type": "number"}11 },12 "required": ["vendor", "amount"],13 "additionalProperties": False14 }15 16 with open("invoice.pdf", "rb") as file:17 response = requests.post(18 f"{BASE}/v2/extract", headers=HEADERS,19 files={"pdf_file": file},20 data={21 "schema_data": json.dumps(schema),22 "enable_citations": "true"23 }24 )25 response.raise_for_status()26 job_id = response.json()["job_id"]27 28 for _ in range(60):29 response = requests.get(30 f"{BASE}/extract/{job_id}", headers=HEADERS)31 response.raise_for_status()32 job = response.json()33 if job["status"] in ("completed", "review"): break34 if job["status"] == "failed":35 raise RuntimeError(job.get("error", "Extract failed"))36 time.sleep(5)37 else:38 raise TimeoutError("Extract did not finish in 5 minutes")39 40 print(job["result"])Use the same submit-and-poll workflow from prototype through production. Page-based pricing starts with a free tier, with managed, VPC, on-premises, and air-gapped deployment options for larger workloads.
Read the docsuptime target on enterprise plans.
Extract uses the same authentication and billing as every other capability. Combine it with Parse, Extract, Split, and Classify, or call it on its own.
Tell us a little about your workflow and share a sample document.
We’ll use it to show you a structured output during the call.
The accuracy, especially on tables, is meaningfully better than anything we tested. We evaluated over 15 solutions and Unsiloed was the only one that worked reliably.
Head of AI
Fortune 150 Bank, NY