What it returns
Public meetings of about 2,800 US city councils, town boards, county boards, school boards and their committees and commissions (756,000 meetings), in one schema: body, date, time, location, agenda and minutes PDFs, video, a link to the meeting page, and the agenda items with the action taken, the result, the vote tally and the linked legislation. A second dataset lists the legislation itself (ordinances, resolutions, appointments, contracts): file number, title, type, status, introduced, passed and enacted dates, and a link.
For recent and upcoming meetings on CivicPlus AgendaCenter, BoardDocs, CivicClerk and PrimeGov the extracted agenda and minutes text is included and searchable.
Search by state, city, town, county or school district, platform, council or committee, keyword in agenda items, titles or agenda and minutes text, legislation type and status, and date; list upcoming meetings soonest first, or only meetings with minutes. Or group the matches to count meetings or legislation by jurisdiction, body, type, status or year.
Coverage: about 2,000 towns and counties on CivicPlus AgendaCenter, 250 school districts and boards on BoardDocs, 320 governments on CivicClerk and 29 on PrimeGov, meetings from last year on; and meetings from 2015 for cities and counties that publish through Legistar (New York City from its public calendar), including Seattle, Denver, Boston, San Jose, San Francisco, Pittsburgh, Phoenix, Detroit, Milwaukee, Miami-Dade, King County, Los Angeles County and Harris County. Agenda items are included for meetings from the last two years and kept from then on. Rebuilt weekly from each government's public meeting portal.
Charged per meeting, matter or group returned.
Request
POST https://api.pushbuild.com/city-council-meeting-agendas/run with a JSON body. Send your key in the X-API-Key header.
| Field | Type | Description |
|---|---|---|
dataset | string: meetings, legislation | meetings (agendas with items, actions and votes) or legislation (ordinances, resolutions and other matters). Default: "meetings". |
states | list of strings | Two-letter state codes, e.g. CA, WA. |
jurisdiction | string | City, town, county or school district name contains, e.g. Seattle, Clinton, King County. |
body | string | Council, committee, board or commission name contains, e.g. City Council, Planning Commission. |
platforms | list of strings | Meetings only: legistar, agendacenter, boarddocs, civicclerk, primegov. Empty for all. |
keyword | string | Words in an agenda item, meeting title, or the agenda or minutes text, e.g. zoning, budget, police, data center. |
type | string | Legislation only: type contains, e.g. Ordinance, Resolution, Appointment. |
status | string | Legislation only: status contains, e.g. Adopted, Passed, In Committee. |
dateFrom | string | Meeting date (or introduced date for legislation) on or after, YYYY-MM-DD. |
dateTo | string | Meeting date (or introduced date) on or before, YYYY-MM-DD. |
upcomingOnly | boolean | Meetings only: today and later, soonest first. |
hasMinutes | boolean | Meetings only: only meetings with published minutes. |
includeItems | boolean | Meetings only: include the agenda items (only the matching ones when a keyword is given). Default: true. |
sort | string: newest, soonest | newest or soonest (oldest first). |
groupBy | string: jurisdiction, state, body, type, status, year | Return counts instead of rows: jurisdiction, state, body or year for meetings; jurisdiction, state, type, status or year for legislation. |
maxItems | integer | Maximum items to return (1-500). Default: 100. |
includeText | boolean | Meetings only: return the extracted agenda and minutes text (recent meetings on AgendaCenter, BoardDocs, CivicClerk and PrimeGov). Default: true. |
Example
curl -X POST https://api.pushbuild.com/city-council-meeting-agendas/run \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jurisdiction": "Seattle", "maxItems": 20}'
Response
{"count": 20, "truncated": false, "seconds": 1.4, "items": [ { ... } ]}
Each call returns up to 500 items. Records that fail validation or are not found are flagged in the items and not charged.
Pricing
Pay only for results returned: $0.80 per 1,000 records. No charge for errors or empty searches.
Use it from Claude, ChatGPT or Cursor
This API is also an MCP server: https://api.pushbuild.com/mcp/city-council-meeting-agendas. Add it to any assistant that supports remote MCP servers, with your key in the X-API-Key header. Same prices. Setup for each app.
Tell us what you need built.
Questions about this API, higher volumes, or a data source you need that we don't cover yet.
hello@pushbuild.comWant this data inside your own app or CRM? API integrations and data sync