Discover/Mi API
live

Mi APIhouse.mi.gov ↗

Retrieve Michigan House of Representatives session and committee meeting schedules for any calendar day, including local/UTC times and live or archived media links.

Endpoint health
verified 2h ago
get_schedule
1/1 passing latest checkself-healing
Endpoints
1
Updated
3h ago

What is the Mi API?

The house.mi.gov API exposes 1 endpoint — get_schedule — that returns the full Michigan House TV daily calendar: every House session and committee meeting scheduled for a given date, with 8 response fields per event including local start time, a UTC-normalized timestamp, event status, and media links for live or archived coverage.

This call costs2 credits / call— charged only on success
Try it
Calendar day as YYYYMMDD, interpreted in America/Detroit. Echoed back as data.date.
Maximum items to return on this page (minimum 1). Omitted = all remaining items.
Number of items to skip from the start of the day's list.
→ api.parse.bot/scraper/44d03ea2-58ad-4393-acaf-e15e23c3794f/<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/44d03ea2-58ad-4393-acaf-e15e23c3794f/get_schedule?date=20261001' \
  -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 house-mi-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: Michigan House TV Schedule — fetch a day's events."""
from parse_apis.house_mi_gov_api import HouseMiGov, InvalidDateFormat

client = HouseMiGov()

# List all House TV events for a specific day, capped at 10 items.
for event in client.events.list(date="20261001", limit=10):
    print(event.title, event.time, event.status)
    if event.location is not None:
        print("  ", event.location.full_name)

# Drill into a single event to inspect media and metadata.
event = client.events.list(date="20261001", limit=1).first()
if event is not None:
    print(event.event_id, event.start_time_utc)
    print("Video:", event.video_file)
    print("Category:", event.category, "| Series:", event.series_title)
    if event.description is not None:
        print("Agenda:", event.description)

# Handle an invalid date format gracefully.
try:
    client.events.list(date="2026-08-01", limit=1).first()
except InvalidDateFormat as e:
    print("Bad date format:", e.message)

print("exercised: events.list / InvalidDateFormat")
All endpoints · 1 totalmissing one? ·

Returns the Michigan House of Representatives House TV schedule for one calendar day (America/Detroit): every House session and House committee meeting listed on the House calendar for that date, sorted by start time. Each item carries the displayed local start time plus a UTC conversion, the room/building, the posted agenda text when present (otherwise null), a status of live, scheduled or completed, and media links. Media resolution: when the Video Archive already lists a recording for the event that day, video_file is the archived MP4 and player_url is the archive player page (status completed); otherwise video_file is the YouTube live-stream link the calendar points to and player_url is the House TV player page, with status scheduled before the listed start time, live after it on the current day, and completed for past days. The site publishes no HLS manifests, durations or thumbnails, so stream_url, duration, duration_minutes and thumbnail are always null. Mackinac Room bookings, the untimed QuadBox multi-view channel and non-House events are not returned. Pagination is local: offset skips that many items and limit caps the page; omitting limit returns all remaining items. total is the page size, total_available the day's full count, has_more whether items remain. A day with nothing scheduled returns an empty items list with status success. Two requests per call (calendar week + archive lookup), one when the day has no events.

Input
ParamTypeDescription
daterequiredstringCalendar day as YYYYMMDD, interpreted in America/Detroit. Echoed back as data.date.
limitintegerMaximum items to return on this page (minimum 1). Omitted = all remaining items.
offsetintegerNumber of items to skip from the start of the day's list.
Response
{
  "type": "object",
  "fields": {
    "date": "echo of the requested day as YYYYMMDD",
    "items": "array of event objects: event_id, title, date (YYYY-MM-DD), time (displayed local start), start_time_utc (ISO-8601 Z), status (live|scheduled|completed), institution (house), type (session|committee), description (agenda text or null), duration/duration_minutes (always null), url (House TV calendar page), player_url, stream_url (always null), video_file (archived MP4 or YouTube live link), location {name, type, fullName} or null, thumbnail (null), category, series_title, program_id (archive video id or null)",
    "limit": "page size applied (page length when limit omitted)",
    "total": "number of items on this page",
    "offset": "offset applied",
    "has_more": "true when items remain after this page",
    "total_available": "number of events for the day before pagination"
  },
  "sample": {
    "data": {
      "date": "20261001",
      "items": [
        {
          "url": "https://house.mi.gov/Calendar?from=HouseTV",
          "date": "2026-10-01",
          "time": "12:00 PM",
          "type": "session",
          "title": "House Session",
          "status": "completed",
          "category": "House Session",
          "duration": null,
          "event_id": "1149_0_196",
          "location": {
            "name": "House Session Floor",
            "type": "State Capitol Building",
            "fullName": "House Session Floor, State Capitol Building, Lansing, MI"
          },
          "thumbnail": null,
          "player_url": "https://house.mi.gov/VideoArchivePlayer?video=Session-100126.mp4",
          "program_id": "Session-100126",
          "stream_url": null,
          "video_file": "https://www.house.mi.gov/ArchiveVideoFiles/Session-100126.mp4",
          "description": null,
          "institution": "house",
          "series_title": "House Session",
          "start_time_utc": "2026-10-01T16:00:00Z",
          "duration_minutes": null
        }
      ],
      "limit": 1,
      "total": 1,
      "offset": 0,
      "has_more": false,
      "total_available": 1
    },
    "status": "success"
  }
}

About the Mi API

What the API Returns

The get_schedule endpoint returns all House TV schedule entries for a single calendar day in the America/Detroit timezone. Each call requires a date parameter formatted as YYYYMMDD. The response includes a total_available count of events for that day, an items array of event objects, and pagination metadata (limit, offset, has_more).

Event Object Fields

Each item in the items array contains: event_id, title, date (YYYY-MM-DD), time (displayed local start time), start_time_utc (ISO-8601 UTC timestamp), status (e.g. live, archived, scheduled), and media link fields for accessing broadcast coverage. Events are sorted by start time, covering both floor sessions and committee meetings listed on the official House calendar.

Pagination

When a day has many events, use the optional limit and offset integer parameters to page through results. Omitting limit returns all events for the day in a single response. The has_more field signals whether additional items remain beyond the current page, and total_available gives the full event count before any pagination is applied.

Scope and Freshness

Coverage is limited to the Michigan House of Representatives calendar. The API reflects scheduled sessions and committee meetings as listed on house.mi.gov for the requested date. Data is tied to what appears on the official House TV schedule; Senate schedules and legislative bill data are not included.

Reliability & maintenanceVerified

The Mi API is a managed, monitored endpoint for house.mi.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when house.mi.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 house.mi.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/1 endpoint 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
  • Display today's Michigan House committee meeting schedule in a civic information app using the date parameter set to the current date
  • Build a calendar widget that shows House session start times in both local (America/Detroit) and UTC using time and start_time_utc fields
  • Monitor which House events are currently live by filtering items on the status field
  • Archive links to past committee meeting broadcasts by storing the media link fields from historical date requests
  • Alert subscribers when new events appear on a given day by comparing total_available across periodic calls
  • Paginate through a busy legislative day's full schedule using limit and offset without loading all events at once
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 house.mi.gov provide an official developer API?+
No. The Michigan House of Representatives website does not publish a documented public developer API. This Parse API provides structured programmatic access to the House TV schedule data published on house.mi.gov/Calendar.
What does the `status` field in each event object indicate?+
The status field reflects the broadcast state of the event as shown on the House TV schedule — for example, whether the event is currently live, has an archived recording available, or is upcoming. This lets you filter the items array to surface only events with available media without checking each media link individually.
Does the API cover Michigan Senate schedules or legislative bill data?+
Not currently. The API covers only the Michigan House of Representatives TV schedule — House floor sessions and House committee meetings for a requested calendar day. You can fork this API on Parse and revise it to add an endpoint targeting Senate or bill-related data sources.
How far back or forward can I request dates?+
The date parameter accepts any YYYYMMDD value, but available data depends on what house.mi.gov publishes for that date. Future dates return scheduled events as they appear on the official calendar; past dates return events including archived media status if present. Dates with no scheduled House activity will return an empty items array with total_available of 0.
Can I retrieve schedules for multiple days in one request?+
Not currently. Each get_schedule call targets a single calendar day specified by the required date parameter. You can fork this API on Parse and revise it to add a date-range endpoint that batches multiple daily responses.
Page content last updated . Spec covers 1 endpoint from house.mi.gov.
Related APIs in Government PublicSee all →
cloud.castus.tv API
Access data from cloud.castus.tv.
house.texas.gov API
Watch live legislative events from the Texas House of Representatives by accessing the broadcast schedule for committee hearings and other proceedings. Plan your viewing by retrieving detailed information about upcoming livestreams and their scheduled times.
sg001-harmony.sliq.net API
Check the upcoming livestream schedule for Colorado General Assembly sessions and committee meetings directly from their Harmony video system. Find event details like dates, times, and session information to plan when to watch legislative proceedings live.
malegislature.gov API
Check the live stream schedule for Massachusetts legislative sessions on any date to find when the General Court is broadcasting. Plan your viewing of state senate and house proceedings directly from the official legislature website.
nyassembly.gov API
Check the New York State Assembly's live and upcoming event schedule to stay informed about legislative sessions, hearings, and broadcasts. Access current meeting times, dates, and events directly from the official broadcasting system.
civicstream.tv API
Watch live government proceedings from state legislatures, city councils, and national feeds directly through Civic Stream. Check the schedule to plan when you want to tune into your elected representatives at work.
ilga.gov API
Check the Illinois House of Representatives' current session status, upcoming hearings, and official bulletins to stay informed about legislative activities. Plan your civic engagement or track legislative proceedings with real-time schedule information from the state's general assembly.
njleg.state.nj.us API
Access data from njleg.state.nj.us.