Municipal Council Minutes & Agenda Scraper
Pricing
Pay per event
Municipal Council Minutes & Agenda Scraper
Scrapes US city council meeting agendas, minutes, votes, and documents from Granicus, Legistar, CivicWeb, and PrimeGov platforms — covering 80%+ of US municipalities. Input a platform type and client slug to fetch all meetings, or filter by date range and meeting body.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
4
Monthly active users
0.12 hours
Issues response
20 hours ago
Last modified
Categories
Share
Fetch US city council meeting agendas, minutes, and documents from major municipal government platforms. Supports Legistar and PrimeGov — covering thousands of US municipalities (more platforms coming). Input a platform type and client slug to retrieve meeting records normalized into a single schema.
Features
- Supports the Legistar and PrimeGov municipal platforms (Granicus and CivicWeb coming soon).
- Returns meeting body, date, time, location, agenda status, document URLs, video URL, and source link for each meeting.
- Filter by date range (
startDate/endDate) and governing body name (bodyName). - Single flat output schema across all platforms — one query, one dataset.
Who Uses Municipal Meeting Data?
- Civic technology and government transparency tools — Track council votes, planning decisions, and public comment periods across municipalities.
- Real estate and land use intelligence — Monitor zoning hearings, planning commission approvals, and variance requests before they become public news.
- Local news and investigative journalism — Automate monitoring of city council, school board, and special district meetings.
- Government relations and lobbying — Follow agenda items relevant to clients across dozens of municipalities without manual calendar checks.
- Academic and policy research — Build longitudinal datasets of local government activity across cities and regions.
How It Works
- Choose a platform (
legistarorprimegov) and provide the municipality's client slug (e.g.chicagofor Chicago on Legistar, orlongbeachfor Long Beach, CA on PrimeGov). Each city is on exactly ONE platform. - Optionally filter by date range or governing body name.
- The scraper queries the platform's public API and returns normalized meeting records.
Input
{"platform": "legistar","clientSlug": "chicago","startDate": "2024-01-01","endDate": "2024-12-31","bodyName": "City Council","maxItems": 100}
| Field | Type | Default | Description |
|---|---|---|---|
platform | string | legistar | Platform vendor: legistar or primegov |
clientSlug | string | chicago | Municipality client slug on the platform (must match the platform — e.g. chicago, seattle on legistar; longbeach, renton on primegov) |
startDate | string | — | Filter meetings on or after this date (YYYY-MM-DD) |
endDate | string | — | Filter meetings on or before this date (YYYY-MM-DD) |
bodyName | string | — | Filter by governing body name (case-insensitive substring match) |
maxItems | integer | 10 | Maximum number of meeting records to return |
Platform & Client Slug Guide
Each platform assigns a slug to each municipality. Here are examples:
| Platform | Example Slugs | URL Pattern |
|---|---|---|
legistar | chicago, seattle, mountainview | {slug}.legistar.com |
primegov | longbeach, renton | {slug}.primegov.com |
A city is on exactly ONE platform — if a slug returns no meetings on one platform, it is almost certainly hosted on the other. To find your city's slug: visit the city's portal (e.g. chicago.legistar.com) — the subdomain is the slug.
Output Schema
Each record represents one meeting:
| Field | Type | Description |
|---|---|---|
platform | string | Platform vendor (legistar or primegov) |
city | string | Municipality client slug |
state | string | US state abbreviation (when available) |
body | string | Governing body name (City Council, Planning Commission, etc.) |
meeting_type | string | Meeting type or status |
meeting_date | string | Meeting date (YYYY-MM-DD) |
meeting_time | string | Meeting start time (HH:MM) |
location | string | Meeting location or address |
agenda_status | string | Agenda document status (Draft, Final, etc.) |
agenda_items | string | Agenda item titles (top-level, comma-separated) |
document_urls | string | Space-separated list of agenda/minutes document URLs |
video_url | string | URL to meeting video recording (where available) |
source_url | string | Canonical URL for this meeting on the platform portal |
meeting_id | string | Platform-internal meeting identifier |
Example Output
{"platform": "primegov","city": "longbeach","state": "","body": "City Council","meeting_type": "Regular","meeting_date": "2024-09-17","meeting_time": "5:00 PM","location": "City Hall - Council Chambers","agenda_status": "Published","agenda_items": "","document_urls": "https://longbeach.primegov.com/meeting/4567/agenda.pdf","video_url": "","source_url": "https://longbeach.primegov.com/portal/meeting?compiledMeetingDocumentFileId=4567","meeting_id": "4567"}