Document to Markdown: PDF, DOCX, XLSX for LLMs & RAG avatar

Document to Markdown: PDF, DOCX, XLSX for LLMs & RAG

Pricing

from $1.00 / 1,000 pages

Go to Apify Store
Document to Markdown: PDF, DOCX, XLSX for LLMs & RAG

Document to Markdown: PDF, DOCX, XLSX for LLMs & RAG

Tested Oct 25, 2026: 99.9% text fidelity on our test PDFs, 99.3% reading order on 2-column PDFs (MarkItDown 84%), PDF tables as real grids (cell placement 0.70, same as Docling). PDF, DOCX, XLSX, HTML to markdown with token counts. $0.001/page, failures free.

Pricing

from $1.00 / 1,000 pages

Rating

0.0

(0)

Developer

Catalyst Labs

Catalyst Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

15 days ago

Last modified

Features

Limited permissionsSingle-tenantServer interface

Share

Document to Markdown: PDF, DOCX, XLSX, CSV, HTML to LLM-ready markdown

Why agents choose this

Tested Oct 25, 2026: 99.9% text fidelity on our test PDFs (synthetic, 1-column) and 99.3% correct reading order on 2-column PDFs (MarkItDown 84%), at 9 ms per PDF vs 67 ms MarkItDown and 846 ms Docling. PDF tables now come out as GFM grids via our PDF Tables engine: 0.70 of 2,751 cells in the right place (Docling 0.70, MarkItDown 0.25). Table-heavy PDFs are slower: 100 real pages in 22.8 s with tables, 2.2 s with pdfTables: off.

Test (Oct 25, 2026, same files, same box)This ActorMarkItDownDoclingMarker
1-column PDFs, text F1 (20 files)0.999---
2-column PDFs, reading order recall (10 files)0.9930.8410.9880.997
DOCX text F1 (15 files)1.000---
XLSX cell text F1 (5 files)0.9950.9120.999-
PDF tables, cells in the right grid (2,751 cells)0.70 (was 0.0, flat text)0.250.700.22
PDF tables, cell text present0.79 (was 0.82)-0.95-
Median time per synthetic PDF13 ms (was 9 ms)67 ms846 ms1,616 ms
100 real PDF pages (Fed H.8, IRS Pub 15-T, Census retail)22.8 s with tables, 2.2 s with pdfTables: off16.8 s178 s for the 22-page Fed H.8 alone-
Price per 100 pages$0.10 + $0.001 startself-hostself-hostself-host
  • $0.001 per page. Failed, scanned-only (NO_TEXT_LAYER) and password-protected files are never charged.
  • Every row says what happened: outcome (ok, no_content, blocked, not_found, encrypted, too_large, ...) plus retryable.
  • Exact token counts: tokens per document, and chunks carry tokens, charStart/charEnd (exact slice of markdown), headingPath and page.
  • PDF tables become grids: pages that look tabular run through the PDF Tables engine; tableCount says how many were found (pdfTables: off skips it). Scanned tables still need OCR (NO_TEXT_LAYER).
  • DOCX and XLSX tables survive as GFM tables, and PDFs get <!-- page N --> markers so you can cite pages.
  • File type is detected from the bytes, not the URL.

Cost per call

EventPriceWhen
page$0.001per PDF page converted; other formats count 1 page per 3,000 characters returned
actor-start$0.001once 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 }
FieldDefaultNotes
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).
maxChars50000Token budget per document; 0 = unlimited.
pagesallPDF range: 1-10, 5, 20-.
maxPages200PDF safety cap.
chunkSize0 (off)Chunk size in characters for RAG.
chunkOverlap200Overlap between chunks.
includeFullMarkdownfalseAlso return markdown when chunking.
pageMarkerstrue<!-- page N --> before each PDF page.
keepLinksfalseKeep hyperlinks.
maxRowsPerSheet500Spreadsheet 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.