The Boring PartsFederalLocal · USLocal · Canada

Embed & API

Everything here is public data under CC BY 4.0 — reuse it on your own site, app, or newsletter. A link back to the city's page is all we ask. Three ways to pull it in:

1. Embed a city — no code

Drop a single city's upcoming & recent meetings onto any page with an iframe. Every city page has an “🔗 Embed this city” box with this snippet pre-filled:

<iframe src="https://mytown.theboringparts.com/city/CITY-SLUG/embed/"
        width="100%" height="600" loading="lazy"
        style="border:1px solid #ddd;border-radius:8px"
        title="City government meetings"></iframe>

Replace CITY-SLUG with your city's slug — it's the last part of its page URL (e.g. /city/cityofpaloalto/). The widget is self-contained, mobile-responsive, and follows the visitor's light/dark setting.

2. Per-city JSON API

To build your own display, fetch a city's meetings as JSON. CORS is open (Access-Control-Allow-Origin: *), so you can call it straight from the browser. Rebuilt hourly.

GET https://mytown.theboringparts.com/city/CITY-SLUG/meetings.json
const r = await fetch("https://mytown.theboringparts.com/city/cityofpaloalto/meetings.json");
const data = await r.json();
data.upcoming.forEach(m => console.log(m.date, m.body, m.headline));

Response shape:

3. The whole dataset

Want everything — every city, meeting, brief, decision and roundup across the US and Canada? The entire database is one downloadable SQLite file. See the open dataset. The same docs live in the GitHub repo.

Attribution

Credit “MyTown / theboringparts.com” with a link. Summaries are AI-generated from official documents — always verify against the linked primary source before relying on a detail.