Document to Markdown: PDF, DOCX, XLSX for LLMs & RAG
Pricing
from $1.00 / 1,000 pages
Document to Markdown: PDF, DOCX, XLSX for LLMs & RAG
PDF, Word, Excel, CSV and HTML to clean markdown for agents and RAG: tables kept, PDF page markers, optional chunks with heading and page. $0.001 per page; failed or scanned files never charged. One row per document with status and error reason.
Pricing
from $1.00 / 1,000 pages
Rating
0.0
(0)
Developer
Catalyst Labs
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 hours ago
Last modified
Categories
Share
Document to Markdown: PDF, DOCX, XLSX, CSV, HTML to LLM-ready markdown
Why agents pick this
- $0.001 per page. A 15-page PDF costs $0.016. Failed, scanned-only (
NO_TEXT_LAYER) and password-protected files are never charged. - Tables survive. DOCX and XLSX tables come out as GFM tables, not flattened text, and PDFs get
<!-- page N -->markers so you can cite pages. - RAG-ready chunks (optional), each with its heading and page number.
- File type is detected from the bytes, not the URL, so links without a file extension still work.
maxCharscaps tokens, and you pay only for what is returned.
What it does: turns documents at public URLs (or inline base64 files) into clean markdown: headings, lists and tables kept, PDF page numbers marked, optional RAG chunks with heading and page per chunk. One flat JSON row per document with status, source url, page counts and, on failure, errorCode + errorMessage.
Use it when an agent needs to: read a PDF report, contract, filing or paper; turn a Word or Excel file into text it can reason over; or chunk documents for a vector store.
Don't use it for: scanned/image-only PDFs (returns NO_TEXT_LAYER, not charged: OCR is not included), password-protected files, PowerPoint (not yet), web search, or reading normal web pages (use catalyst-labs/agent-web-reader).
Cost per call
| Event | Price | When |
|---|---|---|
page | $0.001 | per PDF page converted; other formats count 1 page per 3,000 characters returned |
actor-start | $0.001 | once per batch run (not charged in Standby/HTTP mode) |
Examples: a 15-page PDF = $0.016; a short DOCX = $0.002. Failed documents are never charged, and with maxChars you only pay for what is returned. Use maxTotalChargeUsd to cap a run.
Input (only urls or files is required)
{ "urls": ["https://www.irs.gov/pub/irs-pdf/fw9.pdf"] }
{ "urls": ["https://arxiv.org/pdf/1706.03762"], "pages": "1-5", "chunkSize": 1500, "chunkOverlap": 150 }
| Field | Default | Notes |
|---|---|---|
urls | – | Up to 100 links. Type detected from file bytes. |
files | – | [{"name":"a.docx","base64":"..."}] for agents that hold the bytes (input limit ~9 MB). |
maxChars | 50000 | Token budget per document; 0 = unlimited. |
pages | all | PDF range: 1-10, 5, 20-. |
maxPages | 200 | PDF safety cap. |
chunkSize | 0 (off) | Chunk size in characters for RAG. |
chunkOverlap | 200 | Overlap between chunks. |
includeFullMarkdown | false | Also return markdown when chunking. |
pageMarkers | true | <!-- page N --> before each PDF page. |
keepLinks | false | Keep hyperlinks. |
maxRowsPerSheet | 500 | Spreadsheet rows per sheet. |
Output
{"status": "ok", "url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf", "fileName": "fw9.pdf","docType": "pdf", "title": "Form W-9 (Rev. March 2024)", "pageCount": 6, "pagesProcessed": 6, "billedPages": 6,"markdown": "<!-- page 1 -->\n\n#### Request for Taxpayer Identification Number ...","chars": 21000, "totalChars": 21000, "truncated": false,"chunks": null, "chunkCount": 0, "fetchedAt": "2026-10-25T05:00:00.000Z", "ms": 900,"errorCode": null, "errorMessage": null}
With chunking, chunks is [{"index":0,"heading":"Revenue","page":3,"text":"...","chars":1480}].
Error codes: INVALID_URL, INVALID_FILE, DNS_NOT_FOUND, TIMEOUT, HTTP_4xx/HTTP_5xx, TOO_LARGE (>50 MB), NO_TEXT_LAYER, ENCRYPTED, UNSUPPORTED_TYPE, EMPTY_CONTENT, PARSE_FAILED, SPENDING_LIMIT.
Formats and quality notes
- DOCX: headings, lists, bold/italic and tables become markdown (tables as GFM tables).
- XLSX/XLS/CSV: each sheet becomes a markdown table (first row as header).
- HTML/TXT/MD: main content extracted / passed through.
- PDF: text per page in reading order; headings guessed from font size. PDF tables come out as text lines, not markdown tables (honest limitation).
Fast calls: Standby (HTTP) mode
$curl "https://catalyst-labs--document-to-markdown.apify.actor/?urls=https://www.irs.gov/pub/irs-pdf/fw9.pdf&maxChars=4000&token=$APIFY_TOKEN"
Use from MCP
https://mcp.apify.com/?tools=catalyst-labs/document-to-markdown → tool catalyst-labs--document-to-markdown.
Deterministic: the same file and options give the same output. Files are processed in memory and not stored beyond the run's dataset.
Made by Catalyst Labs. Also see: Agent Web Reader, Google Trends API, YouTube Transcript API.