Fillable PDF Form Data Extractor: Batch Forms to CSV & Excel avatar

Fillable PDF Form Data Extractor: Batch Forms to CSV & Excel

Pricing

$0.75 / 1,000 pdf form processeds

Go to Apify Store
Fillable PDF Form Data Extractor: Batch Forms to CSV & Excel

Fillable PDF Form Data Extractor: Batch Forms to CSV & Excel

Merge hundreds of filled PDF forms (AcroForm and XFA) into one spreadsheet: one row per PDF, one column per field. Checkbox and radio values, stable column mapping, per-file status so one bad file never stops the batch, and a template-drift report that flags old form versions.

Pricing

$0.75 / 1,000 pdf form processeds

Rating

0.0

(0)

Developer

Ricky Lee

Ricky Lee

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Merge hundreds of filled PDF forms (AcroForm and XFA) into one spreadsheet: one row per PDF, one column per field. Checkbox and radio values, stable column mapping, per-file status so one bad file never stops the batch, and a template-drift report that flags old form versions.

Built for HR, school and nonprofit offices, intake teams and program officers who send out one fillable PDF and get back dozens to thousands of completed copies. You don't need an Acrobat Pro seat, and you don't have to write a script.

Features

  • One row per PDF, one column per field. Field values are read from the PDF's form data, not from page text. No guessing and no OCR.
  • One bad file never stops the batch. Each row has a status (ok, no_form_fields_flattened, encrypted, corrupt, download_failed) and an error message. Acrobat's "Merge Data Files into Spreadsheet" fails the whole export when one file is broken. This actor keeps going.
  • Template-drift report. Forms are grouped by their field set. Any PDF whose fields differ from the majority is flagged is_template_outlier, and the report lists the missing, extra and likely renamed fields (usually a sign that someone filled in an old version of the form).
  • Checkboxes and radios done right. Checkboxes output their export value (Yes / Off, or the custom on-value) or TRUE/FALSE. Radio groups output the selected option name, including /Opt-indexed groups. When a viewer saved the tick only in the widget appearance state and left the field value empty, the tick is still read.
  • XFA support. The actor reads the XFA datasets packet for Adobe LiveCycle and dynamic forms whose AcroForm fields are empty or missing.
  • Stable layout for every intake cycle. Map PDF field names to friendly column names, set the column order, and map old and new field names to one column. Schedule the actor against the same ZIP or key-value store prefix each cycle.
  • Blank-but-ok warning. A form that has fields but no filled values gets a warning instead of passing silently as a blank row.
  • Spreadsheet-safe output. The XLSX stores values as text, so ZIP codes, IDs and phone numbers keep their leading zeros. Values starting with =, +, - or @ cannot run as formulas. The CSV is UTF-8 with a BOM so Excel opens accented and non-Latin text correctly.
  • Handles hierarchical names, duplicate names, password-protected files (open password or owner-only restrictions), and broken XFA packets.

Input

FieldDescription
pdfUrlsDirect HTTPS links to your filled PDFs
zipUrlOne ZIP of PDFs (subfolders are fine; macOS __MACOSX entries are skipped)
keyValueStoreId / keyPrefixAn Apify key-value store you uploaded PDFs to, optionally filtered by key prefix
fieldMappingJSON object of PDF field name → column name
keepUnmappedFieldsKeep fields that are not in the mapping (default on)
columnOrderColumns to put first, in order
checkboxModeexportValue (default) or boolean
includeXfaRead XFA datasets (default on)
escapeFormulasInCsvNeutralise formula-like values in the CSV (default on)
pdfPasswordOpen password for protected PDFs (stored as a secret)

Example:

{
"zipUrl": "https://example.com/intake-october.zip",
"fieldMapping": {"applicant_name": "Name", "ApplicantName": "Name", "dob": "Date of birth"},
"columnOrder": ["Name", "Date of birth"],
"checkboxMode": "boolean"
}

Output

Dataset: one row per PDF.

{"source_file": "form-017.pdf", "status": "ok", "error": null, "warning": null, "form_source": "acroform",
"field_count": 14, "filled_field_count": 12, "template_signature": "3f9c0a1b22de", "is_template_outlier": false,
"Name": "Jane Doe", "Date of birth": "1990-04-02", "zip": "02134", "consent": true, "plan": "Gold"}

Key-value store:

  • merged.csv and merged.xlsx: the merged table (frozen header row, text cells)
  • template_report.csv: one row per template version, with file count, missing, extra and renamed fields, and file names
  • field_inventory.json: every field with its type, how many files contain or fill it, and the checkbox, radio and choice options seen

Pricing (pay per event)

EventPrice
PDF form processed (status ok)$0.00075 ($0.75 per 1,000 forms)
Flattened, encrypted, corrupt or undownloadable fileFree

Example: a 500-form intake cycle costs $0.38.

Privacy and limits

  • The actor processes only the files you supply. It does no web scraping and sends nothing to third parties.
  • Results are written to your run's own dataset and key-value store, under your Apify account's retention settings. Delete them when you're done if the forms hold personal data.
  • There is no OCR. Scanned or flattened forms are reported as no_form_fields_flattened and are not charged.
  • Limits: 50 MB per PDF and 500 MB per ZIP.