What it returns
Census TIGER boundaries for US elections and geoBoundaries administrative units for every country, as clean JSON and GeoJSON.
Request
POST https://api.pushbuild.com/electoral-boundaries/run with a JSON body. Send your key in the X-API-Key header.
| Field | Type | Description |
|---|---|---|
points | list of strings | lat,lon pairs, e.g. 39.95,-75.16. Returns the state, county, tract, block group, place, congressional districts (119th and 120th), state legislative districts (2024 and 2026) and 2020 voting district containing each point. |
pointLevels | list of strings | Optional subset of levels to look up for points (default: all). |
level | string: congressionalDistrict, congressionalDistrict120, congressionalDistrict116, stateSenateDistrict, stateHouseDistrict, stateSenateDistrict2026, stateHouseDistrict2026, votingDistrict, state, county, tract, blockGroup, countySubdivision, place, cdp | Boundary level for listIn and geoids. Default: "congressionalDistrict". |
listIn | list of strings | State codes (PA) or FIPS (42). Returns every unit of the chosen level: GEOID, name, land and water area, centroid, 2020 population where TIGERweb carries it. |
geoids | list of strings | GEOIDs of the chosen level (e.g. 4401 for RI-1). Returns the boundary as GeoJSON in WGS84. |
simplifyDegrees | number | Maximum allowable offset; 0.001 is about 100 m. Use 0.0001 for detail, 0.01 for maps of a whole state. Default: 0.001. |
countries | list of strings | ISO 3166-1 alpha-3 codes (FRA, BRA, IND) for geoBoundaries administrative units. |
admLevels | list of strings | ADM0 (country) to ADM5; default ADM1 (states, regions, provinces). |
includeUnits | boolean | Off: one row per country and level with the source, licence, unit count and download links. Default: true. |
includeGeometry | boolean | Add each world unit's simplified GeoJSON geometry. Default: false. |
maxItems | integer | Maximum items to return (1-500). Default: 100. |
Example
curl -X POST https://api.pushbuild.com/electoral-boundaries/run \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"maxItems": 20}'
Response
{"count": 20, "truncated": false, "seconds": 1.4, "items": [ { ... } ]}
Each call returns up to 500 items. Records that fail validation or are not found are flagged in the items and not charged.
Pricing
Pay only for results returned: $0.40 per 1,000 records. No charge for errors or empty searches.
Use it from Claude, ChatGPT or Cursor
This API is also an MCP server: https://api.pushbuild.com/mcp/electoral-boundaries. Add it to any assistant that supports remote MCP servers, with your key in the X-API-Key header. Same prices. Setup for each app.
Tell us what you need built.
Questions about this API, higher volumes, or a data source you need that we don't cover yet.
hello@pushbuild.comWant this data inside your own app or CRM? API integrations and data sync