Governor and mayor API: statewide officials and mayor for a U.S. address
Every address lookup returns state_executives, the current statewide executive officials for the address's state, and local.mayor, the current mayor when the address is inside one of the cities our source covers. Both come from the Open States people repository (CC0). Only current terms are served: a record whose term end date has passed is left out.
Request
curl -s "https://whorepresents.rjhsignaltech.workers.dev/v1/lookup?address=350+5th+Ave,+New+York,+NY+10118"
Response (excerpt of a real call)
Copied from a live call made 2026-09-10T20:48Z; the first statewide official is shown in full and the others trimmed to office and name; districts, legislators, other local fields and usage are omitted here for length.
{
"input": "350 5th Ave, New York, NY 10118",
"matched_address": "350 5TH AVE, NEW YORK, NY, 10118",
"state": "NY",
"local": {
"place": {
"name": "New York city",
"geoid": "3651000"
},
"mayor": {
"office": "Mayor",
"role": "mayor",
"name": "Zohran K. Mamdani",
"party": null,
"email": null,
"phone": "212-788-7585",
"url": "https://www1.nyc.gov/office-of-the-mayor/mayor-contact.page",
"links": [
"https://www1.nyc.gov/office-of-the-mayor/mayor-contact.page"
],
"ids": {
"ocd_person": "ocd-person/0986ce6e-b580-46ef-85c3-86c2d049857a"
},
"term_end": "2030-12-31",
"sources": [
"https://www1.nyc.gov/office-of-the-mayor/mayor-contact.page"
],
"source": "Open States (CC0)",
"municipality": "New York",
"jurisdiction": "ocd-jurisdiction/country:us/state:ny/place:new_york/government",
"ocd_division_id": "ocd-division/country:us/state:ny/place:new_york"
},
"mayor_status": "matched"
},
"state_executives": [
{
"office": "Governor",
"role": "governor",
"name": "Kathy Hochul",
"party": "Democratic",
"email": null,
"phone": "518-474-8390",
"url": "https://www.governor.ny.gov/",
"links": [
"https://www.governor.ny.gov/",
"https://www.governor.ny.gov/content/governor-contact-form"
],
"ids": {
"ocd_person": "ocd-person/ccdd914d-9853-4fd2-9a80-ce6c962cdd18"
},
"term_end": "2027-01-01",
"sources": [
"https://www.governor.ny.gov/"
],
"source": "Open States (CC0)"
},
{
"office": "Lieutenant Governor",
"name": "Antonio Delgado",
"...": "..."
},
{
"office": "Attorney General",
"name": "Letitia James",
"...": "..."
}
],
"data_as_of": {
"state_executives_and_mayors": "Open States people repository (github.com/openstates/people, CC0) commit d066cd4 committed 2026-09-09T19:38:56-05:00; roles current on 2026-09-10 (roles whose end_date had passed are excluded)"
}
}
An address outside any incorporated city, town or village (here the Las Vegas Strip, in unincorporated Clark County, Nevada; live call 2026-09-10T20:48Z) gets no mayor:
{
"input": "3570 S Las Vegas Blvd, Las Vegas, NV 89109",
"local": {
"place": null,
"county_subdivision": {
"name": "Las Vegas CCD",
"geoid": "3200394504"
},
"mayor": null,
"mayor_status": "no_incorporated_place"
}
}
Coverage, stated plainly
- Statewide officials: 180 people across the 50 states, D.C. and Puerto Rico in the current build: 52 governors (for D.C., the Mayor of the District of Columbia), 49 attorneys general, 44 lieutenant governors, 26 secretaries of state, and 3 each of treasurers, auditors and chief election officers. Open States does not record every statewide office for every state, so a missing office means it is missing from the source, not that it is vacant.
- Mayors: 284 cities. A mayor is returned only when the address is in a Census incorporated place (not a census-designated place or a township) whose name, without its “city”, “town”, “village” or “borough” suffix, exactly matches a city with a current mayor in Open States, in the same state. Otherwise
local.mayorisnullandlocal.mayor_statussaysnot_coveredorno_incorporated_place. Six cities are matched through an explicit list checked against the Census place file (Saint Paul, South Saint Paul and Saint Louis to the Census “St.” names; Indianapolis, Louisville and Nashville to their consolidated-government “balance” places). Some cities are not matched because the names still differ or because the source has no current mayor record (for example Newark, New Jersey:not_coveredin a live call at 2026-09-10T20:48Z). - Not covered: city councils, county officials, sheriffs, judges and school boards.
- Fields per person: office, role, name, party (when the source has it), email, phone, website and other links, OCD person ID, source URLs and term end date.
- The Google Civic-compatible route
/civicinfo/v2/representativesreturns the same people as offices such as “Governor of New York” (administrativeArea1,headOfGovernment) and “Mayor of New York” (locality). See the migration guide. - The data is a snapshot refreshed weekly; an official who has just left office may still appear until the next refresh, and one who has just taken office may be missing.
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.