PDF Table Extractor: PDF to Excel, JSON, Markdown + QA flags
Pricing
Pay per event
PDF Table Extractor: PDF to Excel, JSON, Markdown + QA flags
Extract tables from text-based PDFs into typed JSON rows, Markdown and an Excel workbook. Doubtful values, empty numeric cells and totals that don't add up are flagged instead of guessed. For analysts, data pipelines and AI agents.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Cesar Rodriguez
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
PDF Table Extractor: PDF to Excel, JSON & Markdown (with QA flags)
Turn text-based PDFs (financial statements, statistical reports, price lists, government tables, invoices with ruled tables) into structured tables: typed JSON rows, Markdown, and one Excel workbook per run. Every doubtful value is flagged instead of guessed.
Built for data teams, analysts and AI/RAG pipelines that need numbers they can check, not a best-effort blob of text.
What you get (per PDF)
tables[]– headers, typed numeric rows (US1,234.56and DE1.234,56are detected per table),markdown, page numbers, per-tableflags.- Tables that continue on the next page are merged (repeated header or header-less continuation).
flags[]– everything you should look at: empty cells in numeric columns, ambiguous thousands/decimal separators, totals that do not equal the sum of the rows above, pages without a text layer, pages that contain images but no readable data.text– full page-separated text (optional).RESULTS.xlsx(key-value store, link in the run output) – one sheet per table, yellow cells = review,Flagssheet, source file/pages on every row.- Optional (experimental): values of vector bar charts that carry numeric data labels.
Honest limits
- No OCR: scanned PDFs are reported (
status: no-text-layer,scannedPages) and not charged. No values are invented. - Works best on tables with ruling lines or clearly aligned columns. Tables embedded in running prose (typical in academic papers) or with merged/rotated cells can be missed or split – check
flagsandtableCount. - Only public
http(s)URLs. Files larger than the configured limit are skipped. - You are responsible for having the right to process the documents you submit.
Input
{"pdfUrls": [{ "url": "https://www.federalreserve.gov/monetarypolicy/files/fomcprojtabl20240918.pdf" }],"includeText": true,"maxPagesPerPdf": 100,"headerMap": { "Revenue": ["sales", "turnover", "umsatz"] }}
headerMap is optional and unifies column names across documents; unmapped headers are kept exactly as found.
Output (dataset item, shortened)
{"fileName": "fomcprojtabl20240918.pdf","status": "ok","pages": 17,"tableCount": 6,"tables": [{"index": 1, "pages": [3], "numberLocale": "unknown","headers": ["Variable", "2024", "2025", "2026"],"rows": [["Change in real GDP", 2.0, 2.0, 2.0]],"markdown": "| Variable | 2024 | ... |","flags": []}],"flagCount": 0, "flags": [], "scannedPages": []}
Pricing
Pay per event (see the Pricing tab): a small fee per run start, per PDF processed and per table extracted. Failed downloads, non-PDF responses and scanned PDFs without text are not charged. Set Max total charge on your run to cap spending.
Use with AI agents / MCP
Runs through the Apify MCP server: an agent can pass PDF URLs and read back structured tables plus the list of items that need human review.
FAQ
Does it send my files anywhere? The Actor downloads the URL you give it, parses it with the open-source pdfplumber library inside the run, and stores results in your run storages. No third-party AI service is called.
Why did it find 0 tables? The PDF may have no text layer (scan), or the tables may sit inside running text. See scannedPages and flags; try another document or open an issue in the Actor's Issues tab.
Can it read charts? Only vector bar charts with numeric data labels, and only when includeCharts is on. Everything else is flagged for visual review.