City Council Agenda & Legislation Monitor (Legistar) avatar

City Council Agenda & Legislation Monitor (Legistar)

Pricing

from $2.55 / 1,000 agenda items

Go to Apify Store
City Council Agenda & Legislation Monitor (Legistar)

City Council Agenda & Legislation Monitor (Legistar)

Track city council, county board and committee agendas, legislation, votes and attachments from 150+ US jurisdictions on Legistar. Keyword alerts, only-new monitoring, and agenda PDF text for RAG. Official public API, no proxies.

Pricing

from $2.55 / 1,000 agenda items

Rating

0.0

(0)

Developer

Shyheim Ulrickson

Shyheim Ulrickson

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Use it to get alerts when US city councils and county boards put your keywords on an agenda, weeks before a vote or an RFP.

Cost: $3 per 1,000 agenda items ($2 per 1,000 meetings in meetings mode; agenda PDF text is $0.01 per meeting and off by default). A default run (50 items) costs about $0.15.

Why this one

  • Official Legistar Web API, not HTML scraping, across 153 active jurisdictions in 33 states. Pick by city or by state.
  • Monitoring mode. onlyNew returns only items you have not received before, so you pay only for new items.
  • Clean rows. Whole-word keyword matching with a snippet, procedural boilerplate dropped, duplicate legislation collapsed, and links to every attachment.

Sample output (real run, Seattle, Oct 2026):

jurisdictionbodyNamemeetingDatetitlematterType
City of SeattleSelect Budget Committee2026-10-13Introduction and OverviewInformation Item (Inf)
City of SeattleSelect Budget Committee2026-10-13General Fund (GF) Balancing and Sustainability AnalysisInformation Item (Inf)
City of SeattleSelect Budget Committee2026-10-13Voluntary SeparationInformation Item (Inf)

Track what US city councils, county boards and their committees will discuss and what they decided: agenda items, legislation, votes, staff reports and PDF attachments from 153 active US jurisdictions in 33 states (plus any other Legistar client you name). Built on the official public Legistar Web API, so it needs no proxies or browser and breaks far less often than scrapers of the HTML sites.

Set keywords such as data center, cybersecurity or RFP and run it daily with Only new records turned on. You get alerts weeks before an RFP is posted, and each row is clean, structured JSON ready for your CRM, Slack, a spreadsheet or a RAG pipeline.

What you get

  • Agenda items with title, file number, legislation type and status, action taken, pass/fail result, mover and seconder, cleaned agenda notes, and direct links to the legislation page and every attachment (staff reports, contracts, presentations).
  • Meetings with body, date, time, location, agenda and minutes status, agenda/minutes PDF links and the meeting page. Optionally includes the full text of the agenda PDF for LLM summarisation or RAG.
  • Keyword alerts: whole-word, case-insensitive matching (plurals included) across titles, notes, actions and attachment names, with a snippet showing where the match was found.
  • Monitoring mode (onlyNew): the Actor remembers what it already delivered, so a scheduled run returns only new items, and you only pay for new items.
  • Coverage built in: pick jurisdictions by slug, by state (["CA","TX"]), or monitor all of them at once.
  • Clean data: procedural rows (roll call, adjournment, public-comment boilerplate) are dropped by default, duplicate listings of the same legislation are collapsed, and RTF/HTML notes are converted to plain text.

Who uses it

Use caseExample
GovTech / SLED sales signalsAlert reps when a county board discusses "cybersecurity", "body cameras", "ERP replacement" or "Request for Proposals", before the bid is posted.
AI agents & RAGFeed agents structured local-government decisions; the meetings mode with agenda text gives LLM-ready context with source links.
Real estate & energy developersWatch for rezoning, data-center moratoriums, battery storage, short-term rental rules and annexations.
Public affairs, lobbying, advocacyTrack ordinances and votes across many cities from one feed.
Journalists & researchersBuild datasets of council actions with links to the primary documents.

Input

FieldWhat it doesDefault
clientsLegistar client slugs or URLs, e.g. seattle, oakland, denver, cook-county, kingcounty, lacountyseattle, oakland, denver
statesAdd every active jurisdiction in these states–
allRegistryClientsMonitor all ~150 active jurisdictionsfalse
daysBack / daysAheadDate window around today (agendas are typically posted 3–10 days ahead)7 / 14
startDate / endDateAbsolute date window (overrides the above)–
keywordsOnly return items that mention any of these words or phrases–
bodyNameContainsFilter by body, e.g. council, planning, finance–
outputTypeagendaItems (one row per item) or meetings (one row per meeting)agendaItems
extractAgendaTextAdd agenda PDF text (meetings mode)false
onlyNew + stateKeyMonitoring memory across runsfalse
maxItemsHard cap on rows written (cost control). The default keeps a first run around $0.15; raise it for more cities or longer ranges. On the default demo cities (seattle, oakland, denver) the cap is shared evenly across the cities.50
clientTokensTokens for the few cities that require one (e.g. nyc, phila)–

Example: daily data-center and cybersecurity alerts for all of California:

{
"states": ["CA"],
"keywords": ["data center", "cybersecurity", "request for proposals"],
"daysBack": 1,
"daysAhead": 14,
"onlyNew": true,
"stateKey": "ca-signals"
}

Sample output

An agenda item (outputType: agendaItems):

{
"recordType": "agenda_item",
"client": "seattle",
"jurisdiction": "City of Seattle",
"state": "WA",
"meetingId": 6910,
"bodyName": "City Council",
"meetingDate": "2026-10-20",
"meetingTime": "2:00 PM",
"meetingUrl": "https://seattle.legistar.com/MeetingDetail.aspx?LEGID=6910&GID=393&G=FFE3B678-CEF6-4197-84AC-5204EA4CFC0C",
"agendaPdfUrl": "https://legistar2.granicus.com/seattle/meetings/2026/10/6910_A_City_Council_26-10-20_Full_Council_Meeting_Agenda.pdf",
"itemId": 126453,
"agendaSequence": 12,
"agendaNumber": null,
"title": "An ordinance relating to Seattle Public Utilities; authorizing the acquisition by negotiation or eminent domain (condemnation) of three parcels of land in Seattle for utility purposes identified as King County Parcel Numbers 302604-9100 (11762 Aurora Ave N), 302604-9116 (12004 Aurora Ave N), and 302604-9124 (12020 Aurora Ave N), authorizing the General Manager and Chief Executive Officer of Seattle Public Utilities (General Manager/CEO) or their designee to execute all documents and take other actions deemed by the General Manager/CEO or designee as necessary to complete the acquisitions; placing the real properties conveyed to the City under the jurisdiction of Seattle Public Utilities; and ratifying and confirming certain prior acts.",
"matterId": 17371,
"matterFile": "CB 121292",
"matterName": "CB 121292",
"matterType": "Council Bill (CB)",
"matterStatus": "Full Council Agenda Ready",
"matterUrl": "https://seattle.legistar.com/LegislationDetail.aspx?ID=17371&GUID=F9D8708B-E13E-45D9-BFAF-9670CBD41EF8",
"isConsentItem": false,
"actionName": null,
"actionText": null,
"result": null,
"mover": null,
"seconder": null,
"agendaNote": null,
"minutesNote": null,
"attachments": [
{
"name": "Summary Ex A – Area Map",
"url": "https://legistar2.granicus.com/seattle/attachments/021d6e34-34db-4b77-944b-4b8f6e7f5c17.docx"
},
{
"name": "Summary and Fiscal Note",
"url": "https://legistar2.granicus.com/seattle/attachments/e496854d-6dfa-4d03-88c5-9d5e66ae9c28.docx"
}
],
"attachmentCount": 5,
"lastModifiedUtc": "2026-10-16T19:02:25Z",
"scrapedAt": "2026-10-19T01:03:48Z"
}

A keyword alert from a run across all jurisdictions:

{
"jurisdiction": "City of Hayward",
"state": "CA",
"bodyName": "City Council",
"meetingDate": "2026-10-20",
"matterFile": "LB 26-015",
"matterType": "Legislative Business",
"title": "Temporary Moratorium on New Data Centers: Adopt an Interim Urgency Ordinance Pursuant to California Government Code Section 65858, Imposing a Temporary Moratorium on New Data Centers in Hayward, and Finding that the Action is Exempt from Environmental Review (Report from Development Services Director Buizer)",
"matchedKeywords": [
"data center"
],
"matchSnippet": "Temporary Moratorium on New Data Centers: Adopt an Interim Urgency Ordinance Pursuant to California Government Code Section 65858, Imposing a Temporary Moratori…",
"matterUrl": "https://hayward.legistar.com/LegislationDetail.aspx?ID=11059&GUID=665E3C69-5137-4C19-B13B-F404A9932E6E"
}

You can export results as JSON, CSV, Excel, or HTML, or fetch them through the Apify API, webhooks, Zapier, Make or n8n, or the Apify MCP server for AI agents.

Pricing (pay per event)

EventPrice
Agenda item delivered$0.003 ($3 per 1,000)
Meeting delivered (meetings mode)$0.002
Agenda PDF converted to text$0.01 per meeting (not charged when the PDF has no extractable text, e.g. a scan)

You never pay for procedural rows, duplicates, or records you already received in monitoring mode. Typical costs:

  • A default run (maxItems 50): at most about $0.15.
  • One city, one month of agendas: about 150 items (set maxItems to 150 or more), roughly $0.45.
  • Keyword alerts across all 153 jurisdictions: in a test run, five keywords over a 12-day window matched 70 items, about $0.21. With onlyNew on, daily runs bill only items you haven't received yet.

Use maxItems and the run's maximum-charge setting to cap spend.

FAQ

Is this legal? Is it scraping? The Actor reads Legistar's official public Web API, which Granicus provides so the public can reuse published agendas and legislation. It only returns items the jurisdiction has marked as public. There is no login, no CAPTCHA and no proxy. Please respect each jurisdiction's terms and use the data responsibly.

Does it include personal data? It returns government records. These include the names of officials acting in their public role (for example, the mover and seconder of a motion) and any names that appear in public agenda titles, such as appointments to commissions. It does not enrich or profile individuals.

My city isn't in the list. If your city uses Legistar (its site looks like https://<name>.legistar.com), just put <name> in clients. If it uses a different platform (Granicus, PrimeGov, CivicClerk, BoardDocs), let us know through the Issues tab; those platforms are on the roadmap.

Why did a city return nothing? Some cities publish agendas only a few days before the meeting, so widen daysAhead. A few (e.g. nyc, phila) require a free API token from the city; others (e.g. Chicago, Austin, San Francisco) have moved off the Legistar API. The run summary in the key-value store (OUTPUT) lists errors for each jurisdiction.

How fresh is the data? It is live: every run queries the API directly. A full run across all 153 jurisdictions takes about 2 minutes.

Can I get the full text of staff reports? Every attachment URL is included. extractAgendaText adds the agenda PDF text; text extraction for attachments is on the roadmap.

Verified jurisdictions (active in the last 120 days)

  • AL: City of Huntsville (huntsvilleal)
  • AR: City of Jonesboro (jonesboro)
  • AZ: City of Apache Junction, Arizona (apachejunction), City of Mesa (mesa), City of Phoenix (phoenix), Lake Havasu City (lakehavasucity), Pima County (pima)
  • CA: Alameda-Contra Costa Transit District (actransit), City of Chino (chino), City of Costa Mesa (costamesa), City of Cupertino (cupertino), City of Hayward (hayward), City of Merced (cityofmerced), City of Murrieta (murrieta), City of Alameda (alameda), City of Dublin (dublin), City of Fontana (fontana), City of Fresno (fresno), City of Fullerton (fullerton), City of Hesperia (hesperia), City of Huntington Beach (huntingtonbeach), City of Lodi (lodica), City of Mountain View (mountainview), City of Oakland (oakland), City of Orange (cityoforange), City of Pomona (pomona), City of Rialto (rialto), City of Riverside (riversideca), City of Sacramento (sacramento), City of Salinas (salinas), City of San José (sanjose), City of Santa Clara (santaclara), City of Stockton (stockton), City of Sunnyvale (sunnyvaleca), City of Westminster (westminsterca), County of Fresno (fresnocounty), County of Los Angeles (lacounty), County of Monterey (monterey), County of San Mateo (sanmateocounty), County of Santa Barbara (santabarbara), Los Angeles Unified School District (lausd), Metro (metro), Napa County (napa), City of Newport Beach (newportbeach), San Bernardino County (sanbernardino), San Francisco Bay Area Rapid Transit District (bart), Solano County (solano), Sonoma County (sonoma-county), City of Temecula (temeculaca), Metropolitan Water District of Southern California (mwdh2o), City of Visalia (visalia)
  • CO: Arapahoe County (arapahoe), City and County of Denver (denver), City of Colorado Springs (coloradosprings), Town of Erie (erie)
  • CT: City of Bridgeport (bridgeportct)
  • FL: City of Aventura (cityofaventura), Broward County (broward), City of Doral (doral), City of Clearwater (clearwater), City of Coconut Creek (coconutcreek), City of Coral Gables (coralgables), City of Delray Beach (delraybeach), City of Deltona (deltona), City of Fort Lauderdale (fortlauderdale), City of Hallandale Beach (hallandalebeach), City of Hollywood (hollywoodfl), City of Margate (margatefl), City of Miramar, FL (miramar), City of North Port (cityofnorthport), City of Pinellas Park (pinellaspark), City of Ocala (ocala), Pinellas County (pinellas), Village of Wellington (wellington)
  • GA: City of Marietta (marietta), DeKalb County (dekalbcountyga), Fulton County (fulton)
  • ID: City of Idaho Falls (idahofalls)
  • IL: Cook County (cook-county), City of Joliet (joliet), City of Naperville (naperville), City of Rockford (rockfordil), Village of Orland Park (orlandpark), Village of Lombard (lombard), Village of Romeoville (romeoville)
  • KS: City of Olathe (olatheks)
  • KY: Louisville Metro (louisville)
  • LA: City of Alexandria (alexandria)
  • MA: City of Salem (salem), City of Boston (boston), City of Malden (cityofmalden), City of Revere, MA (revere), City of Somerville, Massachusetts (somervillema)
  • MD: City of Annapolis (annapolismd), City of Baltimore (baltimore), City of Rockville (rockvillemd), Prince George's County (princegeorgescountymd)
  • MI: City of Ann Arbor (a2gov)
  • MN: City of Saint Paul (stpaul)
  • MO: Kansas City (kansascity)
  • NC: City of Charlotte (charlottenc), City of Fayetteville (cityoffayetteville), Mecklenburg County (mecklenburg), Town of Chapel Hill (chapelhill)
  • ND: City of Fargo (fargond)
  • NH: City of Concord (concordnh)
  • NJ: City of Newark (newark)
  • NM: City of Albuquerque (cabq)
  • NV: Clark County (clark)
  • NY: City of Mount Vernon, New York (mountvernonny), City of Yonkers (yonkersny)
  • OH: City of Cincinnati (cincinnatioh), City of Columbus (columbus), City of Toledo (toledo), City of Cleveland (cityofcleveland)
  • PA: City of Allentown (allentownpa), City of Pittsburgh (pittsburgh)
  • RI: City of Providence (providenceri)
  • TN: Metropolitan Nashville and Davidson County, TN (nashville)
  • TX: City of McKinney (mckinney), City of Carrollton (carrolltontx), City of Coppell, Texas (coppell), City of Corpus Christi (corpuschristi), City of Dallas (cityofdallas), City of Keller (cityofkeller), City of Killeen (killeen), City of Laredo (cityoflaredo), City of League City, TX (leaguecity), City of Lewisville, TX (cityoflewisville), City of Mesquite, Texas (mesquite), City of New Braunfels, Texas (newbraunfels), City of Pflugerville (pflugerville), City of Plano, TX (plano), City of Round Rock (roundrock), City of San Marcos (sanmarcos), City of El Paso (elpasotexas)
  • VA: City of Hampton (hampton), City of Richmond (richmondva)
  • WA: City of Bellevue (bellevue), City of Olympia (olympia), City of Redmond - Meetings Calendar (redmond), City of Tacoma (cityoftacoma), King County (kingcounty), City of Seattle (seattle), Snohomish County (snohomish)
  • WI: City of Appleton (cityofappleton), City of La Crosse, Wisconsin (cityoflacrosse), City of Madison (madison), City of Milwaukee (milwaukee), City of Waukesha (waukesha), City of West Allis (westalliswi), Dane County (dane), Milwaukee County (milwaukeecounty)

Restricted (need a token from the city): New York City Council (nyc), Philadelphia (phila), Oceanside CA (oceanside), Broken Arrow OK (brokenarrow).


This Actor is not affiliated with Granicus or any government. Data comes from the respective public agencies.

Feedback

This Actor is new and actively maintained. If a run fails, a field is missing, or a result looks wrong, please open an issue on the Issues tab with the run ID. We read and reply to every issue, and suggestions for new filters or fields are very welcome.