PDF to Text & Markdown Converter (Metadata, Tables) avatar

PDF to Text & Markdown Converter (Metadata, Tables)

Pricing

from $1.50 / 1,000 pdf converteds

Go to Apify Store
PDF to Text & Markdown Converter (Metadata, Tables)

PDF to Text & Markdown Converter (Metadata, Tables)

Convert PDF URLs to clean Markdown or plain text for LLMs, RAG and search: headings, paragraphs, lists, best-effort tables, title/author/date metadata, page count and word count. Fast, no OCR. Pay only for PDFs with extracted text.

Pricing

from $1.50 / 1,000 pdf converteds

Rating

0.0

(0)

Developer

Mogul Tools

Mogul Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

PDF to Text & Markdown Converter (Metadata, Headings, Tables)

Give it PDF URLs and get clean Markdown or plain text for each document, ready for LLMs, RAG pipelines, search indexes and data extraction. Headings are detected from font sizes, and paragraphs are rebuilt across line breaks with de-hyphenation. Bulleted and numbered lists and simple tables are kept, and running headers, footers and page numbers are removed. Every row also includes the PDF metadata (title, author, subject, keywords, creator, producer, creation and modification dates, PDF version, language), plus page count, word count, character count and file size.

It's fast because it reads the PDF's text layer directly, with no browser and no OCR. In our tests a 15-page arXiv paper took under 1 second, and a 142-page IRS publication about 3 seconds.

You only pay for PDFs where text was extracted. 404s, timeouts, non-PDF responses, password-protected, corrupt or oversized files, and scanned PDFs without a text layer are all free.

What you can use it for

  • LLM / RAG ingestion: turn research papers, reports, manuals and filings into Markdown chunks with headings intact
  • Search and indexing: full text plus title, author and dates for every PDF in a list
  • Document monitoring: re-run on government forms, price lists or policy PDFs and diff the text
  • Data extraction: pull text from invoices, statements or forms for downstream parsing
  • Crawling PDF libraries: point it at an HTML page and it finds and converts the linked PDFs (findPdfLinks)
  • Feeding documents to AI agents (works via the Apify MCP server)

Input example

{
"startUrls": [
{ "url": "https://arxiv.org/pdf/1706.03762" },
{ "url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf" }
],
"outputFormat": "markdown",
"pageRange": "",
"maxPagesPerDoc": 0,
"includePages": false,
"removeHeadersFooters": true,
"findPdfLinks": false,
"maxChargedDocuments": 0,
"maxFileSizeMb": 100
}
  • outputFormat: markdown, text or both
  • pageRange: e.g. 1-5,8,10- (empty means all pages). maxPagesPerDoc caps pages per document (0 means no limit)
  • includePages: adds a pages array with per-page text/Markdown, useful for citations and page-level chunking
  • findPdfLinks: for HTML pages in your input, finds linked/embedded PDFs (<a>, <iframe>, <embed>, <object>) and converts them (up to maxPdfLinksPerPage per page)
  • maxChargedDocuments: stop after this many charged documents (0 means no limit)

Output example (one row per document; text shortened)

{
"url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf",
"finalUrl": "https://www.irs.gov/pub/irs-pdf/fw9.pdf",
"httpStatus": 200,
"contentType": "application/pdf",
"fileSizeBytes": 140815,
"status": "OK",
"title": "Form W-9 (Rev. March 2024)",
"author": "SE:W:CAR:MP",
"subject": "Request for Taxpayer Identification Number and Certification",
"keywords": "Fillable",
"creator": "Designer 6.5",
"producer": "Designer 6.5",
"creationDate": "2024-03-06T13:18:13.000Z",
"modificationDate": "2024-03-06T13:18:13.000Z",
"pdfVersion": "1.7",
"language": "en-US",
"inferredTitle": "Form W-9(Rev. March 2024)",
"pageCount": 6,
"pagesExtracted": 6,
"wordCount": 6348,
"charCount": 37776,
"markdown": "# Form W-9(Rev. March 2024)\n\n## Request for Taxpayer Identification Number and Certification\n\nDepartment of the Treasury Internal Revenue Service Go to www.irs.gov/FormW9 for instructions and the latest information.\n\nGive form to the requester. Do not send to the IRS.…",
"textTruncated": false,
"fullTextKey": null,
"charged": true,
"error": null,
"durationMs": 927,
"scrapedAt": "2026-10-23T13:16:57.305Z"
}

In Markdown, pages are separated by ---. inferredTitle is the largest text on the first page, which is handy when the metadata title is missing. Very long documents (over 4 million characters) are stored in full in the key-value store (fullTextKey), and the row text is marked textTruncated: true.

Statuses

statusChargedMeaning
OKyesText extracted
NO_TEXT_LAYERnoScanned/image-only PDF (OCR isn't included)
ENCRYPTEDnoPassword-protected PDF
CORRUPT / PARSE_ERRORnoBroken or unreadable PDF
NOT_PDFnoThe URL returned HTML, JSON or another non-PDF file
TOO_LARGEnoBigger than maxFileSizeMb
HTTP_404 (and other HTTP codes), TIMEOUT, DNS_ERROR, INVALID_URL…noDownload failed
HTML_PAGE_SCANNED / NO_PDF_LINKSnoAn HTML page scanned with findPdfLinks

The RUN_SUMMARY record in the key-value store has the run totals.

Pricing (pay per event)

You pay per PDF converted: the file downloaded, parsed and returned text. The price is per document, not per page.

Apify planPrice per 1,000 PDFs
Free$3.00
Bronze (Starter)$2.50
Silver (Scale)$2.00
Gold (Business)$1.50

Failed, scanned, encrypted, oversized and non-PDF inputs are never charged. Platform usage (compute, storage, data transfer) is included, so you don't pay it separately. Each run also has Apify's standard start fee of $0.00005 per GB of memory. Optional Apify datacenter proxy (or your own proxy URLs) is included in the price; residential proxy isn't supported. Set Max total charge or maxChargedDocuments to cap your spend. The run stops cleanly when the cap is reached, without storing unpaid results.

Features

  • Headings (up to 4 levels) from font-size analysis, paragraphs, bulleted and numbered lists, and best-effort tables
  • Multi-column layouts read in column order; rotated margin text is kept out of headings
  • Running headers, footers and page numbers removed (can be turned off)
  • De-hyphenation across line breaks, and CJK-aware spacing and word counts (Chinese, Japanese, Korean)
  • Full PDF metadata with ISO dates
  • Page ranges, per-page output and a page cap per document
  • Follows redirects, retries 429/5xx, and runs documents in parallel with a per-host delay
  • Refuses private/internal addresses

Limitations

  • No OCR. Scanned PDFs return NO_TEXT_LAYER for free. Use an OCR tool for those.
  • Tables are best-effort. Aligned columns become Markdown tables, while complex or ruled tables may come out as tab-separated lines or paragraphs.
  • Layout reconstruction is heuristic. Unusual layouts (posters, slides, magazine spreads) may mix reading order.
  • Only direct PDF URLs and static HTML pages (for findPdfLinks) are supported. Pages that need a login or JavaScript to reach the PDF aren't.
  • Default file size limit is 100 MB (up to 500 MB). Raise the run memory for very large PDFs.

License

Built on Mozilla's pdf.js (Apache-2.0). This Actor's code is licensed Apache-2.0.

Responsible use

Only convert documents you are allowed to access and use. Each document takes one download request (plus redirects), with a per-host delay between requests.