Document OCR | PDF to Markdown | Invoice, Table & Image to Text avatar

Document OCR | PDF to Markdown | Invoice, Table & Image to Text

Pricing

from $4.00 / 1,000 page ocr'ds

Go to Apify Store
Document OCR | PDF to Markdown | Invoice, Table & Image to Text

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

Scott Shinn

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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):

## INVOICE
East Repair Inc.
1912 Harvest Lane
New York, NY 12210
INVOICE # US-001
INVOICE DATE 11/02/2019
DUE DATE 26/02/2019

…and the invoice's line-item table comes back as a real table, not flattened text:

QTYDESCRIPTIONUNIT PRICEAMOUNT
1Front and rear brake cables100.00100.00
2New set of pedal arms15.0030.00
3Labor 3hrs5.0015.00

Every page also returns blocks — the layout regions with their type and bounding-box coordinates — if you want to post-process programmatically.

Input

FieldTypeDescription
imageUrlsarray of stringsRequired. Publicly accessible image or PDF URLs. Each PDF is OCR'd page by page.
maxPagesintegerOptional. 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

ToolOutputTrade-off
This ActorMarkdown + layout blocksTop OmniDocBench accuracy; pages run one at a time
Tesseract actorsPlain textFaster, weaker on tables and complex layout
Google Vision / AWS TextractText + basic layoutRobust, 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.