Registry

DS-11 — programmatic fill compatibility

Application for a U.S. Passport · US Department of State, Bureau of Consular Affairs · DS-11 04-2025. Tested 2026-08-06 on the unmodified upstream blank — every number below comes from a recorded run, not from documentation.

Verdict at a glance

ToolVersionResultDetail
pdfops APIhosted, tested 2026-08-06verified + deterministic flatten83/83 supported fields landed; flatten=true byte-deterministic (sha256 2bf6aa870757…)
pdf-lib1.17.1verified (83/83)83 fields filled in-process
@cantoo/pdf-lib (fork)2.6.5verified (83/83)83 fields filled in-process
pypdf6.15.0text fields verified (63/63)63 text fields written and re-read (text fields only)
pdftk-java3.3.3verified (83/83)83 fields filled via FDF and re-dumped
qpdf --check11.9.0warningsWARNING: public/registry/blank/state-ds-11.pdf: page 5: shared object 671: in hint table but not computed list | qpdf: operation succeeded with warnings
poppler render check24.02.0values render (63/63)63/63 filled text values present in pdftotext output of the pdf-lib-filled file; page-1 raster sha256 014ecc455e42…

File facts

Quirks & limitations

Tested request

This exact shape ran against the live API during the recorded test (values here shortened to two fields; the test filled all 83 supported fields). With flatten=true, two identical runs produced byte-identical output — sha256 2bf6aa87075741910fbf1ff37396af06d98f1effb1f934de1a9e63c6ec158dd3.

curl -X POST https://pdfops.dev/api/fill-form \
  -F "pdf=@state-ds-11.pdf" \
  -F 'fields={"Address Line 2":"PDFops","List all other name you have used":"PDFops"}' \
  -F "flatten=true" \
  -o filled.pdf

Enumerate all 84 field names first with the inspector or POST /api/inspect.

Field schema

All 84 fields (name, type, maxLength, options)
Field nameTypemaxLengthOptions
Address Line 2TextField36
List all other name you have usedTextField13
List all other names you have usedTextField13
Hair ColorTextField
Eye ColorTextField
Emergency Contact NameTextField
Emergency Contact AddressTextField
Emergency Contact CityTextField
Emergency Contact Zip CodeTextField6
Emergency Contact PhoneTextField
Relationship to ApplicantTextField
Countries to be visitedTextField
Travel Return DateTextField
Your name as printed on your most recent U.S. passport book and/or passport cardTextField
SelectionCheckBox
Regular or Large BookCheckBox
GenderCheckBox
Parent 1 GenderCheckBox
Parent 2 US CitizenCheckBox
Parent 2 GenderCheckBox
Parent 1 US CitizenCheckBox
Spouse US CitizenCheckBox
Additional #CheckBox
Ever Applied or IssuedCheckBox
Ever MarriedCheckBox
Applicant Place of BirthTextField18
Applicant Last NameTextField21
Applicant First NameTextField17
Applicant Middle NameTextField16
Applicant DOB MTextField2
Applicant DOB YTextField4
Applicant SSN 1TextField3
Applicant Address StateTextField2
Applicant Address Zip CodeTextField6
Applicant Address CountryTextField12
Applicant Address StreetTextField36
Applicant Phone 3TextField4
Applicant SSN 3TextField4
Applicant DOB DTextField2
Applicant SSN 2TextField2
Applicant Phone 1TextField3
Applicant Phone 2TextField3
Emergency Contact Apartment/UnitTextField
Permanent Address CityTextField
Permanent Address StreetTextField
Permanent Address Apartment/UnitTextField
Permanent Address StateTextField2
Permanent Address Zip CodeTextField6
Applicant DOB 2TextField
Name of Applicant 2TextField
Parent 1 FM NameTextField
Parent 1 Last NameTextField
Parent 1 DOBTextField
Parent 2 FM NameTextField
Parent 2 Last NameTextField
Parent 2 DOBTextField
Full Name of Current Spouse or Most Recent Spouse (Last, first, Middle)TextField
Current Spouse Date of BirthTextField
Current Spouse Place of BirthTextField
Date of Marriage (mm/dd/yyyy)TextField
Widow/Divorce Date (mm/dd/yyyy)TextField
Applicant Additional Contact Phone NumbersTextField
OccupationTextField
Employer or SchoolTextField
HeightTextField
Travel Departure DateTextField
ClearButton
Circumstances of lost/stolen book/cardTextField250
Alien NumberTextField9
Applicant EmailTextField
Applicant Address CityTextField14
Name as printed on your most recent passport cardTextField
Parent 2 Place of BirthTextField
Parent 1 Place of BirthTextField
DivorcedCheckBox
Book Status SubmittingCheckBox
Book Status StolenCheckBox
Book Status LostCheckBox
Book Status PossessionCheckBox
Card Status SubmittingCheckBox
Card Status StolenCheckBox
Card Status LostCheckBox
Card Status PossessionCheckBox
Emergency Contact StateTextField2

Frequently asked

Can I fill the DS-11 programmatically?

Yes — the blank DS-11 04-2025 DS-11 is a fillable AcroForm with 84 fields. In our tested run, all 83 supported fields were filled through the pdfops API and verified by re-inspecting the output; upstream pdf-lib also round-trips it, and pypdf handled its text fields. Field names are listed in the schema on this page.