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:
- city, state, page — the municipality and a link to its full page
- generated — build date (ISO)
- upcoming[], recent[] — meetings, each with
date,body(which board/commission),headline+summary(the plain-English brief),agenda_url,minutes_url, andsource(official portal link) - attribution, license — the credit line to show
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.