Define
Create the columns and related tables your documents should populate.
Upload PDFs, define the fields you need, and receive clean tables with related records. Download CSV or JSON, or keep everything in a queryable SQLite database.
Keep the document beside its extracted records, preserve parent-child relationships, and use the same schema across every file in a collection.
Create the columns and related tables your documents should populate.
Upload one file or a batch. Each document becomes structured records.
Review the results, query with SQL, or download CSV, JSON, and SQLite.
Visual schema builder
Create a table, name each field, and model repeating details as related records before processing a document.
Intuitive Extraction Workflows
Watch statements, purchase orders, and customer data become clean, reusable and portable records.
SQL query workspace
Run read-only SQL, inspect result counts, and switch between table and JSON views without leaving the project.
Create extraction jobs, monitor their status, and retrieve structured rows through the same `/v1` resources used across the product.
Scoped API Keys
Create project-scoped credentials and grant integrations only the routes they need.
Flat Resource Model
Use one `/v1` surface for tables, rows, documents, and jobs without deeply nested project paths.
OpenAPI Spec
Generate typed clients from `/v1/openapi.json` or explore requests in the interactive reference.
Paginated Row Queries
Retrieve structured rows from any table with filters, pagination, and stable response shapes.
# 1. List tables in the active project
curl https://api.pdfparse.net/v1/tables \
-H "Authorization: Bearer pk_live_..." \
# 2. Submit documents for extraction
curl -X POST https://api.pdfparse.net/v1/jobs \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-d '{"tableSlug":"invoices","documentKeys":["file_a","file_b"]}'
# → { "id": 123, "status": "queued" }
# 3. Query extracted rows when complete
curl -X POST \
"https://api.pdfparse.net/v1/rows/search" \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-d '{"table_id":"tbl_inv","filters":[],"page":1,"pageSize":50}'
# → {
# "results": [{ "vendor": "Acme Corp", "total": 4200.00, "row_id": "tbl_inv:file_a" }],
# "total": 1
# }Answers to common questions about parsing PDFs into structured data.
See all FAQs →Define the structure once, process every matching document, and leave with tables you can review, query, and export.
Curious about the pipeline? Read the extraction walkthrough →
Free
Basic
Pro
Enterprise