ScavioScavio
ToolsPricing
Sign InsGet Startedg
10 Endpoints · 1,800+ Municipalities · Structured JSON

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.

Start free API documentation

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.

Legistar Matters4 endpoints · 1 cr

Bills, ordinances, resolutions -- with sponsors, attachments and full legislative history

Legistar Events2 endpoints · 1 cr

Meeting agendas, event items, scheduled hearings and session calendars

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.

Legistar Persons & Bodies3 endpoints · 1 cr

Council members, board members, committee rosters and staff details

Legistar Validate1 endpoints · 1 cr

Check whether a municipality is available before making data calls

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'])}")
200 response.jsoncaptured
{
  "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 ODataScavio
Setup timeDays to weeks per municipalityMinutes -- one API key for all 1,800+
Response shapeVaries by municipality, OData quirksNormalized JSON, same shape everywhere
FilteringOData $filter syntax, inconsistent supportSimple JSON body parameters
Error handlingUndocumented, varies by municipalityConsistent HTTP status codes and messages
Multi-city queriesBuild your own dispatcherChange one parameter
Rate limitingUndocumented, risk of IP bansManaged, with usage dashboard
AuthenticationNone -- open, untracked accessAPI 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.

Create free account View pricing
ScavioScavio

One scraper API for every social, search and ecommerce platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy