PDF Text & Table Extractor — Markdown & JSON avatar

PDF Text & Table Extractor — Markdown & JSON

Pricing

from $4.00 / 1,000 pdf processeds

Go to Apify Store
PDF Text & Table Extractor — Markdown & JSON

PDF Text & Table Extractor — Markdown & JSON

Extract text, tables and metadata from PDF URLs into clean Markdown, plain text or JSON. Pay only for PDFs processed successfully. Digital PDFs only — no OCR, no scanned files.

Pricing

from $4.00 / 1,000 pdf processeds

Rating

0.0

(0)

Developer

KeyMan98

KeyMan98

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

PDF Text & Table Extractor

Extract text from PDF files, pull out tables, and convert PDF to Markdown or plain text — in bulk, from a list of URLs, with no software to install. Give it public PDF links and get back clean text, table data, and document metadata for each file, ready to read, copy, or feed into another tool.

What you get (output fields)

For each PDF you submit, one dataset row with:

  • url — the PDF URL you requested.
  • fileName — file name taken from the URL.
  • pageCount — total pages in the PDF (null if it could not be opened).
  • pagesProcessed — pages actually processed (limited by maxPagesPerPdf).
  • text — extracted body text, as plain text or Markdown depending on outputFormat.
  • tables — tables found in the PDF, each with a page number and rows of cells.
  • metadata — title, author, and creation date, when present and requested.
  • error — null on success, or a message explaining why this PDF failed.

Who it's for

Anyone who needs the content of one or many PDFs without opening them by hand: reports, contracts, catalogs, course handouts, invoices. No installation needed — it runs on the Apify platform, you just supply the links.

How to use

  1. Paste your PDF links into the "PDF URLs" field. Links must be public and reachable by anyone — not files on your own computer.
  2. Choose your options (sensible defaults are pre-filled):
    • Extract tables — also pull out tables found in the PDF, not just body text.
    • Output format — plain text or Markdown (Markdown keeps a readable structure, useful if you paste the result elsewhere).
    • Max pages per PDF — how many pages to read at most per file (keeps large PDFs predictable).
    • Include metadata — also include the document's title, author, and creation date, when present.
  3. Run the Actor. Each PDF becomes one row in the dataset, with its extracted text, any tables, and metadata if requested.

Input example (JSON)

{
"pdfUrls": [{ "url": "https://example.com/document.pdf" }],
"extractTables": true,
"outputFormat": "markdown",
"maxPagesPerPdf": 50,
"includeMetadata": true
}

Output example (JSON)

{
"url": "https://example.com/document.pdf",
"fileName": "document.pdf",
"pageCount": 3,
"pagesProcessed": 3,
"text": "## Page 1\n\nText of the first page...",
"tables": [{ "page": 2, "rows": [["Column 1", "Column 2"], ["A", "1"]] }],
"metadata": { "title": "Sample document", "author": null, "creationDate": "D:20240101000000" },
"error": null
}

If a PDF cannot be read

The run does not fail. That row simply gets an error message explaining why (broken link, file unreachable, not a PDF, too large, password-protected...), and you are not charged for it. The rest of the list is still processed normally.

Pricing

Pay only for PDFs processed successfully — no fixed cost, nothing charged for failed PDFs. Pricing model: pay-per-event.

EventWhen it's chargedPrice
pdf-processeda PDF was downloaded and its text extracted successfully0.004 USD

Limitations

  • No OCR: scanned PDFs (image-only) are not supported. Works only on "digital" PDFs where the text is already text inside the file — the large majority of PDFs generated by a computer (Word exports, websites, e-invoices...).
  • Password-protected PDFs are not supported.
  • Maximum file size: 50 MB.
  • Maximum download time per PDF: 30 seconds.
  • Maximum pages per PDF is capped by the maxPagesPerPdf input.

FAQ

Can I use this on a scanned PDF?

Not yet. The result would be empty or incomplete text, since there is no OCR step.

Why does a row have error instead of text?

The PDF was unreachable, not actually a PDF, too large, or password-protected. The error field explains the exact reason.

Am I charged if a PDF fails?

No. You are only charged for PDFs processed successfully.

Can I extract only tables and skip the body text?

The Actor always extracts text; turn off Extract tables if you only want text, but there is currently no option to extract tables only.

Does it work on PDFs stored on my computer?

No. It needs a public URL it can download from — local files are not supported.

What is the difference between plain text and Markdown output?

Markdown preserves headings and structure so the result stays readable when pasted elsewhere; plain text is just the raw extracted text.

Extracting text for your own use or analysis is generally fine. Redistributing the extracted content of a copyrighted PDF (a paid report, a book, a proprietary contract) is a separate question this Actor doesn't answer for you — that's between you and the PDF's owner. This is not legal advice.

How does this compare to OCR-based extractors?

This Actor has no OCR step: it only reads text that is already stored as text inside the PDF ("digital" PDFs), not text baked into a scanned image. For that large majority of PDFs, that makes it faster and cheaper than an OCR pipeline. For scanned/image-only PDFs, you need an OCR-based tool instead.

Can I use this through the Apify API or an MCP server?

Yes. Like any Apify Actor, you can run it and read results through the standard Apify API, or through the Apify MCP server if you use Claude, Cursor, or another MCP-enabled client.

Export

Results can be downloaded from the Apify dataset as JSON, CSV, or Excel, or accessed via the Apify API.