A modern extraction platform

Turn documents into structured data.

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.

Build the structure your data should follow
How it works

From PDF to usable data.

Keep the document beside its extracted records, preserve parent-child relationships, and use the same schema across every file in a collection.

01

Define

Create the columns and related tables your documents should populate.

02

Extract

Upload one file or a batch. Each document becomes structured records.

03

Export

Review the results, query with SQL, or download CSV, JSON, and SQLite.

Visual schema builder

Define the data you need.

Create a table, name each field, and model repeating details as related records before processing a document.

Intuitive Extraction Workflows

Upload. Extract. Download.

Watch statements, purchase orders, and customer data become clean, reusable and portable records.

SQL query workspace

Work with the results.

Run read-only SQL, inspect result counts, and switch between table and JSON views without leaving the project.

02
REST APINow Available

Extract at scale from your code.

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
#   }
04
FAQ

Common Questions.

Answers to common questions about parsing PDFs into structured data.

See all FAQs →
05
Get Started

Your documents already contain the data.

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 →