PDF to Markdown & Text Converter (with OCR for Scanned PDFs)
Pricing
from $2.00 / 1,000 pdf converteds
PDF to Markdown & Text Converter (with OCR for Scanned PDFs)
Convert PDFs to clean, LLM-ready Markdown and text: headings, lists, tables, code blocks and multi-column layouts, with headers/footers removed. Scanned pages are OCR'd automatically. No API key, no LLM. $3 per 1,000 PDFs; failed files are free.
Pricing
from $2.00 / 1,000 pdf converteds
Rating
0.0
(0)
Developer
Chris Elder
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
PDF to Markdown turns PDFs into clean, structured Markdown and plain text that LLMs, RAG pipelines and people can use. It rebuilds the document instead of dumping characters: headings, paragraphs (hyphenation fixed), bulleted and numbered lists, tables, code blocks and two- or three-column layouts in the right reading order. Running headers, footers and page numbers are removed. Scanned pages are OCR'd automatically, and only the pages that need it.
✅ Pay per result: $3 per 1,000 PDFs (up to 50 pages each) · 🆓 Files that fail are never charged · 🔑 No API key, no LLM, nothing sent to third-party AI services
▶ Try it with one click · 📄 Real example output · 💲 Pricing · 🔌 API & integrations · ❓ FAQ · 🛟 Support
What does PDF to Markdown do?
- 🧠 LLM / RAG-ready Markdown – structure survives chunking far better than raw
pdftotext; optional<!-- page N -->markers let you cite page numbers - 📑 Tables – aligned rows and columns become Markdown tables (
| a | b |) - 📰 Multi-column layouts – academic papers, government guidance, newsletters
- 🖨️ Scanned PDFs and image-only pages – automatic OCR (Tesseract, 100+ languages); digital pages are never billed as OCR
- 🧹 Noise removal – repeated headers/footers, page numbers, rotated watermarks
- 🔐 Password-protected and long PDFs (default limits 100 MB and 300 pages; both adjustable)
- 📦 Output as dataset rows (JSON, CSV, Excel) and optional downloadable
.mdfiles
Use cases
- RAG and AI agents – load reports, manuals, papers and contracts into Pinecone, Qdrant, Weaviate or pgvector with headings intact
- Document digitisation – make scanned letters, invoices and archives searchable
- Research – convert two-column academic papers to Markdown for notes and LLM summaries
- Compliance and legal – turn policies and terms into diffable text
- Data extraction – pull tables out of PDFs into Markdown
How to use it
- Click Try for free – the input is prefilled with a public IRS form (9 pages), so Start works straight away and costs about half a cent.
- Paste direct PDF links (the URL must return the PDF file, not a viewer page). To convert your own files, put them anywhere that gives a direct download link (a public S3/R2/GCS bucket, your website, a Dropbox link ending in
?dl=1) and paste the links. - Keep OCR mode = Auto (OCR only where needed), or choose Never for the cheapest text-only extraction.
- Click Start. Download JSON, CSV or Excel, or open the
.mdfiles.
Input example
{"pdfUrls": [{ "url": "https://www.irs.gov/pub/irs-pdf/iw8ben.pdf" }],"ocrMode": "auto","saveMarkdownFiles": true}
More options: ocrLanguage (e.g. deu, fra, eng+spa), maxPagesPerPdf, detectTables, pageMarkers, includePlainText, includePerPage, password, maxFileSizeMb, maxConcurrency.
Output example (from a real public run)
The example run above (IRS Instructions for Form W-8BEN, 9 pages, 9 Oct 2026) converted in 1.3 seconds. See it yourself: full Markdown file · dataset JSON
{"url": "https://www.irs.gov/pub/irs-pdf/iw8ben.pdf","fileName": "iw8ben.pdf","title": "Instructions for Form W-8BEN (Rev. October 2021)","pageCount": 9,"pagesProcessed": 9,"ocrPages": 0,"tablesFound": 0,"wordCount": 8384,"charCount": 51355,"processingMs": 1279,"markdown": "# Instructions for Form W-8BEN\n\n## (Rev. October 2021)\n\n#### Certificate of Foreign Status of Beneficial Owner ...","markdownFileUrl": "https://api.apify.com/v2/key-value-stores/iOJnjrSdK2GpgcI8z/records/iw8ben-1.md?signature=..."}
An excerpt of the markdown field, exactly as produced:
#### Purpose of FormEstablishing status for chapter 3 purposes. Foreign persons are subject to U.S. tax at a 30% rate on income they receive from U.S. sources that consists of:- Interest (including certain original issue discount (OID));- Dividends;- Rents;- Royalties;
| Field | Description |
|---|---|
markdown | The document as clean Markdown |
text | Plain text (Markdown removed, table cells tab-separated) |
title, author, metadata | From the PDF metadata (title falls back to the first heading) |
pageCount, pagesProcessed, ocrPages, ocrMeanConfidence | Processing stats |
tablesFound, wordCount, charCount, processingMs | Content stats |
pages[] | Optional per-page Markdown |
markdownFileUrl | Link to the .md file (with Save Markdown files) |
How much does it cost to convert PDF to Markdown?
Pay-per-event pricing: you pay only for PDFs converted. No platform usage charges on top.
| Event | Price | Notes |
|---|---|---|
| PDF converted (includes up to 50 pages) | $0.003 ($3 per 1,000 PDFs) | Silver $0.0025, Gold and above $0.002 |
| Extra page beyond 50 | $0.0002 per page | Long documents only |
| OCR page | $0.006 per page | Only scanned/image pages, only in Auto or Always mode. Silver $0.005, Gold $0.004 |
| Run start | $0.001 per GB of memory | Default 2 GB = $0.002 per run |
Worked examples (Free/Starter prices, default memory):
| Job | Calculation | Total |
|---|---|---|
| One-click example (one 9-page digital PDF) | $0.003 + $0.002 start | $0.005 |
| 1,000 ten-page digital PDFs in one run | 1,000 × $0.003 + $0.002 | $3.00 |
| One 200-page digital report | $0.003 + 150 × $0.0002 + $0.002 | $0.035 |
| One 20-page scanned contract | $0.003 + 20 × $0.006 + $0.002 | $0.125 |
Never charged: files that fail (404, not a PDF, wrong password, over your size limit). Cap spending with Apify's Max cost per run – the Actor stops cleanly at the limit. Apify's Free plan includes $5 of monthly credit.
Integrations (API, AI agents, Make, Zapier)
API – convert and get results in one call:
curl -X POST "https://api.apify.com/v2/acts/chris_elder~pdf-to-markdown/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"pdfUrls":[{"url":"https://www.irs.gov/pub/irs-pdf/iw8ben.pdf"}]}'
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("chris_elder/pdf-to-markdown").call(run_input={"pdfUrls": [{"url": "https://www.irs.gov/pub/irs-pdf/iw8ben.pdf"}]})for doc in client.dataset(run["defaultDatasetId"]).iterate_items():print(doc["title"], doc["wordCount"]) # doc["markdown"] -> your chunker / vector DB
AI agents (MCP) – add https://mcp.apify.com/?tools=chris_elder/pdf-to-markdown to Claude, Cursor, VS Code or any MCP client, and your agent can read any PDF link as Markdown.
Make, Zapier, n8n – use the Apify app's Run Actor action with chris_elder/pdf-to-markdown, then send the Markdown to Notion, Google Docs, a vector database or email. Webhooks in Apify Console fire when a run finishes.
Limits and good to know
- Complex tables (merged cells, nested headers) are approximated. Scanned tables are OCR'd as text, best effort.
- Math formulas come out as Unicode text, not LaTeX.
- Images and charts are not described (no AI vision, which keeps it cheap and private).
- The link must return the PDF itself. Viewer pages (Google Drive preview, DocSend) won't work.
- OCR quality depends on scan quality;
ocrMeanConfidencetells you how sure the OCR was.
Is it legal?
The Actor downloads only the files you give it, one request per file, and converts them. It doesn't crawl websites, log in or bypass protection. Make sure you have the right to process the documents (your own files, public-domain or openly licensed documents, or documents you're licensed to use). Personal data inside documents is processed only to produce your output.
FAQ
Does it use ChatGPT or another LLM? No. Conversion is deterministic (pdf.js layout analysis plus Tesseract OCR), so results are reproducible and documents never leave the Apify platform.
Which OCR languages are supported? English is built in; any Tesseract language code works, e.g. deu, fra, spa or eng+deu.
How do I convert files on my computer? Upload them somewhere that gives a direct download link (a public S3/R2/GCS bucket, your website, or a Dropbox link ending in ?dl=1), then paste the links.
My PDF failed. Open RUN_SUMMARY in the key-value store for the reason (404, not a PDF, password, too large). You weren't charged for it.
Support, reliability and feature requests
- Failed files are free. You pay only for PDFs converted.
- Tested on real documents before every release (IRS forms, 15-page arXiv papers with tables, 29-page reports, scanned pages).
- Issues answered within 2 business days. Open an issue on the Issues tab with a sample PDF link.
- Feature requests welcome – open an issue titled "Feature request: …".
- Built by Chris Elder with AI-assisted development; every release is reviewed and tested before it ships.
Need the data done for you?
If you'd rather not set up runs yourself, the UK company behind these tools (GPT Shop Ltd) offers a fixed-price done-for-you scrape. Tell us the website and the fields you need, and you get a clean CSV or Google Sheet within 48 hours of the confirmed brief, up to 5,000 rows, for £149 or $179. If we can't get the data, you're refunded in full. See the done-for-you scraper service
More tools by Chris Elder
- Sitemap URL Extractor – every URL from a website's sitemaps (find all PDFs on a site with an include pattern like
\.pdf$) - Bulk Lighthouse & PageSpeed Audit – Core Web Vitals and SEO scores for many URLs
- Bulk WHOIS Domain Lookup – registrar, expiry, availability and DNS for many domains via official RDAP
- Image to Text OCR – bulk text extraction from images in 100+ languages
- All tools: apify.com/chris_elder