Data extraction tool built for developers
PdfParse is one engine with two ways in. Developers call the API or the Python and Node SDKs. Operations teams use the web app to upload files, apply schemas and export CSV without writing code. Below is every module and the plan that includes it.
Test the modules on page one
Pick a sample invoice, a two column research page or a scanned form, or drop your own file. Add a few field names in the "Fields to extract" box to see schema extraction on the same page.
What one call returns
Page one rendered with every block outlined, next to the JSON your code receives.
- Reading text layer
- Detecting layout
- Extracting tables
- Building JSON
Headings, paragraphs, tables and totals detected
Portsmouth, NH 03801
| Description | Qty | Unit | Amount |
|---|---|---|---|
| Oak countertop, 2.4 m | 2 | 640.00 | 1,280.00 |
| Cabinet doors, shaker | 12 | 85.00 | 1,020.00 |
| On site fitting | 1 | 450.00 | 450.00 |
Quote the invoice number with your transfer.
Goods remain ours until paid in full.
Pages 2 and later are parsed after you create an account.
{ "document": { "pages": 2, "parsed_pages": 1, "language": "en" }, "pages": [ { "number": 1, "blocks": [ { "type": "heading", "text": "Invoice", "bbox": [48, 52, 132, 84] }, { "type": "paragraph", "text": "Harbor Street Joinery, 14 Dock Lane, Portsmouth" }, { "type": "key_value", "pairs": { "Invoice no.": "INV-2026-0418", "Issued": "Oct 14, 2026", "Due": "Nov 13, 2026" } }, { "type": "table", "columns": ["Description", "Qty", "Unit", "Amount"], "rows": [ ["Oak countertop, 2.4 m", 2, 640.00, 1280.00], ["Cabinet doors, shaker", 12, 85.00, 1020.00], ["On site fitting", 1, 450.00, 450.00] ] }, { "type": "total", "label": "Total due", "value": 2983.75, "currency": "USD", "confidence": 0.98 } ] } ], "fields": { "invoice_number": { "value": "INV-2026-0418", "confidence": 0.99, "page": 1 }, "total": { "value": 2983.75, "confidence": 0.98, "page": 1 }, "due_date": { "value": "2026-11-13", "confidence": 0.97, "page": 1 } } }
Downloads from the demo include a watermark field and cover page one only.
Page one is parsed in your browser, so your file never reaches our servers.
One demo per day from this network. Create an account to parse more pages.
$ curl https://api.pdfparse.ai/v1/parse \ -H "Authorization: Bearer $PDFPARSE_API_KEY" \ -F file[email protected] \ -F outputs=json,markdown,csv
Modules by plan
| Module | Starter | Growth | Scale | Enterprise |
|---|---|---|---|---|
| REST API, web app, JSON, Markdown and CSV | Yes | Yes | Yes | Yes |
| Table extraction | Yes | Yes | Yes | Yes |
| OCR for scanned pages | Yes | Yes | Yes | Yes |
| Python and Node SDK | Yes | Yes | Yes | Yes |
| Custom extraction schemas | No | Up to 10 | Unlimited | Unlimited |
| Webhooks | No | Yes | Yes | Yes |
| Batch jobs, up to 500 files per job | No | Yes | Yes | Yes |
| RAG chunks with metadata | No | Yes | Yes | Yes |
| Form field and checkbox detection | No | No | Yes | Yes |
| Usage reports per API key | No | No | Yes | Yes |
| Retention controls | 7 days | Up to 30 days | Zero retention mode | Zero retention mode |
| Audit log | No | No | Yes | Yes |
| SSO with SAML, roles and permissions | No | No | No | Yes |
PdfParse compared with the usual alternatives
Most teams start with a PDF library, an OCR engine or a person retyping values. This is what each one gives you on a real document.
| What you need | PdfParse | Open source PDF library | Plain OCR engine | Manual keying |
|---|---|---|---|---|
| Tables with merged cells | Rows, columns and spans rebuilt | Ruled tables only, spans fixed by hand | Lines of text, no table structure | Retyped cell by cell |
| Scanned pages | OCR, then the same layout and table detection | A separate OCR step to wire in | Text only, no layout | Read by eye |
| Your own fields | Schemas return exactly your keys | Custom code for every layout | Custom code for every layout | A spreadsheet template |
| Chunks for RAG | Section path, pages and bounding boxes | Your own splitter | Not included | Not included |
| Webhooks and batch jobs | Signed webhooks, up to 500 files per job | Your own queue and retries | Your own queue and retries | Not included |
| Confidence scores | On every block and field | Not included | Per word only | Depends on the reviewer |
| Time to first result | One API call, under ten minutes from signup | Days of tuning per layout | Hours, then cleanup code | Minutes per page, on every page |
Tables that survive the trip
Tables are detected as their own blocks, with rows and columns rebuilt from ruling lines, spacing and alignment. Merged header cells are expanded so each column keeps a usable name. A table that breaks across a page is stitched back into one table, and the response records the page where it starts.
Each table comes back three ways. As structured rows in JSON, as a Markdown table inside the document text, and as a separate CSV string you can write straight to a file or load into a spreadsheet. Included in every plan.
Form fields and checkboxes
Application forms, tax forms and onboarding packets carry their meaning in boxes, not paragraphs. Form field detection pairs each label with its value, and checkbox detection reports whether a box is ticked, both as typed blocks with a bounding box and a confidence value. It works on filled digital forms and on scanned paper forms. Included in Scale and Enterprise.
OCR for scanned pages
Scans, phone photos and faxed pages go through OCR when they have no text layer. The output is the same structure you get from a digital PDF, with headings, paragraphs and tables, not a flat stream of words. You choose auto, always or off per request. Included in every plan. See the OCR API page for scan quality tips.
Custom extraction schemas
A schema is a list of fields you want from a document type, each with a name, a type and a short description. Types are string, number, date, money, boolean and array. Every returned field carries a confidence value and the page it came from. Growth stores up to 10 schemas. Scale and Enterprise store as many as you need. Operations teams can build and edit schemas in the web app without touching code.
RAG chunks with metadata
For search and retrieval, PdfParse splits the parsed document by section and keeps each chunk under the token size you set. Every chunk includes its text, start page, end page, the path of headings above it and a bounding box, so your answers can cite the exact place in the source. Included in Growth and above. Read more on PDF parsing for retrieval pipelines.
Webhooks
Instead of polling, register an endpoint and receive parse.completed or parse.failed when a job ends. Each delivery is signed with the PdfParse-Signature header using HMAC SHA256, and failed deliveries are retried with backoff. Included in Growth and above.
Batch jobs
Send up to 500 files in a single batch with POST /v1/batches and track the whole set with one id. An Idempotency-Key header makes a retried request safe, so a network timeout never creates a duplicate batch. Included in Growth and above.
Python and Node SDKs
Both SDKs wrap authentication, uploads, job polling, retries and typed results. Start with the Python PDF parser guide or the PDF parse npm package guide. Included in every plan.
Web app for operations teams
The same engine runs behind a browser interface. Upload a folder of documents, pick a schema, review fields with low confidence side by side with the page, and export CSV for the finance or operations system that needs it. Seats are 1 on Starter, 3 on Growth, 10 on Scale and 25 on Enterprise.
Usage per API key
Starter has 1 API key, Growth 5, Scale 20 and Enterprise has as many as you need with limits per key. On Scale and Enterprise, usage reports break pages down by key, so you can see which product, customer environment or team is consuming the allowance.
Retention controls
Starter keeps files and results for 7 days. Growth lets you choose a retention period up to 30 days. Scale and Enterprise add zero retention mode, where nothing is stored after delivery. Files are encrypted in transit and at rest and are never used to train models.
Audit log
Scale and Enterprise record who created keys, changed schemas, altered retention settings and downloaded results. The log helps security reviews and internal audits answer the question of who touched what and when.
Single sign on and roles
Enterprise adds SSO with SAML, roles and permissions, a choice of EU or US processing region, a DPA, invoicing with net terms after the first paid month and a dedicated support channel. Checkout is self serve, the same as every other plan. More detail on secure document processing.
FAQ
Which plan do I need for form and checkbox detection?
Scale or Enterprise. Starter and Growth return text, tables and layout from forms, but labelled form fields and checkbox states are part of Scale and above.
Can non technical staff use the data extraction tool?
Yes. The web app is included in every plan. Staff upload files, apply a schema, review fields and export CSV without writing code, while developers use the same schemas through the API.
How many schemas can I create?
Growth stores up to 10 schemas. Scale and Enterprise have no schema limit. Starter uses the standard JSON, Markdown and CSV outputs without custom schemas.
Is there a limit on batch size?
A batch job holds up to 500 files. You can run several batches, and the number of jobs processed at the same time follows your plan.
Can I move between plans later?
Yes. Upgrading charges the difference right away and the new limits apply at once. You can cancel from billing settings, and access runs to the end of the paid period.
Every module, one API key away
Choose the plan with the modules you need and start sending files.