Skip to content
Docs Security Sign in
PdfParse

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.

Parse PDF
A printed invoice pinned with a pushpin to a cork strip beside a monitor that shows a dark editor with coloured brackets, lit by a desk lamp at night

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.

Drop a PDF or scan

PDF, PNG or JPG up to 10 MB. Page one is parsed in full, right here.

Or try a sample file
Output

Optional. Comma separated field names, for example invoice_number, total, due_date.

Page one is parsed in your browser and never uploaded. No card needed to try page one.

What one call returns

Page one rendered with every block outlined, next to the JSON your code receives.

  1. Reading text layer
  2. Detecting layout
  3. Extracting tables
  4. Building JSON
Rendered page Page 1 of your document

Headings, paragraphs, tables and totals detected

heading
Invoice
paragraph
Harbor Street Joinery
14 Dock Lane
Portsmouth, NH 03801
key_value
Invoice no.INV-2026-0418IssuedOct 14, 2026DueNov 13, 2026
table
DescriptionQtyUnitAmount
Oak countertop, 2.4 m2640.001,280.00
Cabinet doors, shaker1285.001,020.00
On site fitting1450.00450.00
total
Subtotal2,750.00Tax 8.5%233.75Total dueUSD 2,983.75
paragraph
Payment by bank transfer within 30 days.
Quote the invoice number with your transfer.
Goods remain ours until paid in full.
footer
Harbor Street JoineryPage 1 of 2
Locked page

Pages 2 and later are parsed after you create an account.

Output
{
  "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.

Request
The same request from your code
Read the API reference
$ curl https://api.pdfparse.ai/v1/parse \
  -H "Authorization: Bearer $PDFPARSE_API_KEY" \
  -F file[email protected] \
  -F outputs=json,markdown,csv
200 OK, 1 page parsed

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.