PDF to Markdown & Text with OCR (Tables, Scans)
Pricing
from $0.70 / 1,000 pdf pages
PDF to Markdown & Text with OCR (Tables, Scans)
Convert PDF files to clean Markdown or plain text for AI, RAG and data extraction. Headings, lists and tables are kept, scanned pages are read with OCR in 8 languages (English, German, French, Spanish, Italian, Portuguese, Dutch, Polish). Page ranges, one item per page or per document.
Pricing
from $0.70 / 1,000 pdf pages
Rating
0.0
(0)
Developer
Tidelane Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Turn PDF files into clean Markdown or plain text, ready for ChatGPT, RAG pipelines, search indexes or data extraction. Give it links to PDFs and get back one dataset item per document (or per page) with the text, headings, lists and tables. Scanned pages are read with OCR automatically.
- ✅ Headings, lists and tables become real Markdown (
#,-,| … |) - ✅ Two-column layouts (papers, newsletters, forms) are read column by column, not line across line
- ✅ OCR for scans in English, German, French, Spanish, Italian, Portuguese, Dutch and Polish; mixed PDFs only OCR the pages that need it
- ✅ Clean text: words in tightly set PDFs are split correctly, rotated margin stamps and unmapped glyphs are removed, hyphenated words are rejoined
- ✅ Page ranges (
1-3, 7, 10-) and a page limit per document - ✅ Token estimate per item so you can plan LLM costs
- ✅ Fair billing: you pay per converted page; pages that fail, broken links and non-PDF files are free
Input example
{"pdfUrls": ["https://www.irs.gov/pub/irs-pdf/fw9.pdf", "https://arxiv.org/pdf/1810.04805"],"outputFormat": "markdown","ocr": "auto","ocrLanguages": ["eng"]}
| Field | What it does |
|---|---|
pdfUrls | Direct links to PDF files (up to 100 MB each) |
outputFormat | markdown (default) or text |
ocr | auto (only pages without a text layer), always or never |
ocrLanguages | Languages for OCR, e.g. ["deu", "eng"] |
pages | Page range like 1-3, 7, 10-; empty means all pages |
maxPages | At most this many pages per document (default 500) |
outputPerPage | One dataset item per page instead of per document |
Output example
Real output from a test run (the content field is shortened here):
{"url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf","fileName": "fw9.pdf","title": "Form W-9 (Rev. March 2024)","pageCount": 6,"pagesProcessed": 6,"ocrPages": 0,"tables": 1,"format": "markdown","content": "# W-9\n\n# Request for Taxpayer\n\n… Check only one box on line 3a.\n\n| IF the entity/individual on line 1 is a(n) . . . | THEN check the box for . . . |\n| --- | --- |\n| • Corporation | Corporation. |\n| • Individual or • Sole proprietorship | Individual/sole proprietor. |\n| • Partnership | Partnership. | …","charCount": 37933,"wordCount": 6338,"approxTokens": 9484}
A scanned page from the same run (OCR, English):
The LinnSequencer is a state-of-the-art composition and performance tool for the professional musician. It is extremely powerful, yet amazingly simple to learn and use.
A summary per PDF (ok or error with the reason) is saved as OUTPUT in the key-value store.
Pricing
You pay per converted page, plus a small extra per page that needed OCR. In our tests 23 pages from 3 PDFs (one of them scanned) took 12 seconds with the default 1 GB memory.
Paid Apify plans pay less: 10% off on Starter, 20% on Scale and 30% on Business and higher plans.
FAQ
Which tables are detected? Tables with ruling lines (borders or cell lines), like most forms, reports and statistics. Tables drawn without any lines come out as text lines in the right order.
Can it read password-protected PDFs? No. Such files are reported as an error and are not charged.
My scan has a different language. Pick the languages in ocrLanguages; several at once work (["deu", "eng"]), but each extra language makes OCR a little slower.
Can I use files from my computer? Upload them anywhere that gives a direct link (for example an Apify key-value store or a cloud drive share link that downloads the file) and paste that link.
Impressum
Levi Griesinger, Tidelane Data
Besigheimer Straße 18
74369, Löchgau, Deutschland
E-Mail: LeviGriesinger@gmail.com