Broadband Map receives commissions from partners
Broadband Map Logo
Cell Coverage · Internet Map

API Documentation

Broadband Map's API lets you look up internet providers and cell signal strength at any US location specified by latitude and longitude coordinates.

Data is available at the level of cells in the H3 hexagonal grid system. Accordingly, results at nearby coordinates within the same cell will be identical.1

An API key is required. Plans (including a free demo tier) are on the API plans page.

Authentication

Pass your API key in the Authorization header:

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://broadbandmap.com/api/v1/location/internet?lat=40.758&lng=-73.985"

An X-Api-Key: YOUR_API_KEY header works too. Keys are accepted in headers only.

Requests without a valid key return 401.

Internet Providers at a Location

GET /api/v1/location/internet?lat={lat}&lng={lng}

Returns internet providers available at the given coordinates.

Parameters

NameRequiredDescription
latYesLatitude, -90 to 90
lngYesLongitude, -180 to 180
service_typeNoresidential (default) or business

Example Request

curl "https://broadbandmap.com/api/v1/location/internet?lat=40.758&lng=-73.985"

Example Response

{
  "lat": 40.758,
  "lng": -73.985,
  "h3_hex": "882a100d67fffff",
  "h3_resolution": 8,
  "service_type": "residential",
  "count": 3,
  "providers": [
    {
      "name": "Verizon",
      "technology": "Fiber",
      "max_download_mbps": 2300,
      "max_upload_mbps": 2300
    },
    {
      "name": "Spectrum",
      "technology": "Cable",
      "max_download_mbps": 1000,
      "max_upload_mbps": 1000
    },
    {
      "name": "T-Mobile",
      "technology": "Fixed Wireless",
      "max_download_mbps": 100,
      "max_upload_mbps": 20
    }
  ]
}

Technology Values

The technology field is one of: Fiber, Cable, DSL, Fixed Wireless, GSO Satellite, LEO Satellite, Other. New technology values and response fields may be added over time.

Speed Values

Speed values are usually the maximum advertised speeds ISPs report to the FCC. However, there's a quirk in the FCC reporting rules. Services below 25/3 Mbps aren't reported with their real speeds. They're bucketed into two tiers, so these speed combinations resemble codes rather than actual speeds:

Reported speedsMeaning
0 down / 0 upService exists, but it's slower than 10 Mbps down or 1 Mbps up
10 down / 1 upAt least 10/1 Mbps but short of 25/3 Mbps
Speed may be higher in one direction (e.g. a 50/2 Mbps service reports as 10/1)

A provider with "max_download_mbps": 0 offers real, slow service. Due to the FCC's reporting rules, it's left ambiguous how slow these services are.

Cellular Signal Strength at a Location

GET /api/v1/location/cell?lat={lat}&lng={lng}

Returns cell coverage data for networks at the given coordinates, including signal strength in dBm and a human-readable signal level. The technology field is one of 4G LTE, 5G NR, or 3G.

Parameters

NameRequiredDescription
latYesLatitude, -90 to 90
lngYesLongitude, -180 to 180
networkNoFilter to one network. Options: att, verizon, t-mobile, gci, cellcom, c-spire
techNoFilter by generation: 4g, 5g

Example Request

curl "https://broadbandmap.com/api/v1/location/cell?lat=40.758&lng=-73.985"

Example Response

{
  "lat": 40.758,
  "lng": -73.985,
  "h3_hex": "892a100d67bffff",
  "h3_resolution": 9,
  "count": 6,
  "coverage": [
    {
      "network": "AT&T",
      "network_slug": "att",
      "technology": "4G LTE",
      "rsrp_dbm": -102.5,
      "signal_level": "Fair"
    },
    {
      "network": "AT&T",
      "network_slug": "att",
      "technology": "5G NR",
      "rsrp_dbm": -102.5,
      "signal_level": "Fair"
    },
    {
      "network": "T-Mobile",
      "network_slug": "t-mobile",
      "technology": "4G LTE",
      "rsrp_dbm": -91.8,
      "signal_level": "Good"
    },
    {
      "network": "T-Mobile",
      "network_slug": "t-mobile",
      "technology": "5G NR",
      "rsrp_dbm": -88.8,
      "signal_level": "Strong"
    },
    {
      "network": "Verizon",
      "network_slug": "verizon",
      "technology": "4G LTE",
      "rsrp_dbm": -106.1,
      "signal_level": "Fair"
    },
    {
      "network": "Verizon",
      "network_slug": "verizon",
      "technology": "5G NR",
      "rsrp_dbm": -106.1,
      "signal_level": "Fair"
    }
  ]
}

Usage at a Glance

GET /api/v1/usage

Returns your key's plan and current usage. Calls to this endpoint are free and don't count toward your quota.

Example Response

{
  "plan": "starter",
  "key_status": "active",
  "customer_status": "active",
  "month_start": "2026-06-01",
  "monthly_limit": 1000,
  "monthly_used": 132,
  "monthly_remaining": 868
}

Quotas & Errors

Each plan includes a monthly request quota (see plans). Only successful (2xx) responses count toward the quota. Errors and rate-limited responses are free. Quotas reset on the first of each calendar month (UTC). When a quota is exhausted, requests return 429 until the reset.

Free demo keys also have a daily cap, with the same 429 behavior. There are no overage charges, just a hard stop and an upgrade path instead of a surprise bill. Usage alert emails go out at 80% and 100% of your monthly quota.

Keys also have a burst limit of 10 requests per second, which may be relaxed on request (get in touch via the API plans page). Requests over the burst limit return 429 with a burst_limit_exceeded code, don't count toward your quota, and clear within seconds. If you see them, slow down and retry after the Retry-After.

Rate Limit Headers

Responses to keyed requests include your monthly quota state, and 429 responses include a Retry-After (seconds until the relevant quota resets):

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 868

Error Codes

Every error response includes a human-readable error message and a stable machine-readable code. Write programs against the code; the message wording may change.

{
  "error": "Monthly API request limit exceeded.",
  "code": "monthly_quota_exceeded"
}
CodeHTTP statusMeaning
missing_key401No API key in the request headers
invalid_key401Key isn't recognized
key_inactive403Key was revoked or the subscription isn't active
invalid_params400Bad or missing query parameters
monthly_quota_exceeded429Monthly plan quota used up
daily_quota_exceeded429Daily cap reached (demo keys)
daily_ip_quota_exceeded429Per-IP daily cap reached (shared keys)
burst_limit_exceeded429Over 10 requests/second — slow down and retry
rate_limited429Anonymous rate limit (shouldn't appear on keyed requests)
method_not_allowed405Only GET is supported
server_error500Something broke on this end

OpenAPI Spec

A machine-readable OpenAPI 3.0 specification is available for download:

v1.yaml

Data

The FCC's Broadband Data Collection (BDC) program provides the foundation for Broadband Map's cell coverage and internet availability data. However, Broadband Map's API doesn't serve the raw BDC data. The approach to processing and transformation varies by dataset.

Detailed logs of known limitations are available for internet availability and cell coverage.

While BroadbandMap.com uses FCC data, it is not endorsed by the FCC or a product of the FCC.

Changelog

June 2026

February 2026


1. H3 cells vary somewhat in size by latitude. Internet availability uses resolution-8 cells, which average about 0.74 km² (0.29 mi²); cell signals use resolution-9 cells, which average about 0.11 km² (0.04 mi²).

For internet availability, a provider is listed if it's expected to serve at least one address within the cell, and speed values are the highest reported within it. Accordingly, a provider listed in a given cell may not serve every address in the cell, and speeds at some addresses may fall short of the reported max speed for that cell.