Skip to content
The Register

PDF Tables Extractor — Tables Out of Any PDF

Pull real tables out of PDFs as rows you can use, with a confidence score on every table. Outputs one item per row for spreadsheets, or Markdown and CSV for docs and LLM prompts. Says plainly when a PDF is a scan with no text layer instead of returning silent nonsense.

PDF Tables Extractor — Tables Out of Any PDF returns 20 documented output fields, including sourceUrl, page, tableIndex, confidence and rowIndex. Every field carries a declared type, a written description and an example value. 36 runs are recorded on Apify.

Run it on ApifyPay per result · no subscription
20
Output fields
8
Inputs
36
Runs
2026-10-15
Last run

01 — output

What it returns

Every field the extractor writes to its dataset, with its type, a written description and an example value.

FieldTypeWhat it holdsExample
sourceUrlstringnullThe page or endpoint this row was read from.https://api.example.com/v1/items
pageintegernullPage number this record came from. 1-based.1
tableIndexintegernullZero-based index of the table within the document.0
confidencenumbernullHow confident the Actor is in this result, from 0 to 1. Not a probability of correctness.0
rowIndexintegernullZero-based position of this row within the dataset.0
rowobjectnullRow as recorded for this row.{"key":"value"}
rowsarraynullThe rows this record carries.[{"column":"value","column2":123}]
headerstringnullHeader name that was checked.<header>
hasHeaderbooleannullWhether the checked header is present.true
rowCountintegernullHow many rows this record represents, when rows are grouped.0
columnCountintegernullNumber of columns.0
fillRationumbernullShare of optional values that were populated, between 0 and 1.0
columnConsistencynumbernullShare of rows sharing the declared column count, between 0 and 1.0
numericRationumbernullShare of values that are numeric, between 0 and 1.0
markdownstringnullContent converted to Markdown, with headings and links preserved.<markdown>
csvstringnullContent rendered as CSV text.<csv>
statusstringnullOutcome recorded for this row.ok
recommendationstringnullThe recommended action for this row.Review the price change before it propagates.
symbolRationumbernullShare of values made only of punctuation or symbols, between 0 and 1.0
singleCharRationumbernullShare of values that are a single character, between 0 and 1. A high rate suggests truncation or a placeholder.0

02 — sample

One record

Assembled from the example values declared on the schema above, not invented at render time.

{
  "sourceUrl": "https://api.example.com/v1/items",
  "page": 1,
  "tableIndex": 0,
  "confidence": 0,
  "rowIndex": 0,
  "row": "{\"key\":\"value\"}",
  "rows": [
    {
      "column": "value",
      "column2": 123
    }
  ],
  "header": "<header>"
}

03 — input

What you give it

InputTypeDescription
pdfUrlsarrayoptionalPublic URLs of the PDFs to extract tables from.
pagesstringoptionalWhich pages to read, e.g. 1-5,8. Leave empty for every page.
minConfidencestringoptionalTables below this 0-1 score are discarded. Detection is genuinely ambiguous — a boxed diagram looks like a table to any algorithm — so this is the dial between missing tables and inventing them. 0.45 is a balanced default; raise it for financial data.
outputModestringoptional'rows' gives one dataset item per table row, ready for a spreadsheet. 'tables' gives one item per table with the rows nested.
includeMarkdownbooleanoptionalAttach each table as Markdown — the format to paste into docs, issues or an LLM prompt.
includeCsvbooleanoptionalAttach each table as a CSV string.
maxPagesPerPdfintegeroptionalUpper bound on pages read from each document.
maxItemsintegeroptionalHard cap on items returned. You are never charged beyond this.

04 — run

Run PDF Tables Extractor on your own input

It runs in the cloud on Apify. Nothing to install, and you are billed per result returned rather than per attempt.

Open on Apify ↗

05 — questions

Asked before running it

20 of 20 fields described

What does PDF Tables Extractor — Tables Out of Any PDF return?
It returns 20 documented output fields: sourceUrl, page, tableIndex, confidence, rowIndex, row, rows, header, hasHeader, rowCount, columnCount and fillRatio. Each field declares its type, a description of what it holds, and an example value. The remaining 8 are listed in the output schema below.
What input does PDF Tables Extractor — Tables Out of Any PDF take?
All 8 inputs are optional and ship with usable defaults, so it runs as-is. They are listed with their types below.
Does PDF Tables Extractor — Tables Out of Any PDF need an API key or login?
No. None of its inputs is a credential, and it reads only public data. Nothing to sign up for before the first run.
How do I run PDF Tables Extractor — Tables Out of Any PDF?
It runs on Apify. Start it from its listing with the inputs above, or call the Apify API with the Actor's ID. Results land in a dataset you can export as JSON, CSV or Excel, or read through the Apify API into your own pipeline.