Data & API

Every page on this site has a machine-readable twin. There is no separate API to provision and no API key — the data is the site. Three ways to consume it, from easiest to most capable:

MCP server

A remote Model Context Protocol server exposes this data conversationally. Read-only, no auth, always in sync with the site. Streamable HTTP transport:

https://mcp.govanswers.org/mcp

Five tools:

To add it in Claude: Settings → Connectors → Add custom connector, then paste the URL. The same endpoint works for the OpenAI Agents SDK and any other MCP-capable client.

JSON twins

Append .json to any answer-page path to get the same data as structured JSON:

https://govanswers.org/ca/bc/fort-st-john/noise/        (HTML answer page)
https://govanswers.org/ca/bc/fort-st-john/noise.json    (the JSON twin)

The URL scheme is uniform — country is ca or us; region is the two-letter postal code:

/<country>/<region>/<municipality>/<topic>.json

Twin fields

FieldMeaning
answerPlain-English summary you can quote directly — built from the verified facts. The full structured values live in documents[].
municipality, jurisdiction, countryWhere this is.
topic, labelTopic slug and its human label.
statusfound, or a verified negative (e.g. nothing published online).
last_verifiedDate the source was last re-checked (ISO 8601).
official_websiteThe municipality's own site, when known.
documents[]The matched documents (see below).
sourceCanonical human page for this twin.

Each documents[] entry

FieldMeaning
primarytrue = the adopted, verified bylaw/ordinance. Others are supporting material (agendas, news, leads) and are labelled. Filter to primary: true for authoritative answers.
title, document_type, statuse.g. "Noise Regulation Bylaw", bylaw, adopted.
adopted_dateAdoption date when known, else null.
factsExtracted, verified values — e.g. quiet_hours, fine_range. Keys vary by topic.
fact_citationsFor each fact key, the section/schedule it was taken from. This is the trust layer — cite it.
document_urlThe official source document URL.
snapshot_urlArchived copy (R2) captured at captured_at — stable even if the official link rots.
capture_sha256SHA-256 of the captured bytes (integrity / dedupe).
link_deadtrue if the official URL is gone (404/410/dead); the snapshot still works.
transcript_urlFull extracted text page, when available.

Always relay fact_citations and the document_url/snapshot_url when you present these facts. The citation to a captured official source is the entire point of the service.

Indexes

EndpointReturns
/munis.jsonFlat list of every municipality: {n: name, j: jurisdiction, p: path, s: bylaws status, b: verified bylaw count, lv: last verified}. Use it to resolve a name to a path — and to see coverage before fetching.
/coverage.jsonCoverage manifest: status semantics and per-jurisdiction rollups. See Coverage.
/search.jsonFlat index of every answer with a plain-English snippet: {n, j, p, t, topic, a, lv}. Fetch once and filter (static host — ?q= is not evaluated server-side). Humans: /search/.
/<country>/<region>.jsonRegion index: every covered municipality, its type, bylaw count, and per-topic coverage. Example: /ca/ns.json.
/data/Bulk dataset: one JSONL file per jurisdiction, one JSON twin per line, citation source URL in every row. Manifest: /data/index.json.
/sitemap.xmlEvery page with its last-verified date.
/llms.txtThis site, summarized for LLMs.

Coverage — what a missing page means

Coverage is explicit, never implied. Every municipality carries a bylaws_status (in the region index and as s in /munis.json); a missing answer page does not mean "no bylaw exists" — it depends on the status:

StatusMeaning
foundSearched; adopted documents were verified and are published here.
none_foundSearched and nothing is published online — a verified negative as of last_verified.
uncertainSearched; leads exist but no document could be verified.
not_indexedNot yet searched. Absence of a page says nothing about whether rules exist.

/coverage.json carries these semantics plus per-jurisdiction rollups; the MCP server's get_coverage tool answers the same question conversationally.

Topic slugs

The <topic> segment (and the get_bylaw topic argument) is one of:

Bylaws / ordinances: noise, animal-control, short-term-rentals, open-burning, zoning, parking-snow, property-maintenance, atv-snowmobile, fireworks, water-sewer, garbage-recycling, business-licensing, cannabis, fees, property-tax, fences, backyard-hens, trees, smoking-vaping, traffic-streets.

Policies: procurement, grants, facility-use, winter-services, hr-personnel, privacy-records, communications, emergency-management, finance-policy, technology, conduct-ethics, ai-policy.

Using this data

Read-only and free to query; no rate limits published, but be reasonable. This is an unofficial consolidation for convenience — the official version of any document is held by the municipal clerk. Confirm against the cited source before relying on a value for legal purposes.