Document OCR | PDF to Markdown | Invoice, Table & Image to Text
Pricing
from $4.00 / 1,000 page ocr'ds
Document OCR | PDF to Markdown | Invoice, Table & Image to Text
Document OCR and PDF to Markdown. Extract text, tables and structured data from PDFs and images with state-of-the-art PaddleOCR-VL. Handles invoices, receipts, forms and scanned documents in 100+ languages, returning LLM-ready Markdown plus layout blocks for RAG. Pay per page.
Pricing
from $4.00 / 1,000 page ocr'ds
Rating
0.0
(0)
Developer
Scott Shinn
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Document OCR API — PDF & Image to Markdown (PaddleOCR-VL)
Give this Actor a list of image or PDF URLs. Get back clean Markdown and structured layout blocks — tables kept as tables, headings kept as headings, reading order preserved — ready to drop into a RAG pipeline, a search index, or a data-extraction step. Runs on GPU with PaddleOCR-VL, across 100+ languages.
See it work
Input:
{ "imageUrls": ["https://templates.invoicehome.com/invoice-template-us-neat-750px.png"] }
Output (one dataset item — trimmed):
## INVOICEEast Repair Inc.1912 Harvest LaneNew York, NY 12210INVOICE # US-001INVOICE DATE 11/02/2019DUE DATE 26/02/2019
…and the invoice's line-item table comes back as a real table, not flattened text:
| QTY | DESCRIPTION | UNIT PRICE | AMOUNT |
|---|---|---|---|
| 1 | Front and rear brake cables | 100.00 | 100.00 |
| 2 | New set of pedal arms | 15.00 | 30.00 |
| 3 | Labor 3hrs | 5.00 | 15.00 |
Every page also returns blocks — the layout regions with their type and bounding-box coordinates — if you want to post-process programmatically.
Input
| Field | Type | Description |
|---|---|---|
imageUrls | array of strings | Required. Publicly accessible image or PDF URLs. Each PDF is OCR'd page by page. |
maxPages | integer | Optional. Cap pages per PDF (0 = no cap). |
Output
One dataset item per URL:
{"url": "...","ok": true,"numPages": 1,"markdown": "## INVOICE\n\nEast Repair Inc. ...","pages": [{ "markdown": "...", "blocks": [ /* type + bbox per region */ ] }]}
A URL that fails comes back as { "url": "...", "ok": false, "error": "..." }, so one bad link never kills the run.
What it's good at
- Tables and forms — invoices, receipts, financial statements come back with rows and columns intact.
- Scanned documents and photos — printed text is the sweet spot; handwriting and degraded scans work with lower confidence.
- Multi-column and math-heavy pages — research papers, books, reports keep their reading order and formulas.
- 100+ languages — Latin, Cyrillic, Arabic, Devanagari, CJK, Thai, and more.
The engine is PaddleOCR-VL-1.6, which sits at the top of the OmniDocBench document-parsing benchmark — ahead of general-purpose vision models many times its size.
How it compares
| Tool | Output | Trade-off |
|---|---|---|
| This Actor | Markdown + layout blocks | Top OmniDocBench accuracy; pages run one at a time |
| Tesseract actors | Plain text | Faster, weaker on tables and complex layout |
| Google Vision / AWS Textract | Text + basic layout | Robust, but per-call pricing and less LLM-ready output |
Pricing
Pay per page OCR'd — one image is one page, a 10-page PDF is ten. No subscription, no minimum.
Notes
- URLs must be publicly reachable.
- Pages run one at a time through a single warm GPU model, so large batches proceed at a steady rate.