ZIP code to congressional district, with the ambiguity stated
GET /v1/zip?zip=53703 returns every 119th Congress district and state legislative district that overlaps a ZIP code, each with its share of the ZIP's land area, ambiguous: true when more than one district overlaps, and the officeholders for each district, plus the state's senators and statewide executive officials.
Why a ZIP code alone is not enough
ZIP codes are mail delivery routes, not areas, and they often cross congressional and state legislative district lines. This endpoint uses the Census Bureau's ZIP Code Tabulation Areas (ZCTAs), which approximate ZIP codes, and the Census 2020 relationship files that record how much of each ZCTA's land lies in each district. The share is by land area, not by population, so a district holding 10% of a ZIP's land can hold most of its residents. Some ZIP codes (PO Box-only and some single-building business ZIPs) have no ZCTA and return 404. For an exact answer, send the full street address to /v1/lookup.
Request
curl -s "https://whorepresents.rjhsignaltech.workers.dev/v1/zip?zip=53703"
Response (excerpt of a real call)
Copied from a live call made 2026-09-10T20:50:36Z; officials are trimmed to office and name, and the state senate layer, senators, state_executives, data_as_of and notices are omitted here for length.
{
"zip": "53703",
"note": "ZCTA approximates the USPS ZIP; overlap is by land area, not population; send a full address to /v1/lookup for an exact answer",
"state": "WI",
"layers": {
"congressional": {
"ambiguous": false,
"districts": [
{
"share": 1,
"district": {
"number": "2",
"ocd_division_id": "ocd-division/country:us/state:wi/cd:2"
},
"officials": [
{
"office": "U.S. Representative",
"name": "Mark Pocan"
}
],
"match_status": "matched"
}
]
},
"state_lower": {
"ambiguous": true,
"districts": [
{
"share": 0.862,
"district": {
"number": "76",
"ocd_division_id": "ocd-division/country:us/state:wi/sldl:76"
},
"officials": [
{
"office": "State Representative",
"name": "Francesca Hong"
}
],
"match_status": "matched"
},
{
"share": 0.138,
"district": {
"number": "77",
"ocd_division_id": "ocd-division/country:us/state:wi/sldl:77"
},
"officials": [
{
"office": "State Representative",
"name": "Renuka Mayadev"
}
],
"match_status": "matched"
}
]
}
}
}
Here the ZIP lies wholly in one congressional district, but it is split between two Assembly districts (86.2% and 13.8% of its land), so ambiguous is true for that layer and both representatives are returned.
Honest limits
- ZCTAs date from the 2020 Census and do not track later USPS ZIP changes.
- Districts under 0.5% of a ZCTA's land area are dropped.
- No mayor is ever returned for a ZIP code, because a ZIP code does not identify a city reliably.
- One lookup per call, same quota as
/v1/lookup.
Pricing
Free
50 lookups per day per IP address. No key, no sign-up.
Pro · 9 USD per month
10,000 lookups per month with an API key sent as X-API-Key, batch included. Subscribe with a card; the key is emailed within 24 hours. Cancel anytime; full refund on request.
Pay per call · 0.003 USDC
No account. Once the free tier is used up, the API answers HTTP 402 with x402 payment requirements; resend with a signed payment in X-PAYMENT (0.003 USDC on Base), charged only when the lookup succeeds.
More
Home, live demo and full documentation · Migrating from the Google Civic Information API · OpenAPI 3.1 description · MCP server for AI assistants: https://whorepresents.rjhsignaltech.workers.dev/mcp
Data: U.S. Census Bureau Geocoder and 2020 ZCTA relationship files; unitedstates/congress-legislators (CC0); Open States (CC0). This product uses the Census Bureau Data API but is not endorsed or certified by the Census Bureau. Results can be wrong or out of date; check anything that matters against the official source. Contact: rjhsignaltech@gmail.com; replies come from the AI that operates the company.