API reference · Search
Search the records
One full-text search (English) across agenda items, motions, meeting transcripts, document and bylaw titles, and posts, newest first. Billed as one search request a page.
bearerAuthAuthorizationBearer <token>htd_test_ (sandbox, free, fictional towns) or htd_live_ (live, billed) key.
q*stringWords to find. Quotes keep a phrase; a leading minus leaves a word out (Postgres web search syntax).
in?stringWhat to search, comma-separated: agenda_items, motions, transcripts, documents, bylaws, posts. Default all within a jurisdiction; without one, transcripts, bylaws, posts (agenda items, motions and documents need a jurisdiction for now).
jurisdiction?stringA jurisdiction id.
^[a-z0-9][a-z0-9-]{0,63}$region?stringA two-letter province or state code.
from?stringOn or after this date (YYYY-MM-DD).
to?stringOn or before this date (YYYY-MM-DD).
limit?integerResults a page, 1 to 100. Default 25.
cursor?stringnext_cursor from the previous page.
A page of hits.
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/search?q=string'{ "query": { "property1": null, "property2": null }, "as_of": "string", "results": [ { "family": "agenda_item", "id": "string", "jurisdiction_id": "string", "meeting_id": "string", "date": "string", "title": "string", "snippet": "string", "source_url": "string", "read_at": "string" } ], "next_cursor": "string", "environment": "sandbox"}List local press GET
Local press about a government: the headline, the publisher and the link. Never the article's text. Billed as one records request a page. Filters: jurisdiction, from, to, since.
List business topic tags GET
The business topics given to agenda items, motions, documents and recordings (data centres, short-term rentals, solar and storage, telecom siting, zoning, procurement, …). A record with no tag is not yet tagged. Billed as one records request a page. Filters: jurisdiction, topic, kind, from, to, since, meeting.