Immigration · U.S. Citizenship and Immigration Services
Fill USCIS Form I-130 programmatically from your case data.
Immigration platforms collect petitioner and beneficiary details once. SimplyFill maps that intake onto the official I-130 — every relationship, address, and biographic field — and returns a flattened, filing-ready PDF.
What is Form I-130?
Form I-130, Petition for Alien Relative, is filed by a U.S. citizen or lawful permanent resident to establish a qualifying family relationship with a relative who wants to immigrate. It is the first step in family-based immigration.
Who files it?
U.S. citizens and lawful permanent residents petitioning for a spouse, child, parent, or sibling — usually assembled by immigration attorneys or legal-tech platforms.
Why filling Form I-130 by hand hurts
The I-130 is a long, multi-page USCIS form with repeated address and relationship history blocks, conditional sections that depend on the relationship type, and strict formatting USCIS rejects if it is off. Filling it in Acrobat for every case — then doing it again for the I-130A — is slow and rejection-prone.
Fill Form I-130 in one call
Fill an I-130 from a case-management record
const res = await fetch('https://api.simplyfill.app/v1/generate', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SIMPLYFILL_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
template: 'uscis_i130_2024',
data: {
petitioner_last_name: 'Lovelace',
petitioner_first_name: 'Ada',
relationship: 'spouse',
beneficiary_last_name: 'Babbage',
beneficiary_first_name: 'Charles',
beneficiary_dob: '1991-12-26',
},
}),
})
const { url } = await res.json()Fields on Form I-130
Real form fields are named for the PDF spec, not for humans — so a single value can hide behind something like topmostSubform[0].Page1[0].f1_02[0]. SimplyFill lets you map your own readable keys to these once, then forget they exist.
| Raw PDF field name | What it means |
|---|---|
| form1[0].#subform[0].Line1_FamilyName[0] | Petitioner last name |
| form1[0].#subform[0].Line1_GivenName[0] | Petitioner first name |
| form1[0].#subform[2].Pt2Line1_FamilyName[0] | Beneficiary last name |
| form1[0].#subform[1].P2_Checkbox_Relationship[0] | Relationship to beneficiary (radio) |
| form1[0].#subform[2].Pt2Line5_AlienNumber[0] | Beneficiary A-Number (if any) |
| form1[0].#subform[3].Pt4Line1_DateOfBirth[0] | Beneficiary date of birth |
Frequently asked questions
Can I generate the I-130 and I-130A together?
Yes. The petitioner and beneficiary data overlap, so the bulk endpoint lets you send one payload and render both the I-130 and the I-130A supplement into a single filing packet.
How are the relationship checkboxes handled?
The relationship section is a set of mutually-exclusive boxes. You send a single `relationship` value (spouse, parent, child, sibling) and SimplyFill checks exactly the right option.
Does the filled form meet USCIS formatting expectations?
SimplyFill writes to the official USCIS template fields and flattens the output, preserving the form’s layout and 2D barcode area so it scans and reviews as the standard form.
Do you keep up with USCIS editions?
Each I-130 edition is a versioned template (e.g. `uscis_i130_2024`). USCIS only accepts current editions, so new editions are added as new versions and you migrate deliberately.
Stop hand-filling Form I-130.
Start with a 14-day free trial. Define the template once, then fill Form I-130 from your data with a single API call.