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. Processed in Germany, deleted afterwards.
application_form.pdf
12 fields · 74 ms
Last name
Mustermann
First name
Erika
Street address
King Street 12
Insurance no.
K 123 456 789
Placement from the document itself — never guessed by a model.
Drops straight into
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 msOutput
Filled PDF sent on
Send Email · attach
webhook → data → formfill → sent · nobody typed anything
Send the form
Upload the PDF or point us at a URL. Native AcroForm or a scanned paper form — both just work.
We register every field
Positions come from the document itself — widget rectangles, template boxes, OCR anchors. Never guessed.
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.
- Dynamic XFA refused loudly. A 422, never a silent wrong answer — while static XFA hybrids simply fill.
curl -s https://forms.baldin.io/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?
Static XFA hybrids — LiveCycle forms with a real widget layer, which covers most government forms — are filled through their widgets and flattened. Dynamic XFA is refused loudly with a 422 — never silently wrong.
Where does my data go?
To our own servers in Germany (Hetzner, Nuremberg) — and nowhere else. No third-party AI clouds, no model training on your data, and uploaded documents and filled values are deleted automatically after 30 days at the latest. The details are in our privacy policy.
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.