Find Underserved Areas
fcc_find_underservedFinds geographic areas with limited or no broadband coverage at a given speed threshold, ranked by unserved population. The core tool for BEAD program analysis and broadband equity research. Accepts a state abbreviation to narrow scope or runs nationwide. Defaults to rural areas where underservice is most concentrated. Data is from FCC Form 477 (as of June 2021).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of areas to return, ranked by unserved population (descending). | |
| state | No | 2-letter USPS state or territory code (e.g., "WY", "MS", "PR") to limit scope. An unrecognized code is rejected, not ignored. Omit for nationwide search — returns top areas only. | |
| speed_down | No | Download speed threshold in Mbps for defining "underserved." 25 = FCC legacy standard. 100 = BEAD program standard. | 25 |
| tech_filter | No | Technology filter. "acfosw" = any wired or fixed wireless. "f" = fiber only. "c" = cable only. | acfosw |
| geography_type | No | Geographic granularity for results. "county" is most useful for policy analysis and BEAD eligibility. "cd" = congressional district. "place" = census-designated place. "cbsa" = metro area. | county |
| min_unserved_pop | No | Minimum population with no coverage to include. Defaults to 1, which keeps fully covered areas out of a ranking of underserved ones. Set to 0 to rank every area regardless of unserved population, or higher to drop small gaps (e.g., 500 keeps only areas with at least 500 unserved residents). | |
| urban_rural_filter | No | Defaults to rural ("R") — where underservice is most concentrated. Use "U" to find underserved urban areas (digital redlining research). Set to "all" for both. | R |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cap | No | The limit that was applied. Present when truncated. | |
| areas | No | Ranked list of underserved areas. | |
| error | No | Present when the call failed. Absent on success. | |
| shown | No | Number of areas returned after applying the limit. Present when truncated. | |
| notice | No | Guidance about the result set — how to broaden the filters when nothing matched, and how to narrow the query when the upstream scan hit its row ceiling. Absent when neither applies. | |
| truncated | No | True when more areas matched than the limit returned. Absent when not truncated. | |
| scanRowCap | No | Raw upstream row ceiling that bound the scan. Present only when scanTruncated is true. | |
| totalFound | No | Total number of areas found before applying the limit filter. | |
| dataVintage | No | Data vintage — Form 477 data as of June 2021. | |
| geographyType | No | Geography type returned. | |
| scanTruncated | No | True when the upstream row scan stopped at its ceiling before reaching the end of the matching data, so totalFound and the ranking cover only the portion that was scanned. Absent when the scan read every matching row. | |
| speedDownMbps | No | Speed threshold used in Mbps. | |
| appliedFilters | No | Filters applied to this query. | |
| urbanRuralFilter | No | Urban/rural filter applied. |