API reference · People in office
List elected officials
Mayors, councillors, chairs and directors as the government's own page names them. Billed as one records request a page. Filters: jurisdiction, region, country, kind, since.
bearerAuthAuthorizationBearer <token>htd_test_ (sandbox, free, fictional towns) or htd_live_ (live, billed) key.
jurisdiction?stringA jurisdiction id.
^[a-z0-9][a-z0-9-]{0,63}$region?stringA two-letter province or state code.
country?stringCA or US.
kind?stringThe office: mayor, councillor, chair, director.
^[a-z][a-z0-9_]{0,60}$since?stringRecords read at or after this instant: what is new since your last read.
limit?integerResults a page, 1 to 100. Default 25.
cursor?stringnext_cursor from the previous page.
A page.
application/json- response
query*The filters as the API read them, defaults included.
as_of*stringISO 8601 instant, UTC.
results*array<>next_cursor*|Pass as cursor for the next page; null on the last.
environment*stringsandbox answers carry fictional towns.
"sandbox""live"curl -X GET 'https://data.heytownhall.com/v1/officials'{ "query": { "property1": null, "property2": null }, "as_of": "string", "results": [ { "id": "string", "jurisdiction_id": "string", "country": "string", "region": "string", "office": "string", "name": "string", "title": "string", "takes_office": "string", "source_url": "string", "read_at": "string" } ], "next_cursor": "string", "environment": "sandbox"}List departments GET
Departments and their published public contacts (an office's line, never a person's). Billed as one records request a page. Filters: jurisdiction, region, country, kind, since.
List open bids and tenders GET
Open requests for proposals, tenders and quotes, with their closing time. Billed as one records request a page. Filters: jurisdiction, region, country, from, to, since.