ocr_model fieldOCR router: switch providers with one API
Set ocr_model on /parse and keep the same request shape, jobs API, and OpenParser document graph. Route to PaddleOCR-VL, GLM-OCR, Mistral, Azure, Google, or AWS Textract without changing client code.
ocr_model switchStable OpenParser outputlive GET /models/ocr{ "invoice_no": "INV-2026-0718","due_date": "2026-08-13","total_due": 1440.00}
Compare 10 OCR models
Choose an ocr_model for POST /parse. Prices below are per 1,000 pages.
- PaddleOCR-VL 1.6paddleocr-vl-1.6Baidu / Paddle$1Markdown + boxes. General documents at the lowest page price.
- GLM-OCRglm-ocrZ.ai$1Markdown + boxes. Tables and formulas at the lowest page price.
- Mistral OCR 4.1mistral-ocr-4-1Mistral$4.60Markdown + boxes. Complex, visually rich docs when quality matters more than price.
- Mistral OCR 3mistral-ocr-3Mistral$2.30Markdown. Clean markdown without bounding-box regions.
- Azure DI Layoutazure-di-layoutMicrosoft Azure$11.50Markdown + boxes. Microsoft-centric deployments and layout-heavy enterprise PDFs.
- Azure DI Readazure-di-readMicrosoft Azure$1.73Plain text + boxes. Search and indexing in Microsoft environments.
- Google Enterprise Document OCRgoogle-docai-ocrGoogle Cloud$1.73Markdown + boxes. Google Cloud deployments needing structured OCR.
- AWS Textract Detectaws-textract-detectAWS$1.73Plain text + boxes. Low-cost text detection for AWS-native pipelines.
- AWS Textract Layoutaws-textract-layoutAWS$4.60Markdown + boxes. Headings, sections, and layout-aware reading order on AWS.
- AWS Textract Tables + Layoutaws-textract-tables-layoutAWS$17.25Markdown + tables + boxes. Forms and financial docs with important tables in AWS.
Switch engines with ocr_model
Every model uses POST /parse, /parse/async, and /parse/batch. Change ocr_model. Auth, jobs, and response shape stay the same.
curl https://api.openparser.dev/parse \
-H "Authorization: Bearer $OPENPARSER_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-F 'request={"ocr_model": "paddleocr-vl-1.6"};type=application/json' \
-F "file=@invoice.pdf"{
"document_id": "doc_3f9a2c",
"elements": [
{
"id": "elem-total",
"kind": "text",
"text": "Total due: €1.440,00",
"locations": [{
"page_number": 1,
"bbox": { "left": 468, "top": 712, "right": 1118, "bottom": 760 }
}],
"confidence": { "score": 0.98 }
}
],
"markdown": "# INVOICE\n…"
}Control plane for OCR routing
You authenticate once, poll the same jobs API, and read one OpenParser output. Each model lists its own page price.
One request shape
Multipart file plus JSON request body. Sync, async, and batch variants stay identical when you change engines.
Per-model page pricing
Each ocr_model lists its own page rate. Open-weight hosted models start at $1 per 1,000 pages. Mistral, Azure, Google, and AWS list higher rates.
Stable document graph
Document metadata, ordered elements, text, and markdown share one contract. Downstream code reads the graph, not vendor JSON.
Discover models at runtime
GET /models/ocr returns ids, guidance, capabilities, option controls, and current retail page prices.
Jobs API unchanged
Poll /jobs the same way for every engine. Batch up to 100 documents without a provider-specific queue.
Extraction stays separate
Parse meters pages. Extract meters LLM tokens. Cite element IDs from whichever OCR model produced the graph.
Page rates follow the ocr_model you pick
New accounts get $10 in credits at signup, about 10,000 pages on open-weight hosted models at $1/1,000 pages. Mistral, Azure, Google, and AWS publish their own page rates on GET /models/ocr.
At signup. About 10,000 pages on open-weight models.
On open-weight models. Cloud OCR bills at its own page rate.
Billed on the tokens of the llm_model you pick.
- Open-weight hosted from $1 / 1,000 pages
- $10 credits at signup
- Other models: published rates on /models/ocr
- Option surcharges listed per model
- Extraction billed per LLM token
OCR router FAQ
ocr_model values, page pricing, OpenParser output, and when to pick open-weight hosted vs cloud engines.
What is an OCR router?
You pick an OCR model id per request, keep the same endpoints, and receive the same OpenParser document graph.
Is OpenParser an OpenRouter for OCR?
That is the closest comparison. OpenRouter puts many language models behind one API; OpenParser does the same for OCR models. One key, one bill, and one output format, with open-weight models like PaddleOCR-VL and GLM-OCR hosted on our own GPUs next to Mistral, Azure, Google, and AWS.
How do I switch OCR providers?
Change the ocr_model field on parse or file-backed extract requests. Example ids: paddleocr-vl-1.6, glm-ocr, mistral-ocr-4-1, azure-di-layout, google-docai-ocr, aws-textract-layout.
Does every model cost the same?
No. OpenParser-hosted open-weight models start at $1 per 1,000 pages. Mistral, Azure, Google, and AWS publish higher page rates. Check GET /models/ocr for live numbers. New accounts get $10 in free credits.
Does the output format change by model?
The response shape stays the same. Capability details differ: some models omit markdown or regions. The catalog marks those capabilities per id.
How do I list available OCR models?
Call GET /models/ocr, or openparser models ocr --json from the CLI, or client.models.ocr() in the TypeScript SDK.
When should I use open-weight hosted vs a cloud engine?
Start with open-weight hosted models like paddleocr-vl-1.6 or glm-ocr for general documents and cost. Move to Mistral for richer visual docs, or Azure/Google/AWS when you need that vendor’s OCR behavior inside the same OpenParser integration.
Upload a PDF and switch ocr_model in Studio
Change ocr_model on the same file, inspect element kinds and markdown, and compare OpenParser output before you ship.