PDF Text Extractor 📄 (Markdown, OCR & metadata) avatar

PDF Text Extractor 📄 (Markdown, OCR & metadata)

Pricing

from $2.80 / 1,000 pdf documents

Go to Apify Store
PDF Text Extractor 📄 (Markdown, OCR & metadata)

PDF Text Extractor 📄 (Markdown, OCR & metadata)

PDF to text or Markdown for AI and RAG: headings, tables and links kept, scanned pages read by OCR, metadata, per-page rows and ready-made chunks. No API key.

Pricing

from $2.80 / 1,000 pdf documents

Rating

0.0

(0)

Developer

Tagada Data

Tagada Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

PDF Text Extractor: PDF to Markdown or text, with OCR for scanned pages

Give it PDF links and get back clean text or Markdown you can feed straight into an embedding model, a search index or an LLM prompt. Headings, lists, links and tables are kept, repeated page headers and footers are dropped, and scanned pages with no text layer are read by built-in OCR. Everything runs inside the actor: no API key, no external OCR or AI service.

$4 per 1,000 PDFs of up to 100 pages (longer PDFs count once more per extra 100 pages), plus $12 per 1,000 pages that needed OCR. Platform usage is included. Pages that already have a text layer cost nothing extra. If you ask for one row per page or per chunk, each row also costs $0.20 per 1,000 rows.

What you get

By default one row per PDF:

FieldDescription
url, title, author, subject, keywordsDocument details. title falls back to the first main heading when the file has no title (titleSource tells you which)
creationDate, modifiedDate, creator, producer, pageCountMore metadata, dates as ISO strings
text, formatThe extracted text, as Markdown or plain text
wordCount, charCount, pagesExtractedSize of what was read
ocrPages, ocrConfidenceHow many pages were read by OCR and their average confidence (0 to 100)
pagesOne entry per page: pageNumber, method (text, ocr or empty), wordCount, ocrConfidence, rotatedDegrees
linksLinks found in the PDF, with the page they are on
chunksOnly when a chunk size is set: chunkIndex, text, wordCount, pageStart, pageEnd, charStart, charEnd
warningsAnything that limited the result: page limit hit, pages skipped, OCR off on a scanned page
status, errorCode, errorMessageok, or an error row (see below)

Choose One row per Page to get a row for every page, or Chunk to get a row for every text chunk, each carrying the document title, URL and page numbers. Page and chunk rows are billed at $0.0002 each on top of the document fee, because the platform bills every dataset row. A document too large for one dataset row (several thousand pages of text) is delivered as page rows automatically.

Markdown output

With the Markdown format you get # headings (from font sizes), - lists, [text](url) links, and tables written as Markdown tables when the PDF lays out aligned columns. Plain text keeps the paragraphs and writes table rows as cell | cell | cell.

Example row (real, from a run on 2026-10-16, text shortened)

{
"type": "document",
"status": "ok",
"url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf",
"title": "Form W-9 (Rev. March 2024)",
"titleSource": "metadata",
"subject": "Request for Taxpayer Identification Number and Certification",
"creationDate": "2024-03-06T13:18:13.000Z",
"pageCount": 6,
"pagesExtracted": 1,
"format": "markdown",
"text": "Form W-9 Request for Taxpayer Give form to the\n\n(Rev. March 2024) Identification Number and Certification requester. Do not ...",
"wordCount": 919,
"ocrPages": 0,
"pages": [{ "pageNumber": 1, "method": "text", "wordCount": 919, "ocrConfidence": null, "rotatedDegrees": 0 }],
"chunks": [{ "chunkIndex": 0, "wordCount": 92, "charStart": 0, "charEnd": 553, "pageStart": 1, "pageEnd": 1 }]
}

Scanned PDFs and OCR

OCR mode Auto (the default) checks every page. Pages with a real text layer are read directly. Pages without one (scans, photographed pages, image-only exports) are rendered and read with Tesseract, and you pay the OCR page fee for those only. Mixed documents work page by page. Force reads every page with OCR, useful when a PDF's hidden text layer is garbled. Off never uses OCR and tells you which pages were skipped.

Seven languages are bundled: English, French, German, Spanish, Italian, Portuguese and Dutch. Pick up to two per run for mixed documents. Sideways and upside-down scans are detected and turned upright. Handwriting is not supported.

OCR is slow work. Expect roughly 10 to 15 seconds per page at the default memory, so a 100 page scan takes about 20 minutes. Text-layer PDFs are fast, a few seconds for hundreds of pages. Raise the run memory for faster OCR (it scales the CPU), the cost per page stays about the same.

Errors are rows, not crashes

A link that cannot be read produces an error row (status: "error") and costs nothing:

errorCodeMeaning
not-a-pdfThe link returned a web page or another file type (the content type is named)
password-protectedThe PDF is encrypted. Enter a password in the input if you have one
not-foundHTTP 404 or 410
too-largeOver the 60 MB file limit
corruptThe PDF is damaged or unreadable
no-textA readable PDF where no text was found (a scan with OCR off, or OCR found nothing)
fetch-failedThe server refused or timed out on every attempt

The run status message at the top of the run summarizes the same, and a run where every link failed ends as failed instead of pretending to succeed.

Limits

  • 60 MB per PDF, 500 PDFs per run, at most 1,000 pages per PDF (default 100, set with Max pages per document). A PDF is billed once per started block of 100 pages read. When the page limit cuts a document, its warnings say how many pages were left.
  • Each PDF is downloaded directly first. If the server refuses, a datacenter proxy is tried. Files behind a login are not supported, but links with a signature (Apify private store links, pre-signed storage links) work.
  • Tables are detected from aligned text. Tables drawn as images, or read by OCR, come out as lines of text rather than Markdown tables.
  • Two-column pages are read column by column. Complex magazine layouts can still come out in a surprising order.
  • If you set a maximum charge for the run and it is reached, extraction stops there and the status message says so.

Input examples

Markdown for every page of a few reports:

{
"urls": [
{ "url": "https://arxiv.org/pdf/1706.03762" },
{ "url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf" }
],
"outputFormat": "markdown"
}

RAG chunks of about 1,000 characters with a 150 character overlap, one row per chunk:

{
"urls": [{ "url": "https://arxiv.org/pdf/1706.03762" }],
"outputRows": "chunk",
"chunkSize": 1000,
"chunkOverlap": 150
}

A French scan, pages 1 to 10 only:

{
"urls": [{ "url": "https://example.com/scanned-contract.pdf" }],
"ocrMode": "auto",
"ocrLanguages": ["fra", "eng"],
"pageRange": "1-10"
}

Who uses this

  • AI and RAG builders. Turn a folder of PDF links into chunked, page-referenced text for embeddings and agents.
  • Operations and finance teams. Pull text out of invoices, statements and contracts, scanned or not, to feed a parser or a review queue.
  • Researchers and analysts. Convert papers and reports to Markdown with titles, authors and dates for notes and datasets.
  • Developers. Call it from the API as a PDF to text endpoint without running OCR yourself.

FAQ

Can it extract text from a scanned PDF? Yes. Leave OCR on Auto and pages without a text layer are read with OCR in the languages you pick.

How do I convert a PDF to Markdown? Run it with the Markdown text format. Headings, lists, links and detected tables come out as Markdown.

Can I get the text page by page? Set One row per to Page, or read the pages list on each document row.

How do I split a PDF into chunks for RAG? Set a chunk size (and overlap). Chunks break at paragraph and sentence ends and carry their page numbers.

Is there a size limit? 60 MB and up to 1,000 pages per PDF, 500 PDFs per run.

Does it need an API key? No. OCR and parsing run inside the actor.

What about images instead of PDFs? Use Image OCR Extractor, the sibling actor for PNG, JPG, WebP, GIF, BMP and TIFF links.

Keywords

pdf text extractor, pdf to text, pdf to markdown, pdf ocr, scanned pdf to text, extract text from pdf, pdf parser, pdf metadata, pdf for rag, pdf chunking.