Discover/Ca API
live

Ca APIassembly.ca.gov

Access California State Assembly event schedules and HLS video stream URLs. Retrieve live and archived legislative session data via two structured endpoints.

This API takes change requests — .
Endpoint health
verified 2h ago
get_event_media
list_events
1/2 passing latest checkself-healing
Endpoints
2
Updated
3h ago

What is the Ca API?

The assembly.ca.gov API provides access to California State Assembly event data and video stream metadata across 2 endpoints. The list_events endpoint returns event objects with titles, timestamps, locations, and media slugs for past recordings, while get_event_media resolves those slugs into HLS m3u8 playlist URLs, download links for video, audio, and captions, and poster image paths.

This call costs1 credit / call— charged only on success
Try it
Filter events by time period.
api.parse.bot/scraper/341c51f3-2253-4983-b6ea-a740168ce92f/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/341c51f3-2253-4983-b6ea-a740168ce92f/list_events?filter=all' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace assembly-ca-gov-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: California State Assembly Events — list events, drill into media."""
from parse_apis.assembly_ca_gov_api import AssemblyCA, EventFilter, MediaNotFound

client = AssemblyCA()

# List past events (those with archived video) and print titles.
for event in client.events.list(filter=EventFilter.PAST, limit=5):
    print(event.title, "|", event.date_time)

# Find the first past event that has a media_slug for video lookup.
event = client.events.list(filter=EventFilter.PAST, limit=10).first()
if event is not None and event.media_slug is not None:
    # Drill into the media detail using the slug from the event.
    try:
        media = client.event_media.get(media_slug=event.media_slug)
    except MediaNotFound:
        print("Media page not available for", event.media_slug)
    else:
        print(media.title, "|", media.date)
        print("Stream:", media.m3u8_url)
        for dl in media.downloads:
            print(f"  {dl.label}: {dl.url}")

print("exercised: events.list / event_media.get")
All endpoints · 2 totalmissing one? ·

List events from the California State Assembly. Returns today's events, upcoming events, past events with video links, or all combined. Past events include media_slug values that can be used with get_event_media to retrieve stream URLs. Today and upcoming events include structured start/end times when available via calendar data.

Input
ParamTypeDescription
filterstringFilter events by time period.
Response
{
  "type": "object",
  "fields": {
    "total": "integer count of events returned",
    "events": "array of event objects with title, date_time, type, location, start_time, end_time, event_id, media_slug, and description"
  },
  "sample": {
    "data": {
      "total": 33,
      "events": [
        {
          "type": "floor_meeting",
          "title": "Regular Session",
          "end_time": null,
          "event_id": "df-event-floor-session-content-20221",
          "location": null,
          "date_time": "",
          "media_slug": null,
          "start_time": null,
          "description": "The Assembly has adjourned until Monday, August 10th, 2026 at 1:00 p.m."
        },
        {
          "type": "committee_hearing",
          "title": "Joint Hearing Select Committee On Cybersecurity And Privacy And Consumer Protection",
          "end_time": null,
          "event_id": "df-event-committee-hearing-content-20194",
          "location": "State Capitol, Room 447",
          "date_time": "11:00 a.m.",
          "media_slug": null,
          "start_time": null,
          "description": null
        }
      ]
    },
    "status": "success"
  }
}

About the Ca API

Event Listings

The list_events endpoint returns an array of Assembly events filterable by time period using the filter parameter. Each event object includes title, date_time, type, location, start_time, end_time, event_id, media_slug, and description. Past events carry a media_slug value that links directly to archived video content. Today's and upcoming events expose scheduling structure without media slugs, since recordings are not yet available.

Video Stream Metadata

The get_event_media endpoint accepts a media_slug string (e.g., assembly-floor-session-20260806) and returns the full video stream record for that event. The response includes an m3u8_url for HLS playback, a media_type field indicating whether the stream is archive or live, a media_format field distinguishing video from audio, and a downloads array containing labeled download links for MP4 video, MP4 audio, and VTT captions. A media_image field provides the poster thumbnail URL when available.

Coverage and Scope

The API covers California State Assembly proceedings only — floor sessions, committee hearings, and similar legislative events listed on the assembly.ca.gov events page. The total field in list_events responses gives an integer count of how many events matched the applied filter. Media slugs from past events are the bridge between the two endpoints: retrieve slugs from list_events with a past filter, then pass each slug to get_event_media to resolve stream and download URLs.

Reliability & maintenanceVerified

The Ca API is a managed, monitored endpoint for assembly.ca.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when assembly.ca.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official assembly.ca.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
1/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Embed live or archived Assembly floor session video using the HLS m3u8_url in a custom media player
  • Build a legislative calendar app that surfaces today's and upcoming committee hearings using list_events
  • Download closed-caption VTT files from get_event_media to generate searchable transcripts of Assembly proceedings
  • Archive Assembly session recordings by collecting MP4 download URLs from past events
  • Monitor new Assembly events by polling list_events and filtering for recent additions by date_time
  • Display poster thumbnails alongside event listings using the media_image field from get_event_media
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does the California State Assembly website have an official developer API?+
No. The California State Assembly does not publish an official developer API for its events or media pages.
How does the filter parameter in list_events work, and what values does it accept?+
The filter parameter is optional and narrows results by time period. You can use it to return today's events, upcoming events, or past events with associated media slugs. Omitting the filter returns all event types combined. Only past events carry media_slug values that can be passed to get_event_media.
What exactly does get_event_media return for a live event versus an archived one?+
The media_type field in the response will be live for in-progress streams or archive for completed events. Archived events typically include the full downloads array with video, audio, and caption links, while live events expose the m3u8_url for real-time HLS playback. The availability of download links for live events may be limited until the stream ends.
Does the API cover California State Senate events or events from other state bodies?+
No. The API covers California State Assembly events and media only, sourced from assembly.ca.gov. Senate hearings and other California legislative bodies are not included. You can fork this API on Parse and revise it to add an endpoint pointing at the California Senate or other legislative event pages.
Does the API support pagination for large event result sets?+
The list_events response includes a total integer count but the current spec does not expose pagination parameters such as page or offset. If you need to handle large result windows or page through historical events incrementally, you can fork this API on Parse and revise it to add pagination support.
Page content last updated . Spec covers 2 endpoints from assembly.ca.gov.
Related APIs in Government PublicSee all →
arts.ca.gov API
Discover California arts funding opportunities by browsing grant programs, searching awarded grantees, and accessing resources from the California Arts Council. Find relevant grants and grantee information while staying updated with the latest news and resources in California's arts funding landscape.
c-span.org API
Find C-SPAN TV schedules by channel and date, and look up detailed information about specific events and programs. Plan your viewing by browsing what's on air and discovering full details about any broadcast that interests you.
capitol.texas.gov API
Search and monitor Texas Legislature bills, track their progress through legislative stages, and retrieve detailed action histories. Look up legislator contact information, district details, committee assignments, and full committee membership rosters.
lacity.org API
Access LA City Council meeting schedules, archived meetings, and official documents including council files, referrals, and board commission information. Search and retrieve detailed council files, meeting minutes, and journals to stay informed on city government activities and decisions.
sco.ca.gov API
Access data from sco.ca.gov.
legiscan.com API
Track and monitor legislative bills across all US states, search by topic or bill number, and access full bill text and datasets to stay informed on current legislation. Get detailed information on bill status, sponsors, and voting records without needing authentication.
caljobs.ca.gov API
Search and discover job listings from California's official CalJOBS database, with the ability to filter results by posting date and specific employers to find opportunities that match your needs. View detailed information about individual positions to learn more about roles that interest you.
courts.ca.gov API
Access the complete California Rules of Court including all 10 titles, Standards of Judicial Administration, and Ethics Standards for Neutral Arbitrators by searching specific rules, browsing tables of contents, or retrieving full chapter texts. Search across judicial procedure, civil rules, criminal rules, probate rules, family rules, and more to find the exact court guidance you need.