The last form you
fill by hand.

Securely digitize, extract, fill, sign, and send any form, wherever and however you need.

ACCOUNT APPLICATION
Form A-100 · page 1 of 2
Applicant name
Maria T. Chen
Date of birth
02/14/1961
Account no.
4482-9107
Mailing address
44 Birch Ln, Portland, ME
Applicant signature
VEHICLE REGISTRATION
Form VR-7 · renewal
Owner name
Maria T. Chen
Plate no.
4CQ·910
VIN
1HGBH41JXMN109186
Odometer
48,210 mi
Owner signature
LEASE AGREEMENT
Unit 3B · 12-month term
Tenant name
Maria T. Chen
Unit
3B — 44 Birch Ln
Monthly rent
$1,450
Move-in date
09/01/2026
Tenant signature
EVENT PERMIT
Form EP-12 · city parks
Applicant
Maria T. Chen
Venue
Deering Oaks Park
Event date
08/12/2026
Attendance
250
Applicant signature
{
  "template": "account_app_v2",
  "name": "Maria T. Chen", // handwritten
  "dob": "1961-02-14",
  "account": "4482-9107", // filled
  "needs": "signature"
}
{
  "template": "vehicle_reg_vr7",
  "owner": "Maria T. Chen", // handwritten
  "plate": "4CQ-910", // filled
  "odometer": 48210,
  "needs": "signature"
}
{
  "template": "lease_agreement_3",
  "tenant": "Maria T. Chen", // handwritten
  "rent": 1450, // filled
  "move_in": "2026-09-01",
  "needs": "signature"
}
{
  "template": "event_permit_12",
  "applicant": "Maria T. Chen", // handwritten
  "venue": "Deering Oaks Park", // filled
  "attendance": 250,
  "needs": "signature"
}

Everything for forms.

Simple operations that compose into any workflow.

Digitize anything.

Scans, faxes, and photos become fillable digital documents. Every form processed and each field detected.

FORM W-9
LEASE
PERMIT
INVOICE
ENROLLMENT
REGISTRATION
APPLICATION
RELEASE
FAX SCANNER PHOTO EMAIL UPLOAD PORTAL PDF PAPER

Collect at scale.

Share fillable forms or let users upload their own. Collect data and signatures securely. Completed forms arrive in one inbox.

forms.acme.co/intake
Drop a completed form, or snap a photo
247 received✓ 243 extracted4 in review

Secure filling on autopilot.

Your data fills the form, and a signature completes it. Nothing leaves your system. 

nameMaria T. Chendocument
account4482-9107record
address44 Birch Ln, Portland, MErecord
phone(207) 555-0142record
Maria T. Chen14:02 UTC
Designed to comply with the ESIGN Act and UETA.

Publish anywhere.

Templatize forms automatically and publish anywhere. A modern web form, and the original PDF — pixel for pixel.

PDF
WEB FORM

End with structure, not RAG.

Every completed form returns clean data. Every value keeps its source. Write it to a database, or search it with precision.

{
  "name": "Maria T. Chen", // document
  "account": "4482-9107", // filled
  "signed": "2026-07-30T14:02Z"
}
→ postgres→ webhook→ CSV→ search

For people, teams,
agents, and developers.

FOR PEOPLE

An app for everything.

Scan any form with your phone, fill it, sign it, and send it where it needs to go. Your information stays with you and fills the next form automatically.

Get early access
FOR TEAMS

A shared inbox for forms.

All of your teams' intake and processing workflows in one place. Securely handle and track data no matter how they come, or where they go.

Join the waitlist
FOR AGENTS

Paperwork, as tools.

Over MCP, an agent can read a form, fill it from context, and request the signature only a person can provide.

user  open a new account for Maria Chen
agent ✓ filled 11 of 12 fields from record
agent → 1 signature — sent to Maria Chen
MCP server, coming soon
COMING SOON

For developers.

A REST API for your backend, an SDK for your app, and an MCP server for your agent — the same model underneath.

mcp.jsonworks with any MCP client
// Any MCP client — one entry:
{
  "mcpServers": {
    "fillmyforms": { "url": "https://mcp.fillmyforms.com" }
  }
}

// Your agent can now use five tools:
form_digitize   image or pdf → fielded document
form_template   document → reusable template
form_fill       template + data → completed form
form_sign       request a human signature
form_extract    completed form → key-value data
# Extract structured data from a document:
curl -X POST https://api.fillmyforms.com/v1/extract \
  -H "Authorization: Bearer $FMF_KEY" \
  -F file=@application_scan.jpg

{
  "template": "account_app_v2",
  "confidence": 0.97,
  "fields": { "name": "Maria T. Chen", … },
  "needs": ["signature"]
}
import { FillMyForms } from "@fillmyforms/sdk";

const fmf = new FillMyForms(process.env.FMF_KEY);

const doc = await fmf.digitize(photo);
await doc.fill({ applicant: record });
await doc.sign({ request: "applicant" });
const data = await doc.extract();
Same functionality, any medium. Join the waitlist
Coming soon: npx @fillmyforms/mcp · pip install fillmyforms

Get early access.

We're onboarding people, teams, and developers now. Tell us what you're working on.