PDF Table Extractor: PDF to CSV, JSON & Markdown avatar

PDF Table Extractor: PDF to CSV, JSON & Markdown

Pricing

$5.00 / 1,000 page processeds

Go to Apify Store
PDF Table Extractor: PDF to CSV, JSON & Markdown

PDF Table Extractor: PDF to CSV, JSON & Markdown

Extract tables from PDFs to CSV, JSON and Markdown, plus per-page text. Digital and scanned (OCR) pages, auto-detected; ruled and borderless tables. Open-source engines, no third-party APIs. Pay per page processed; failed pages are free.

Pricing

$5.00 / 1,000 page processeds

Rating

0.0

(0)

Developer

402xAgent

402xAgent

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Security

Limited permissions

Share

PDF Table Extractor: convert PDF tables to CSV, JSON & Markdown

Give it a PDF, get its tables back as CSV, JSON and Markdown, plus the plain text of every page. Works on digital PDFs (text layer) and scanned PDFs (OCR), and detects which is which per page automatically.

Built only on open-source engines (pdfplumber, pdfium, Tesseract OCR). Your file is not sent to any third-party AI or OCR API.

What it does

  • Ruled tables (cell borders) via line detection.
  • Borderless tables (whitespace-aligned columns) via word-position clustering.
  • Scanned pages: renders at 300 DPI, runs Tesseract, rebuilds rows and columns from word boxes.
  • Per-page text for every processed page.
  • Combined files per PDF in the key-value store: <name>.csv, <name>.json, <name>.md.

Input

FieldDescription
pdfUrlsDirect links to PDFs you own or may process. Only these files are fetched (no crawling).
pdfFileUpload a PDF in the console.
kvStoreKeyKey(s) of PDF records in the run's default key-value store (comma-separated). For a file in another store, pass its signed recordPublicUrl in pdfUrls.
pageRangee.g. 1-3,7. Empty = all pages.
maxPagesCap per file (default 200).
outputFormatsAny of csv, json, markdown.
ocrauto (default), always, never.
borderlessDetect tables without ruling lines (default on).
includeTextReturn page text (default on).

Output (one dataset item per page)

{ "source": "https://example.com/report.pdf", "page": 3, "status": "success", "mode": "digital",
"tableCount": 1,
"tables": [{ "index": 0, "method": "lattice", "rowCount": 5, "colCount": 3,
"rows": [["State","2019","2020"],["Alabama","1,204","1,388"]],
"csv": "State,2019,2020\n...", "json": [{"State":"Alabama","2019":"1,204","2020":"1,388"}],
"markdown": "| State | 2019 | 2020 |\n|---|---|---|\n..." }],
"text": "..." }

method is lattice (ruled), stream (borderless) or ocr. Failed pages have status: "failed" and a reason.

Pricing

  • $0.005 per page processed successfully (page event).
  • A scanned page (OCR) counts as 3 events ($0.015), because OCR takes far more compute. Set ocr to never to avoid OCR.
  • Failed pages are free, and so are files that can't be fetched or aren't PDFs.

Accuracy (tested on 30 public PDFs)

  • Digital PDFs: ~97% cell accuracy against benchmark answers (camelot test suite, ICDAR-2013). All 34 real tables were found.
  • Scanned PDFs: lower, ~80% cell accuracy. OCR quality depends on the scan.

Known caveats

  • False tables: author/affiliation blocks, figure grids and form boxes (e.g. on tax forms) can be returned as tables.
  • Split tables: long borderless tables are sometimes returned as 2-3 consecutive fragments, and closely spaced columns can merge.
  • OCR errors: OCR can drop decimal points (e.g. 3.30 read as 330) or misread characters, and it can merge two tables that sit close together on one page. Check numbers on scanned pages.
  • Rotated or vertical header text may come out reversed. Encrypted PDFs that need a password are not supported. Max 100 MB per file.

Use cases

  • PDF to CSV / spreadsheet: pull tables out of reports, statements and government PDFs for Excel or Google Sheets.
  • Data pipelines and ETL: get structured JSON rows from PDF tables without manual copy-paste.
  • LLM and RAG input: Markdown tables and page text that language models read well.

FAQ

How do I extract a table from a PDF? Add the PDF link to pdfUrls (or upload with pdfFile) and run. Each page becomes one dataset item with its tables as CSV, JSON and Markdown.

Does it work on scanned PDFs? Yes, scanned pages are OCR'd with Tesseract automatically (ocr: auto). Accuracy is lower than on digital PDFs; see the caveats above.

Can it read tables without borders? Yes, borderless detection is on by default (borderless).

Is my PDF sent to a third-party API? No. Only open-source engines run inside the Actor.

What does it cost? $0.005 per successfully processed page; an OCR page counts as 3 events ($0.015). Failed pages are free.

Made by withgrokbot.