OCRRouterGet API key
PDF and image to Markdown API

Turn any PDF or scan into clean Markdown with one API call

The OCR API that gives your LLM, your database or your agent text it can use: headings, tables and formulas intact, from scans, photos and handwriting.

200 free credits. No credit card required.

Result

Your Markdown or JSON shows up here.

Drop a file to see it work. 3 pages a day, no account needed.

Trusted by teams at
Customer logoCustomer logoCustomer logoCustomer logoCustomer logo
Placeholder content. Replace with real customers before launch.
The problem

Most OCR output still needs cleaning up

Before
Your appVendor A, its SDK, its formatVendor B, its SDK, its formatVendor C, its SDK, its formatVendor D, its SDK, its format
With OCRRouter
Your appOCRRoutermistral/mistral-ocrgoogle/gemini-flashopenai/gptanthropic/claude

Tables come back as loose text

Rows and columns collapse into a paragraph, and your LLM has to guess which number belongs where.

Tables stay tables

GitHub-flavoured Markdown tables, or rows as arrays in JSON.

Reading order breaks on columns

Two-column pages, sidebars and footnotes get mixed into each other.

Text in the order you would read it

Headings, columns and lists are kept in sequence, page by page.

Every tool returns a different shape

Plain text from one, HTML from another, coordinates from a third.

One shape from every model

Markdown or typed JSON blocks, the same from every model.

How it works

From file to Markdown in three steps

  1. 1
    ocr_live_c6a290cbc6ec…Copy

    Get an API key

    Free credits on sign-up, no card.

  2. 2
    POST /v1/ocr
    { "model": "auto",
      "file_url": "…/invoice.pdf" }

    POST your PDF or image

    A URL, base64 or an uploaded file. Pick pages if you only need some.

  3. 3
    # Invoice INV-2041
    | Item | Qty |
    | Toner | 2 |

    Use the Markdown

    Feed it to your LLM, index it, or ask for JSON blocks instead.

200 free credits. No credit card required.

Use cases

Clean text for whatever reads it next

Features

Clean output from messy documents

Markdown
# Invoice
| Item | Qty |
|---|---|
| Toner | 2 |
JSON
{ "type": "table",
  "rows": [
   ["Item","Qty"],
   ["Toner","2"] ] }

Markdown or JSON

Markdown for prompts and search. JSON blocks with types when your code needs structure.

mistral/mistral-ocr✕ Rate-limited
google/gemini-flash✓ Answered in 2.1 s

Charged for the model that answered: 3 credits

It does not fail silently

If a model errors or returns an empty page, the next model in your list reads it.

qualitymistral/mistral-ocr
cheapesttesseract/tesseract
fastesttesseract/tesseract

The right model without thinking

Use auto and choose quality, cheapest or fastest. Or name the exact model.

ModelPagesCreditsStatus
mistral/mistral-ocr1272Success
mistral/mistral-ocr120Cached
google/gemini-flash13Fallback

Pay for pages, not seats

Credits per page, listed up front. Failed requests and cached repeats are free.

Customers

What builders say

Customer logo
“Placeholder quote. The problem the customer had before, and what changed after they switched.”
Customer nameRole, Company
Customer logo
“Placeholder quote. A concrete number works best: pages per month, hours saved, error rate.”
Customer nameRole, Company
Customer logo
“Placeholder quote. What would have happened without the product.”
Customer nameRole, Company
Placeholder content. Replace with real customers before launch.
Why OCRRouter

Why teams choose OCRRouter

Compared with the other ways to get text out of documents.

OCRRouterOne vendor's APISelf-hosted open source
Models you can callAll of them, one requestOne vendor'sThe ones you deploy
Switching modelsChange one wordA new integrationA new deployment
When a model failsThe next model answersYour request failsYou get paged
Output formatSame for every modelVendor-specificModel-specific
Spend limits per keyBuilt inVaries by vendorBuild it yourself
Time to first resultMinutesHoursDays

Failed requests are free

Errors and empty results cost nothing.

Repeats are free

The same file sent to the same model is answered from cache.

Credits never expire

Top up when you need to. There is no subscription.

Files are not kept

Uploads are deleted after 24 hours. We do not train on them.

Samples

Any document in, structured text out

Questions

Not answered here? Read the docs

Explore more

Free tools and guides for every document

Convert your first document in the next five minutes

200 free credits. No credit card required.

# Invoice INV-2041
| Item | Qty | Amount |
**Total due** $319.00