The API
Everything on the network's episode pages, item by item, as JSON: what each body took up, how it voted, what was said, and a link to the moment in the recording, filed by topic, across every show.
It's read-only and open: no key, and any site may call it. Version 1 only grows: fields are added, never changed or removed.
Try it
curl 'https://civic.fm/api/v1/items?topic=surveillance&q=drone'
Endpoints
GET /api/v1/items- Items, newest meeting first, or best match first when you give
q. Each filter is optional:q: words to look for, in the item's title, what it is, its votes, and what was said. “Quotes” match a phrase, and-wordleaves one out.topic: a topic's slug, from/api/v1/topicsshow: a show's slug, from/api/v1/showssince,until: the meeting's date,YYYY-MM-DDlimit: items per page, up to 200 (50 if you don't say)cursor: thenexta response gave, for the page after it
GET /api/v1/topics- The topics, by area, each with its slug, label, what belongs in it, and how many items it has.
GET /api/v1/shows- The shows, each with its slug, title, place, site, and feed.
An item
Its id never changes. Names are as the episode page has them: an official is named only when the recording shows who spoke, and members of the public never are.
{
"agenda_ref": "13",
"at": "01:10:05",
"episode": {
"item_url": "https://pasadena.civic.fm/episodes/2026-10-02#m3-7",
"title": "A Black Legacy District for North Fair Oaks, and drones for SWAT only",
"url": "https://pasadena.civic.fm/episodes/2026-10-02"
},
"id": "pasadena:3:7",
"link": null,
"meeting": {
"body": "City Council",
"date": "2026-09-29",
"documents": [
{
"kind": "agenda",
"title": "Agenda",
"url": "https://pasadena.granicus.com/AgendaViewer.php?view_id=25\u0026clip_id=8829"
}
],
"id": 3,
"recording": "https://pasadena.granicus.com/MediaPlayer.php?view_id=25\u0026clip_id=8829",
"title": "City Council Meeting: September 29, 2026 - Sep 29, 2026"
},
"number": 7,
"outcomes": [
{
"at": "01:29:37",
"link": null,
"text": "A councilmember moved to accept the report with thanks, approving recommendations 1 through 3, 5, and 6, and to ask the police department to report back to the police oversight commission and the Public Safety Committee on its operational training for this equipment; it was seconded. Result: passed.",
"unclear": false
},
{
"at": "02:10:33",
"link": null,
"text": "A councilmember moved to approve recommendation 4, the drone policy, as written. Result: failed.",
"unclear": false
},
{
"at": "02:14:37",
"link": null,
"text": "Jason Lyon (Councilmember, District 7) moved to approve recommendation 4, the drone policy, for SWAT operations only, with any testing done off-site and outside the city and further review through the police oversight commission; Tyron Hampton (Councilmember, District 1) seconded. Result: passed, 7-1. No: a councilmember.",
"unclear": false
}
],
"points": [
{
"at": "01:11:30",
"link": null,
"text": "Jess Rivas (Councilmember, District 5; Vice Mayor) said the Public Safety Committee recommended approval, but declined to support expanding drone use beyond SWAT"
},
{
"at": "01:23:15",
"link": null,
"text": "A councilmember asked the police department to report back on how officers are trained to use this equipment at large or volatile demonstrations"
},
{
"at": "01:38:24",
"link": null,
"text": "Jess Rivas (Councilmember, District 5; Vice Mayor) said there\u0027s no evidence yet that drones as first responders improve crime clearance, reduce force, or save money, and declined to support setting the city on that path"
},
{
"at": "01:42:50",
"link": null,
"text": "A councilmember warned about drone vendors, saying a company like Flock could come to know everything about everybody"
},
{
"at": "01:58:17",
"link": null,
"text": "City staff said the policy would guide one-day trials of systems from Flock, Brinc, and Skydio, with results and costs coming back to the council in January before any purchase"
},
{
"at": "02:00:37",
"link": null,
"text": "A councilmember objected to borrowing drones and using them in the community before the council decides, calling it putting the cart before the horse"
},
{
"at": "02:09:23",
"link": null,
"text": "City staff said approving the policy lets the SWAT team use drones for limited tactical situations while testing waits"
},
{
"at": "02:09:41",
"link": null,
"text": "A councilmember proposed approving the policy for SWAT use only, with any testing done off-site and outside the city"
}
],
"show": {
"site": "https://pasadena.civic.fm",
"slug": "pasadena",
"title": "Pasadena"
},
"title": "Military equipment annual report and a new police drone policy",
"topics": [
"surveillance",
"policing"
],
"what_and_why": "State law requires an annual report on the police department\u0027s military-style equipment. The council approved the report, renewed the existing equipment, and authorized the SWAT team to use energy-assisted breaching tools, and asked police to report back on training for large demonstrations. A new drone policy was split off: after a long debate over plans to test drones as first responders, the council approved it 7 to 1 for SWAT use only, with any testing of new drone systems done outside the city and more review before anything is bought."
}