What we will not show you
Every figure below is one people ask for constantly. None of them exists in public US data. We return nothing rather than an estimate.
| Requested figure | Status | Why |
|---|---|---|
| F-1 refusal rate for India (or any one country) | Not published | Refusal rates by nationality exist for B visas only. By class, only a worldwide figure exists. |
| H-1B refusal rate by nationality | Not published | Same gap. USCIS's H-1B Employer Data Hub carries no beneficiary nationality field at all. |
| Approval rate at a specific consulate | Not published | Monthly files exist by post and by nationality, but are never crossed — and neither carries refusals. |
| 214(b) or 221(g) rate for a country or class | Not published | Refusal grounds are published globally with no class and no nationality split. |
| Any refusal figure at monthly frequency | Not published | All monthly State Department files are issuances only. |
| H-1B lottery odds by nationality | Not published | Selection rate is released as a single global number in a news post. |
| FY2017 and FY2018 nationality refusal rates | Never published | Both PDFs return 404 at the source. Our charts break the line rather than interpolating. |
The statute
8 U.S.C. § 1202(f) makes State Department and consular records on the issuance or refusal of visas confidential, with narrow exceptions for courts and for reciprocal law-enforcement sharing. It operates as a FOIA Exemption 3 withholding statute, so record-level requests are refused as a matter of course.
The three dimensions people want — refusal ground, visa class, nationality — are each published, but only as separate marginal tables. The cross-tabulation does not exist in any public US dataset. That is a publication decision, not a scraping problem, and no amount of engineering produces it.
Anyone displaying a per-country, per-class refusal rate is doing one of three things: mislabelling a worldwide figure as a national one, interpolating, or making it up.