Legistar API scraper — a practical feed

PropTech and zoning intelligence teams; Lobbying and public affairs monitors usually need a reliable machine-readable feed — not another portal tab. Here is a method you can run yourself, then the Apify Actor that automates it.

The method

  1. Prefer the official API for the source (not brittle HTML) whenever one exists.
  2. Filter server-side or early: keywords, dates, codes (CPV/NAICS/CFDA), and geography.
  3. Flatten each record into one JSON row with stable ids and deep links back to the source.
  4. Deduplicate on the source id; keep failures as separate rows so one miss does not kill the batch.
  5. Schedule daily and diff on id so operators only see what is new.

Doing it at scale

Legistar Meetings (publicrecords/legistar-meetings-scraper) runs that method on Apify. Scrape US city council meetings, agendas, and minutes from public Legistar (Granicus) clients. Multi-city clients to flat JSON via the official Web API. Not affiliated with Granicus/Legistar.

What you can rely on: Official Legistar Web API v1 OData; No browser or login; Multi-city clients[] input; Meetings, agendas, minutes links, and legislation matters.

{
  "source": "Legistar Meetings",
  "note": "Shape varies by Actor — see the Store README for the live output schema."
}

Actor: https://apify.com/publicrecords/legistar-meetings-scraper?utm_source=site&utm_medium=article&utm_campaign=legistar

Method pages: https://geminigeorge22.github.io/legistar/?utm_source=site&utm_medium=article&utm_campaign=legistar

Published by the publicrecords maintainer on Apify.