Document to Markdown – PDF, Word, PowerPoint, Excel + OCR avatar

Document to Markdown – PDF, Word, PowerPoint, Excel + OCR

Pricing

from $1.00 / 1,000 page converteds

Go to Apify Store
Document to Markdown – PDF, Word, PowerPoint, Excel + OCR

Document to Markdown – PDF, Word, PowerPoint, Excel + OCR

Convert PDF, DOCX, PPTX, XLSX, HTML, EPUB and images to clean Markdown or plain text for LLMs and RAG. Tables kept, scanned pages read with OCR in 100+ languages, optional RAG chunks with page numbers.

Pricing

from $1.00 / 1,000 page converteds

Rating

0.0

(0)

Developer

Krzysztof Filipiak

Krzysztof Filipiak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Turn PDF, Word (DOCX), PowerPoint (PPTX), Excel (XLSX/XLS), HTML, EPUB, CSV, Outlook (MSG) and images into clean Markdown or plain text – ready for ChatGPT, Claude, LangChain, LlamaIndex and any RAG pipeline.

  • 📄 Headings, lists and tables preserved – PDF tables become Markdown tables, not a jumble of words.
  • 🔍 Scanned pages are read with OCR automatically (100+ languages), mixed PDFs included.
  • ✂️ RAG-ready chunks with page numbers and section path – one dataset item per chunk, straight into a vector database.
  • 🧹 Clean text – running headers, footers and page numbers removed; hyphenated words re-joined; paragraphs split across pages merged.
  • 🔗 Paste Google Drive, Google Docs, Dropbox or GitHub share links – they are turned into downloads for you.
  • 💸 From $0.001 per page, no subscription. Failed files are free.

Who uses it

You want to…How
Feed documents to an LLM or an AI agentoutputFormat: markdown – one item per document
Build a RAG knowledge basechunkSize: 1500 – chunks with pageStart, pageEnd, headingPath
Extract tables from PDF reportsMarkdown tables in the output, or .md files to download
Digitise scanned contracts, invoices, lettersocr: auto + ocrLanguages: eng+deu
Convert slide decks and spreadsheets to textPPTX slides and XLSX sheets become sections
Batch-convert thousands of filesGive a list of URLs, raise maxConcurrency and memory

How to use

  1. Paste document URLs into Document URLs (or upload files).
  2. Pick Markdown or Plain text. For RAG set RAG chunk size (e.g. 1500).
  3. Click Start. Each document (or chunk) appears in the dataset; every document is also saved as a .md file.

Input example

{
"urls": [
"https://arxiv.org/pdf/1706.03762",
"https://example.com/annual-report.docx"
],
"outputFormat": "markdown",
"ocr": "auto",
"ocrLanguages": "eng",
"chunkSize": 0
}

Output example (one document)

{
"url": "https://arxiv.org/pdf/1706.03762",
"fileName": "1706.03762v7.pdf",
"fileType": "pdf",
"status": "ok",
"title": "Attention Is All You Need",
"pages": 15,
"pagesConverted": 15,
"ocrPages": 0,
"characters": 38781,
"words": 6239,
"markdown": "# Attention Is All You Need\n\nAshish Vaswani ∗ Google Brain avaswani@google.com\n\n...\n\n## Abstract\n\nThe dominant sequence transduction models are based on complex recurrent or convolutional neural networks ...\n\n## 1 Introduction\n\n...",
"markdownUrl": "https://api.apify.com/v2/key-value-stores/…/records/0001-1706.03762v7.md"
}

Output example (RAG chunk, chunkSize: 1500)

{
"fileName": "1706.03762v7.pdf",
"chunkIndex": 7,
"chunkCount": 36,
"pageStart": 3,
"pageEnd": 3,
"headingPath": "Attention Is All You Need > 3 Model Architecture > 3.1 Encoder and Decoder Stacks",
"text": "### 3.1 Encoder and Decoder Stacks\n\nEncoder: The encoder is composed of a stack of N = 6 identical layers. Each layer has two sub-layers. ...",
"characters": 1360,
"approxTokens": 340
}

Failed files appear with status: "error" and a plain-English error (e.g. access denied – the file must be publicly downloadable). They are not charged.

Supported formats

FormatNotes
PDFText layer + automatic OCR of scanned pages; tables; page ranges; password-protected PDFs (pdfPassword)
Word .docxHeadings, lists, tables, bold/italic, links
PowerPoint .pptxSlide by slide, including tables and speaker notes
Excel .xlsx, .xls, CSVEvery sheet as a Markdown table
HTML, EPUB, TXT, MD, JSON, XML, Jupyter .ipynb, Outlook .msgConverted to Markdown
Images: PNG, JPEG, TIFF (multi-page), WebP, GIF, BMPOCR

Older binary formats (.doc, .ppt, .rtf, OpenDocument) – save them as .docx/.pptx/PDF first.

Pricing

Pay per event – you only pay for pages actually converted:

EventPrice
Page converted (PDF page, PowerPoint slide; other formats: every started 3,000 characters of output)$0.001
Page read with OCR (scanned page or image) – instead of the above$0.003

Examples: a 20-page text PDF costs $0.02; a 10-page scanned contract $0.03; 1,000 one-page invoices (text PDFs) $1. Apify platform usage is included in the price. You can set a maximum cost per run in the run options.

Use it from code, AI agents and automation tools

API (any language):

curl -X POST "https://api.apify.com/v2/acts/kris_fili~document-to-markdown/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://arxiv.org/pdf/1706.03762"], "chunkSize": 1500}'

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("kris_fili/document-to-markdown").call(run_input={"urls": ["https://arxiv.org/pdf/1706.03762"]})
for doc in client.dataset(run["defaultDatasetId"]).iterate_items():
print(doc["title"], len(doc["markdown"]))

AI agents (MCP): connect Claude, Cursor or any MCP client to https://mcp.apify.com?tools=kris_fili/document-to-markdown and ask "convert this PDF to Markdown: …".

No-code: use the Apify integration in Make, Zapier or n8n, or the Integrations tab to send results to Google Drive, Slack or a webhook.

Need only text from photos and scans (with word positions)? Use Image to Text OCR. Need screenshots or PDFs of web pages? Use Website Screenshot & PDF.

FAQ

How accurate is it? Text PDFs are converted exactly from their text layer. Tables with ruling lines are detected reliably; borderless tables may come out as text. OCR accuracy is typically 95%+ on clean scans at 300 DPI and lower on photos and handwriting (handwriting is not supported). Each OCR result has an ocrConfidence score.

Which OCR languages? English by default; set ocrLanguages to any of 100+ languages (e.g. deu, fra, spa, pol, chi_sim, jpn, ara) or combine them (eng+deu).

How big can files be? Up to 500 MB per file (maxFileSizeMb) and 5,000 pages per document (maxPages). For big batches give the run more memory – OCR uses all CPU cores of the run.

Are my documents private? Files are downloaded and processed only inside your own run; results are stored in your Apify account's storage. Nothing is shared or kept by the developer.

Can it read files behind a login? No – files must be downloadable from their URL. For Google Drive and Dropbox share them as anyone with the link, or upload them in the input.

Questions or a format you need? Open an issue on the Issues tab – we answer quickly.