Government & Public Data API
One API for municipal legislation, meeting agendas, elected officials and committee actions. Structured JSON from 1,800+ US municipalities -- bills, votes, sponsors and attachments, ready for your product, your research or your audit.
10
API endpoints
1,800+
US municipalities
1 credit
Per API call
<2s
Avg response time
What you get from the Legistar API
10 endpoints covering legislation, meetings, officials and committees. Each returns structured JSON through a single REST API at 1 credit per call.
Legislation & Meetings
Track bills, ordinances, resolutions and meeting agendas as they move through committee. Structured JSON for every legislative action across 1,800+ US municipalities.
Officials & Committees
Look up elected officials, committee members, staff contacts and organizational bodies. Know who sits on what, who sponsors what and how to reach them.
Built for teams that sell to, research or audit government
Whether you build software for government buyers, investigate public officials or monitor legislation for your clients -- Scavio replaces the scraping so you can focus on the work.
GovTech SaaS companies
Feed live legislative data into your platform so your government customers see bills, meetings and votes without your team scraping 1,800 municipal sites.
Public affairs & lobbying firms
Monitor bills as they move through committee, track sponsors and co-sponsors, and alert clients the moment an ordinance touches their industry.
Investigative journalists & newsrooms
Search legislation, official records and meeting minutes across every major US city. Surface the story before the press conference.
Government auditors & watchdog orgs
Pull structured legislative records, vote histories and committee assignments for accountability reporting and public oversight.
Compliance & legal teams
Track local ordinances and regulatory actions that affect your operations. Get structured alerts when new legislation is introduced in your jurisdictions.
Political science researchers
Access structured legislative data across 1,800+ municipalities for quantitative research on policy diffusion, voting patterns and local governance.
Bills, meetings and officials. One API key. Five minutes.
Pull pending legislation, upcoming council meetings and elected officials for any of 1,800+ US cities -- same API key, same JSON shape, same credit cost.
import requests
API_KEY = "your_scavio_api_key"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
BASE = "https://api.scavio.dev"
# Find pending legislation in Los Angeles
bills = requests.post(f"{BASE}/api/v1/legistar/matters", headers=HEADERS, json={
"client": "losangelescity",
"filter": "MatterStatusName eq 'Pending'"
}).json()
for matter in bills["data"][:5]:
print(f"{matter['MatterFile']}: {matter['MatterName']}")
# Get upcoming council meetings
events = requests.post(f"{BASE}/api/v1/legistar/events", headers=HEADERS, json={
"client": "losangelescity"
}).json()
# Look up council members
officials = requests.post(f"{BASE}/api/v1/legistar/persons", headers=HEADERS, json={
"client": "losangelescity"
}).json()
print(f"Pending bills: {len(bills['data'])}")
print(f"Upcoming meetings: {len(events['data'])}")
print(f"Officials: {len(officials['data'])}"){
"data": [
{
"MatterFile": "CF 26-0312",
"MatterName": "Infrastructure Bond Oversight / Public Works Committee",
"MatterStatusName": "Pending",
"MatterTypeName": "Motion / Motion Response",
"MatterBodyName": "City Council"
},
{
"MatterFile": "CF 26-0298",
"MatterName": "Affordable Housing Incentive Zone / Planning and Land Use",
"MatterStatusName": "Pending",
"MatterTypeName": "Ordinance",
"MatterBodyName": "Planning and Land Use Management Committee"
}
],
"response_time": 1240
}Build vs. buy
The raw Legistar OData API works, but normalizing it across 1,800 municipalities is a project in itself. Scavio does that once so you do not have to.
| Raw Legistar OData | Scavio | |
|---|---|---|
| Setup time | Days to weeks per municipality | Minutes -- one API key for all 1,800+ |
| Response shape | Varies by municipality, OData quirks | Normalized JSON, same shape everywhere |
| Filtering | OData $filter syntax, inconsistent support | Simple JSON body parameters |
| Error handling | Undocumented, varies by municipality | Consistent HTTP status codes and messages |
| Multi-city queries | Build your own dispatcher | Change one parameter |
| Rate limiting | Undocumented, risk of IP bans | Managed, with usage dashboard |
| Authentication | None -- open, untracked access | API key with audit trail and credit tracking |
Structured JSON
Every endpoint returns typed, documented JSON. No HTML parsing, no regex, no post-processing.
Real-time data
Every call fetches live data. No stale caches, no batch delays -- the response reflects reality right now.
Python & JS SDKs
pip install scavio or npm i scavio. Call any government endpoint in two lines.
MCP server
Point your AI agent at mcp.scavio.dev and it gets every government data endpoint as a tool.
No infrastructure
No proxies, no browsers, no queues. Authenticated REST over HTTPS. Works behind any firewall.
Usage dashboard
Track calls, credits and response times per endpoint. Export logs for audit trails.
Frequently asked questions
- Which municipalities does the Legistar API cover?
- Scavio connects to the Legistar Web API used by 1,800+ US municipalities including New York City, Los Angeles, Chicago, Houston, Philadelphia, Phoenix, San Antonio, Dallas, San Jose and most major metro areas. A validate endpoint lets you check whether a given municipality is available before making data calls.
- What legislative data can I pull?
- You get structured JSON for legislation (matters including bills, ordinances, resolutions and motions), meeting events with agendas and event items, elected officials and their committee assignments, committee bodies, bill sponsors, attached documents and full legislative history with status changes and vote records.
- How much does it cost?
- Every Legistar endpoint costs 1 credit per call. You get 50 credits on signup with no credit card required. Plans start at $9 per month for the Project tier with the Bootstrap plan at $30 per month required for Legistar access. There is no per-municipality surcharge -- the same credit covers New York City and a 20,000-person suburb.
- Is this suitable for enterprise and government procurement?
- Scavio is a REST API that returns structured JSON over HTTPS. It requires no on-premise installation, no browser automation and no proxy infrastructure. Your team authenticates with a single API key, calls the endpoints they need, and parses standard JSON responses. That makes it straightforward to integrate into existing procurement workflows and government technology stacks.
- How is this different from calling the Legistar API directly?
- The raw Legistar OData API has no authentication, inconsistent response shapes across municipalities, XML-style filtering syntax and no rate limiting documentation. Scavio normalizes the interface so every municipality returns the same JSON shape, handles retries and timeouts, and gives you a single API key with usage tracking and credit-based billing. You spend time on your product, not on integration quirks.
- Can I use this for research across multiple cities?
- Yes. The same API call works for any of the 1,800+ supported municipalities -- just change the client parameter. That makes it straightforward to run comparative studies across jurisdictions, track policy diffusion between cities or build a national view of local legislative activity.
- How often is the data updated?
- Every API call fetches live data from the Legistar system at request time. There is no cache or batch delay. When a municipality updates its records in Legistar, your next API call reflects that change.
- Do you offer SDKs and integrations?
- Yes. Python and JavaScript SDKs, a remote MCP server at mcp.scavio.dev, and ready-made integrations for LangChain, CrewAI, n8n, AutoGen, Haystack and Agno. Legistar endpoints work identically to every other Scavio endpoint, so any integration that supports the API supports government data out of the box.
Start pulling legislative data in minutes
Sign up for 50 free credits. No credit card required. Query your first city council in under five minutes.