PDF, Word, Excel & PowerPoint to Markdown for RAG
Pricing
from $0.80 / 1,000 page converteds
PDF, Word, Excel & PowerPoint to Markdown for RAG
Convert PDF, DOCX, XLSX, PPTX, HTML and EPUB files to clean Markdown with tables, page markers and optional RAG chunks. Built for LLM pipelines. Pay per page, no text no charge.
Pricing
from $0.80 / 1,000 page converteds
Rating
0.0
(0)
Developer
Emmanuel Vingadassalon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Turn documents into clean Markdown that LLMs read well: PDF, DOCX, XLSX, XLS, PPTX, HTML, EPUB, CSV and TXT. You get tables as Markdown tables, page markers for citations, and optional chunks ready for embeddings.
- Correct word spacing on PDFs. Many extractors glue words together on LaTeX and InDesign PDFs ("Providedproperattributionisprovided"). This Actor reads characters with tuned tolerances, so the text stays readable for search and embeddings.
- Tables kept as tables. PDF tables are detected and rendered as Markdown tables, separately from the body text. Excel sheets, Word tables and PowerPoint tables become Markdown tables too.
- Page markers for RAG citations. Every PDF page starts with
<!-- page N -->, so your pipeline can cite the page an answer came from. - Chunks included. Set
chunkSizeand each document is also split on paragraph boundaries into chunks of at most N characters. - Pay per page, no text no charge. Scanned PDFs without a text layer, empty files and failed downloads are returned with an error message and are not billed.
What can I use it for?
- RAG and chatbots: feed contracts, manuals, reports or slide decks into a vector database.
- Data extraction with LLMs: give a model clean Markdown instead of messy PDF text, and get better answers and fewer tokens.
- Search indexing and archiving: turn a folder of Office files into plain text you can search.
- AI agents: an agent can call this Actor as a
read_documenttool through the Apify MCP server (see below).
Input
{"urls": ["https://example.com/annual-report.pdf","https://example.com/price-list.xlsx"],"chunkSize": 2000,"pdfTables": true}
Speed. With table detection (pdfTables: true, the default), a long PDF takes about 2 seconds per page at the default 1 GB of memory. Set pdfTables: false for text only, which is about 30x faster. You can also give the run 4 GB of memory to get 4x more CPU. The price per page is the same either way.
Each URL must point directly to a file of up to 50 MB. The format is detected from the file extension or the Content-Type header.
Output
One row per document. The example is shortened; real values come from a test run on the 142-page IRS Publication 17.
{"url": "https://www.irs.gov/pub/irs-pdf/p17.pdf","fileName": "p17.pdf","format": "pdf","title": null,"pages": 142,"tables": 69,"characters": 1039871,"markdown": "<!-- page 1 -->\n\n... Publication 17\nYour Federal\nFor use in preparing\nIncome Tax\n2025\nReturns\nFor Individuals\n...\n\n| TAX GUIDE 2025 |\n| --- |\n| Get forms and other information faster and easier at: ... |\n\n<!-- page 2 -->\n...","chunks": [{ "index": 0, "text": "..." }],"convertedAt": "2026-10-10T12:40:58.784016+00:00"}
| Field | Meaning |
|---|---|
pages | Number of pages (PDF only). |
tables | Number of tables rendered as Markdown tables. |
markdown | The full document. For documents over 4 million characters, it is stored in the run's key-value store and markdownUrl links to it. |
chunks | Only when chunkSize > 0. |
error | Why a document was skipped, e.g. a scanned PDF or a failed download. Rows with an error are not charged. |
Pricing
$0.001 per page converted ($1 per 1,000 PDF pages), plus Apify's small run-start fee. Each non-PDF file (DOCX, XLSX, PPTX, HTML...) counts as one page, whatever its length. There is no subscription. Scanned PDFs without text, empty files and failed downloads are free.
Limits
- No OCR yet. Scanned PDFs (images of text) return an error and are not charged.
- PDF table detection works best on tables with ruled lines. On borderless tables, the cells may stay in the body text.
- Tables are detected on the first 300 pages of a PDF. Pages after that are converted as text only.
- The files must be reachable by URL. Files behind a login are not supported.
Use it from AI agents (MCP)
Add document-to-markdown to the Apify MCP server in your MCP client (Claude, Cursor, VS Code...), and your agent can read any document by URL.
Integrations
Apify API, schedules, webhooks, Make, Zapier, n8n. Export as JSON, CSV, Excel or HTML.
FAQ
Which engine is used? For PDFs, pdfplumber handles text and tables, and pdfium handles very long documents. Other formats go through Microsoft's open-source MarkItDown. Everything runs inside the Actor: your files are not sent to any third-party API.
Is my data kept? Files are downloaded to the run's temporary disk, converted, then deleted. The Markdown is stored only in your own Apify dataset.
Something wrong or missing? Open an issue on the Issues tab.