Deterministic PDF form filling

Fill any PDF form.
One API call.

Turn a row from your workflow into a perfectly filled, flattened PDF — native AcroForm or scanned paper — in milliseconds. On your own infrastructure.

~64 ms / page100% placement on native formsSelf-hosted, GDPR-grade

application_form.pdf

12 fields · 74 ms

Ready

Last name

Mustermann

acroform

First name

Erika

acroform

Street address

King Street 12

template

Insurance no.

K 123 456 789

ocr

Placement from the document itself — never guessed by a model.

Drops straight into

n8nMake.comcurl / HTTPRESTZapierSelf-hosted

The node your paperwork was waiting for

One HTTP call between “new row” and “send email.”

FormFill handles the part that used to be somebody’s Tuesday afternoon — no clicking, no typing.

Trigger

New application arrives

Webhook · POST

Data

Master data looked up

Postgres · SELECT

FormFill

The form gets filled

HTTP Request → /v1/fill

12 fields · 74 ms

Output

Filled PDF sent on

Send Email · attach

webhook → data → formfill → sent · nobody typed anything

1

Send the form

Upload the PDF or point us at a URL. Native AcroForm or a scanned paper form — both just work.

2

We register every field

Positions come from the document itself — widget rectangles, template boxes, OCR anchors. Never guessed.

3

Get the sheet back

A flattened PDF plus a JSON report: what was filled, from where, and how confidently — ready to route.

The whole integration

One request.
No SDK to babysit.

  • PDF in, filled PDF out. Flattened and ready to send — or take the JSON report alone.
  • Every field accounted for. Value, source, and a confidence score you can route reviews on.
  • XFA refused loudly. A 422, never a silent wrong answer.
curl -s https://formfill.your-host.example/v1/fill \
  -H "Authorization: Bearer $FORMFILL_KEY" \
  -F "document=@application_form.pdf" \
  -F 'values={"applicant_last_name":"Mustermann","applicant_first_name":"Erika"}'

Fine print, large type

Asked & answered.

Honesty is a feature. If something doesn’t work, we say so — loudly, with a status code.

Does it handle scanned paper forms?

Yes — that’s the party trick. Register the blank once; every incoming scan is aligned against it with computer-vision registration and filled. Paper-only forms included.

What about XFA forms?

Refused loudly with a 422— never silently wrong. You’ll know exactly which documents need a different path.

Where does my data go?

Nowhere. FormFill runs on your own infrastructure — no third-party clouds, nothing leaves your network. Built for GDPR-grade workloads.

How does it plug into n8n or Make.com?

The dashboard writes the node for you — copy, paste, done. Anywhere else, it’s one curl.

Start filling forms in
five minutes.

Create an account, upload a form, and paste the node into n8n or Make. The first filled PDF is the demo.