9 models · one API · one convention

OCR router API with per-request ocr_model.

Set ocr_model on /parse and keep the same request shape, jobs API, and openparser@1 graph. Swap Paddle for Mistral, Azure, Google, or Textract without rewriting consumers.

ocr_model switchopenparser@1 stablelive GET /models/ocr
1
2
3
b1 title
PAYMENT AUTHORIZATION
b2 field
Account
4021-8837
b3 field
Date
May 2025
b4 table
ItemAmount
Consulting$4,636.40
Adjustment-$318.20
Total$4,318.20
b5 checkbox
PaidPending
b6 signature
readingpaddleocr-vl-1.6
analyzing
0/6 blocks
/ catalog

9 OCR models on one API

Set ocr_model on /parse. Each model returns openparser@1 blocks and markdown. Prices per 1,000 pages below.

  • PaddleOCR-VL 1.6paddleocr-vl-1.6

    Open-weight hosted. General documents at the lowest page price.

    ProviderBaidu / Paddle
    Pricing / 1,000 pages
    $1
    OutputMarkdown + boxes
  • Mistral OCR 4mistral-ocr-4

    Complex, visually rich docs when quality matters more than price.

    ProviderMistral
    Pricing / 1,000 pages
    $4.60
    OutputMarkdown + boxes
  • Mistral OCR 3mistral-ocr-3

    Clean markdown without bounding-box regions.

    ProviderMistral
    Pricing / 1,000 pages
    $2.30
    OutputMarkdown
  • Azure DI Layoutazure-di-layout

    Microsoft-centric deployments and layout-heavy enterprise PDFs.

    ProviderMicrosoft Azure
    Pricing / 1,000 pages
    $11.50
    OutputMarkdown + boxes
  • Azure DI Readazure-di-read

    Search and indexing in Microsoft environments.

    ProviderMicrosoft Azure
    Pricing / 1,000 pages
    $1.73
    OutputPlain text + boxes
  • Google Enterprise Document OCRgoogle-docai-ocr

    Google Cloud deployments needing structured OCR.

    ProviderGoogle Cloud
    Pricing / 1,000 pages
    $1.73
    OutputMarkdown + boxes
  • AWS Textract Detectaws-textract-detect

    Low-cost text detection for AWS-native pipelines.

    ProviderAWS
    Pricing / 1,000 pages
    $1.73
    OutputPlain text + boxes
  • AWS Textract Layoutaws-textract-layout

    Headings, sections, and layout-aware reading order on AWS.

    ProviderAWS
    Pricing / 1,000 pages
    $4.60
    OutputMarkdown + boxes
  • AWS Textract Tables + Layoutaws-textract-tables-layout

    Forms and financial docs with important tables in AWS.

    ProviderAWS
    Pricing / 1,000 pages
    $17.25
    OutputMarkdown + tables + boxes
/ api

Route with one field.

Every model uses POST /parse, /parse/async, and /parse/batch. Change ocr_model. Leave the rest of your integration alone.

endpointsapi.openparser.dev
  • Full API reference
POST/parserequest
curl https://api.openparser.dev/parse \
  -H "Authorization: Bearer op_live_…" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F 'request={"ocr_model":"paddleocr-vl-1.6","output_format":"openparser@1"};type=application/json' \
  -F "file=@statement.pdf"
response200 · 1.9s
{
  "output_format": "openparser@1",
  "document_id": "doc_3f9a2c",
  "page_count": 1,
  "markdown": "## Payment Authorization\n| Item | Amount |\n| --- | --- |\n| Total | $4,318.20 |",
  "blocks": [
    {
      "index": 0,
      "page_number": 1,
      "kind": "text",
      "text": "## Payment Authorization"
    },
    {
      "index": 1,
      "page_number": 1,
      "kind": "table",
      "table_html": "<table><tr><th>Item</th><th>Amount</th></tr><tr><td>Total</td><td>$4,318.20</td></tr></table>",
      "bbox": {
        "left": 14,
        "top": 53,
        "right": 146,
        "bottom": 123
      },
      "confidence": 0.98
    }
  ],
  "regions": [],
  "contents": [],
  "chunks": []
}
/ output

Router mechanics.

OpenParser is the control plane: one auth surface, one job system, one document graph, per-model retail pricing.

One request shape

Multipart file plus JSON request body. Sync, async, and batch variants stay identical when you change engines.

b1
0.99
b4
0.98
b6
0.70

Per-model page pricing

Each ocr_model publishes its own page rate. Open-weight hosted models start at $1 per 1,000 pages; premium engines cost what they cost.

Stable openparser@1 graph

Document metadata, ordered blocks, text, and markdown share one contract. Downstream code reads the graph, not vendor JSON.

schema {
total
}
{
total: "$4,318"
}

Discover models at runtime

GET /models/ocr returns ids, guidance, capabilities, option controls, and current retail page prices.

b4

Jobs API unchanged

Poll /jobs the same way for every engine. Batch up to 100 documents without a provider-specific queue.

b2b4b6
x, y, w, h

Extraction stays separate

Parse meters pages. Extract meters LLM tokens. Cite block indexes from whichever OCR model produced the graph.

/ pricing

Pay the model you route to.

New accounts get $10 in credits at signup, about 10,000 pages on open-weight hosted models at $1/1,000 pages. Other engines publish their own page prices on the model catalog.

start free
$10
to start
pay per page
$1/ 1,000 pages
open-weight hosted, starting at
+
extraction
Per token
billed based on model
  • 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
Create an API key
/ questions

OCR router FAQ.

Switching models, pricing, output stability, and when to use open-weight hosted vs cloud engines.

What is an OCR router?

An OCR router exposes multiple OCR engines behind one API. You pick a model id per request, keep the same endpoints, and receive the same openparser@1 document graph.

How do I switch OCR providers?

Change the ocr_model field on parse or file-backed extract requests. Example ids: paddleocr-vl-1.6, mistral-ocr-4, 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 wire format stays openparser@1. 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 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.

/ route a document

Switch ocr_model and compare outputs in Studio.

Upload a PDF, change ocr_model, and inspect the openparser@1 graph before you use it in production.