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.
Your Markdown or JSON shows up here.
Drop a file to see it work. 3 pages a day, no account needed.
Rows and columns collapse into a paragraph, and your LLM has to guess which number belongs where.
GitHub-flavoured Markdown tables, or rows as arrays in JSON.
Two-column pages, sidebars and footnotes get mixed into each other.
Headings, columns and lists are kept in sequence, page by page.
Plain text from one, HTML from another, coordinates from a third.
Markdown or typed JSON blocks, the same from every model.
Free credits on sign-up, no card.
POST /v1/ocr
{ "model": "auto",
"file_url": "…/invoice.pdf" }A URL, base64 or an uploaded file. Pick pages if you only need some.
# Invoice INV-2041 | Item | Qty | | Toner | 2 |
Feed it to your LLM, index it, or ask for JSON blocks instead.
200 free credits. No credit card required.
## 4. Financial results | Region | 2025 | 2026 | |---|---|---| | APAC | 4.1M | 5.3M | | EMEA | 3.8M | 4.0M |
# Invoice | Item | Qty | |---|---| | Toner | 2 |
{ "type": "table",
"rows": [
["Item","Qty"],
["Toner","2"] ] }Markdown for prompts and search. JSON blocks with types when your code needs structure.
Charged for the model that answered: 3 credits
If a model errors or returns an empty page, the next model in your list reads it.
Use auto and choose quality, cheapest or fastest. Or name the exact model.
Credits per page, listed up front. Failed requests and cached repeats are free.
“Placeholder quote. The problem the customer had before, and what changed after they switched.”
“Placeholder quote. A concrete number works best: pages per month, hours saved, error rate.”
“Placeholder quote. What would have happened without the product.”
Compared with the other ways to get text out of documents.
| OCRRouter | One vendor's API | Self-hosted open source | |
|---|---|---|---|
| Models you can call | All of them, one request | One vendor's | The ones you deploy |
| Switching models | Change one word | A new integration | A new deployment |
| When a model fails | The next model answers | Your request fails | You get paged |
| Output format | Same for every model | Vendor-specific | Model-specific |
| Spend limits per key | Built in | Varies by vendor | Build it yourself |
| Time to first result | Minutes | Hours | Days |
Errors and empty results cost nothing.
The same file sent to the same model is answered from cache.
Top up when you need to. There is no subscription.
Uploads are deleted after 24 hours. We do not train on them.
Not answered here? Read the docs
200 free credits. No credit card required.

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