Find Underserved Areas
fcc_find_underservedFinds geographic areas with limited or no broadband coverage at a given speed threshold, ranked by unserved population. Supports historical population screening and broadband equity research; it cannot establish current BEAD eligibility or address service. 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).
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "fcc_find_underserved"
}
}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. | |
| offset | No | Number of globally ranked matching areas to skip. | |
| speed_down | No | Download key for a download/upload threshold pair in Mbps: 0.2=0.2/0.2, 4=4/1, 10=10/1, 25=25/3, 100=100/10, 250=250/25, 1000=1000/100. These historical population aggregates cannot establish current BEAD eligibility or address service; 100/10 does not establish 100/20 availability. | 25 |
| tech_filter | No | Any nonempty alphabetical combination of a=ADSL/DSL, c=cable, f=fiber, o=other (symmetric DSL, other copper, power line), s=satellite, w=fixed wireless. Default acfow excludes satellite; explicit acfosw includes every technology. acfow includes all fixed wireless and is not an exact program-technology eligibility filter. | acfow |
| geography_type | No | Geographic granularity for historical population screening. "county" = county. "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. | |
| offset | No | Number of ranked matching areas skipped. | |
| truncated | No | True when more areas matched than the limit returned. Absent when not truncated. | |
| nextOffset | No | Next offset when another ranked page remains. | |
| 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. |