USCIS H-1B Employer Data Hub Scraper
USCIS H-1B Employer Data Hub Scraper
Collect H-1B petition approval and denial counts from the official USCIS H-1B Employer Data Hub. Returns initial and continuing approvals/denials per employer, per fiscal year, along with NAICS code, masked tax ID, and location — covering fiscal years 2009 through 2023 (roughly 832,000 records).
This is USCIS's own adjudication data — who actually got approved or denied — not the Department of Labor's LCA wage-attestation filings that most other H-1B datasets are built from. If you want approval rates by employer, this is the source that has them.
USCIS H-1B Employer Data Hub Scraper Features
- Pulls every published fiscal year in one run, or a specific set you choose
- Returns initial and continuing approval/denial counts separately — enough to compute an employer's approval rate for any given year
- Includes NAICS industry code, masked tax ID, and employer city/state/ZIP for every record
- Auto-detects new fiscal years as USCIS publishes them — no waiting on an update to get the latest data
- Handles USCIS's own header-naming inconsistencies across years so every record comes out in the same shape, whether it's from FY2009 or FY2023
- Employer name is
nullon records where USCIS itself suppresses it for privacy (very low petition counts) — the counts are still returned
What Can You Do With USCIS H-1B Employer Data Hub Data?
- Immigration attorneys — set realistic client expectations by pulling an employer's historical approval rate before filing
- Foreign workers evaluating offers — compare a prospective employer's approval/denial history against competitors before accepting
- Recruiters and staffing agencies — screen client companies for H-1B sponsorship reliability, not just whether they've filed before
- Researchers and journalists — analyze approval trends by industry (NAICS), state, or year across a 15-year window
- Compliance and HR teams — benchmark your own company's approval rate against peers in the same NAICS code
How USCIS H-1B Employer Data Hub Scraper Works
- Pick which fiscal years you want, or leave it blank for everything USCIS has published.
- The actor fetches each fiscal year's dataset from USCIS and normalizes the records into one consistent schema — USCIS has renamed its own column headers more than once since 2009, and that gets ironed out here.
- Records save to your dataset as they're processed, so a capped run (via
maxItems) still returns clean, complete rows rather than a partial file.
Input
{
"maxItems": 15,
"fiscalYears": ["2022", "2023"]
}
| Field | Type | Default | Description |
|---|---|---|---|
maxItems |
Integer | 15 | Maximum number of records to collect across all selected fiscal years |
fiscalYears |
Array of strings | (all years) | Fiscal years to include, e.g. ["2022", "2023"]. Leave empty to collect every fiscal year USCIS has published |
USCIS H-1B Employer Data Hub Scraper Output Fields
{
"fiscalYear": "2023",
"employerName": "1 800 CONTACTS INC",
"taxIdMasked": "1643",
"naicsCode": "42",
"petitionerCity": "DRAPER",
"petitionerState": "UT",
"petitionerZip": "84020",
"initialApprovals": 0,
"initialDenials": 0,
"continuingApprovals": 1,
"continuingDenials": 0,
"sourceFile": "h1b_datahubexport-2023.csv"
}
| Field | Type | Description |
|---|---|---|
fiscalYear |
String | USCIS fiscal year the record covers |
employerName |
String | Petitioning employer name (null when USCIS suppresses it for low counts) |
taxIdMasked |
String | Employer tax ID, masked/truncated as published by USCIS |
naicsCode |
String | Employer industry NAICS code |
petitionerCity |
String | Employer city |
petitionerState |
String | Employer state |
petitionerZip |
String | Employer ZIP code |
initialApprovals |
Integer | Initial H-1B petitions approved for this employer/year |
initialDenials |
Integer | Initial H-1B petitions denied for this employer/year |
continuingApprovals |
Integer | Continuing (extension/amendment) petitions approved |
continuingDenials |
Integer | Continuing (extension/amendment) petitions denied |
sourceFile |
String | USCIS source file this record was extracted from |
FAQ
How do I scrape the USCIS H-1B Employer Data Hub?
Run this actor with no input for every fiscal year on record, or set fiscalYears to the specific years you need. Each run returns structured JSON — no manual CSV downloads.
What data can I get from the USCIS H-1B Employer Data Hub?
Approval and denial counts for initial and continuing H-1B petitions, broken out by employer and fiscal year, plus NAICS code and location. It's the adjudication outcome — not the wage or job-title data found in DOL LCA filings.
Can I filter by fiscal year?
Yes. Pass an array of years to fiscalYears, e.g. ["2020", "2021", "2022"]. Leave it empty and you get every year USCIS has published, from FY2009 forward.
How much does USCIS H-1B Employer Data Hub Scraper cost to run?
Pay-per-result pricing — a small run fee plus a per-record charge. A full historical pull (~832,000 records) costs more than a filtered single-year run; use maxItems and fiscalYears to control spend.
Does this include the most recent fiscal year?
It includes every year USCIS has published as a downloadable dataset. USCIS publishes new fiscal years periodically, and this actor picks them up automatically on the next run — no waiting for an update.
Need More Features?
Need custom fields, a different filter, or a related USCIS dataset? File an issue or get in touch.
Why Use USCIS H-1B Employer Data Hub Scraper?
- The outcome, not the intent — most H-1B actors scrape DOL LCA filings, which only show who applied to sponsor. This is USCIS's own record of who got approved.
- Fifteen years in one schema — USCIS has changed its own CSV column names more than once since 2009. Every record here comes out the same shape regardless of which fiscal year it's from.
- Self-updating coverage — new fiscal years get picked up automatically as USCIS publishes them, with no actor update required.