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:

https://mcp.govanswers.org/mcp    (Streamable HTTP transport)

Three 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}. Use it to resolve a name to a path.
/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.
/sitemap.xmlEvery page with its last-verified date.
/llms.txtThis site, summarized for LLMs.

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.

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.