PDF to Markdown API & Converter: PDF to Text for AI Agents, RAG avatar

PDF to Markdown API & Converter: PDF to Text for AI Agents, RAG

Pricing

from $3.00 / 1,000 pdf converteds

Go to Apify Store
PDF to Markdown API & Converter: PDF to Text for AI Agents, RAG

PDF to Markdown API & Converter: PDF to Text for AI Agents, RAG

PDF to markdown converter and MCP tool for AI agents and RAG: give PDF URLs, get clean Markdown with headings, page texts, title, author and word count. Text-layer PDFs only, no OCR. Pay $0.003 per PDF converted (up to 30 pages), $0.0001 per extra page, plus a small start fee per run.

Pricing

from $3.00 / 1,000 pdf converteds

Rating

0.0

(0)

Developer

PlainRows

PlainRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Turn PDF URLs into clean Markdown that LLMs, AI agents and RAG pipelines can read: headings, paragraphs, page markers, plus the title, author, page count and word count of each file. Paste a list of PDF links, get one row per PDF.

The text comes from the PDF's own text layer (pdf.js, no browser, no proxy). Text-layer PDFs only, no OCR: scanned PDFs made of images are reported as such, for free, instead of returning invented text.

Typical uses

  • RAG and knowledge bases: feed research papers, manuals, reports and documentation into a vector store as Markdown, page by page.
  • AI agents (MCP): let an agent read a PDF it found on the web in one tool call.
  • Summaries and extraction: give an LLM the Markdown of contracts, filings, datasheets or whitepapers.
  • Search and archiving: index the full text of public PDFs with their page count and word count.

What you get for each PDF

FieldDescription
url, finalUrlThe PDF address you gave, and the address after redirects
foundtrue when the PDF was converted (billed row); false rows are free and say why in error
title, authorFrom the PDF metadata (null when the file has none: nothing is guessed)
pageCount, pagesConvertedPages in the file, and pages converted (at most maxPagesPerPdf)
markdownMarkdown of the converted pages, with a <!-- page N --> marker before each page
pagesWith includePageTexts: plain text of each page, [{ "page": 1, "text": "..." }]
wordCount, charCountWords in the text and characters in the Markdown (useful to size LLM context)
error, errorCodeWhy a PDF was not converted (NOT_A_PDF, TOO_LARGE, HTTP_ERROR, NO_TEXT_LAYER, UNREADABLE_PDF, ENCRYPTED_PDF, TIMEOUT...), or a note when only part of it was converted
convertedAtWhen the PDF was processed (UTC)

Headings are approximated from font size (a line clearly larger than the body text becomes #, ## or ###). Tables, images and multi-column layouts come out as plain text in reading order as stored in the PDF; words split by a hyphen at a line end are joined.

Input

{
"urls": ["https://arxiv.org/pdf/1706.03762", "https://www.irs.gov/pub/irs-pdf/fw9.pdf"],
"maxPagesPerPdf": 30,
"includePageTexts": false
}
  • urls: public PDF addresses, up to 5,000 per run (duplicates removed). Files up to 50 MB.
  • maxPagesPerPdf (default 30, max 300): only the first pages up to this number are converted.
  • includePageTexts (default false): also return the text of each page.

Output example

{
"url": "https://arxiv.org/pdf/1706.03762",
"found": true,
"title": null,
"author": null,
"pageCount": 15,
"pagesConverted": 15,
"markdown": "<!-- page 1 -->\n\nProvided proper attribution is provided, Google hereby grants permission...\n\n## 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...",
"pages": null,
"wordCount": 6135,
"charCount": 40118,
"error": null,
"errorCode": null,
"finalUrl": "https://arxiv.org/pdf/1706.03762",
"convertedAt": "2026-10-23T14:00:00.000Z",
"schemaVersion": "1.0"
}

(Excerpt; this arXiv file has no title in its metadata, so title is null.)

Pricing

Pay per PDF converted, no subscription:

  • $0.003 per PDF converted (pdf-converted), up to 30 pages included;
  • $0.0001 per extra page (extra-page) beyond 30, only if you raise maxPagesPerPdf and the PDF is longer;
  • a small start fee per run (apify-actor-start, $0.002 per GB of memory).

Free rows: PDFs without a text layer (scans), unreadable or password-protected files, files over 50 MB, non-PDF URLs (HTML pages, images), and URLs that fail (404, timeout, invalid or private address). The run never spends more than the maximum cost you set; if a run keeps hitting free failures, it stops early and says so.

Free Apify plan: each run converts up to 10 PDFs, so you can check the output. A paid Apify plan removes this limit.

Use it from code, automations or AI agents

Call it from the Apify API, the Apify MCP server (as a tool for Claude, ChatGPT or any MCP client), Make, Zapier, n8n or LangChain. Results are in the run's dataset (JSON, CSV, Excel); the run summary is in the OUTPUT record of its key-value store.

FAQ

Does it do OCR? No. It reads the text layer that most digital PDFs contain (exported from Word, LaTeX, browsers...). A scanned PDF without text returns found: false, errorCode: NO_TEXT_LAYER, free.

Are the headings exact? They are an approximation from font size; the text itself is exactly what the PDF contains.

What about very long PDFs? Set maxPagesPerPdf up to 300. Each PDF also has a time limit; if it is reached, the pages already converted are returned and only those are charged.

Which PDFs can it fetch? Public http(s) URLs that return a PDF file. Private network addresses are refused. The Actor identifies itself with a PlainRows user agent.

More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.