Extract tables from any PDF — instantly.
Parselayer's API turns messy PDF tables into clean, typed JSON in seconds. Confidence scores on every table. Pay only for what's extracted.
Free tier includes 100 tables/month. No credit card required.
curl -X POST https://api.parselayer.com/v1/tables \
-H "X-API-Key: pk_live_••••••••" \
-F "file=@annual_report.pdf"
# Response
{
"tables": [
{
"table_id": "tbl_01j...",
"confidence": { "overall": 0.97 },
"headers": ["Quarter", "Revenue", "EBITDA"],
"rows": [...]
}
],
"tables_billed": 3
}Everything you need to extract tables at scale
Built for developers who need structured data out of PDFs without the guesswork.
Confidence scores on every table
Each extracted table ships with per-subsystem confidence scores — headers, type inference, and footnotes — so you know exactly what to trust.
Deterministic, not generative
No LLMs making things up. Parselayer uses a rule-based pipeline that produces the same output every time for the same input.
Multi-page table stitching
Tables that span multiple pages are automatically detected and stitched into a single clean result with continuous row indexing.
Webhook delivery
Register a callback URL at job submission and receive results via signed webhook the moment extraction completes — no polling required.
Type inference built in
Columns are typed automatically — integers, floats, currencies, percentages, dates, booleans. Nulls are identified, not guessed.
Per-table billing
You're charged for successfully extracted tables, not pages. If a page has no tables, you pay nothing for it.
How it works
Three steps from PDF to structured data.
Upload your PDF
POST your PDF to the API with your API key. Works with any PDF — financial reports, research papers, data exports.
Tables are extracted
Our deterministic pipeline locates, stitches, and structures every table — with per-table confidence scores and type inference.
Get clean JSON
Poll the job endpoint or receive a webhook. Tables come back with typed columns, headers, footnotes, and billing counts.
Pay per table, not per page
You're billed for tables successfully extracted — $0.10 each, $0.50 minimum per paid request. Free tier requests have no minimum. A paid request with 8 tables costs $0.80.
$0.50 minimum per request applies to paid plans. Free plan includes 100 tables/month with no minimums.
Free
100 tables/month, no card required. Enough to validate your integration — not enough for production.
- 100 tables / month
- No per-request minimum
- Async job queue
- Confidence scores
- JSON output
- Community support
Pay as you go
$0.50 minimum per request. No subscription. Credits never expire.
- $0.10 per extracted table
- $0.50 minimum per request
- No monthly commitment
- Credits never expire
- Webhook delivery
- Email support
Pro
500 tables included (~$0.098/table). Overage at $0.08/table.
- 500 tables / month
- $0.50 minimum per request
- Overage at $0.08 / table
- Webhook delivery
- Type inference
- Multi-page table stitching
- Email support
Scale
3,500 tables included (~$0.085/table). Overage at $0.065/table.
- 3,500 tables / month
- $0.50 minimum per request
- Overage at $0.065 / table
- Everything in Pro
- Priority processing queue
- Slack support
Enterprise
Custom volume, SLA guarantees, and dedicated support for mission-critical pipelines.
- Custom table volume
- Everything in Scale
- SLA & uptime guarantee
- Dedicated infrastructure
- On-prem deployment option
- Dedicated account manager
Frequently asked questions
Can't find the answer you're looking for? Email us.
Start extracting tables today
Free tier includes 100 tables per month. No credit card required.