Discover/wiseye API
live

wiseye APIwiseye.org ↗

Retrieve WisconsinEye daily event schedules via API. Get Capitol floor sessions, committee hearings, and agency meetings with status and stream URLs.

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

What is the wiseye API?

The WisconsinEye API exposes one endpoint — get_schedule — that returns up to 50 events per page for any calendar day of Wisconsin government coverage. Each event record includes 8 response fields: a stable event_id, title, date, UTC start time, live/scheduled/completed status, institution, a canonical URL, and a player URL for direct playback access.

This call costs10 credits / call— charged only on success
Try it
Calendar day in YYYYMMDD form (US Central). Omitted = today. Any other form is rejected as invalid input.
Maximum events per page; values above 50 are capped to 50.
Zero-based index of the first event to return within the day's list. The next page starts at offset + limit.
→ api.parse.bot/scraper/57c6225a-259c-46fe-90a4-d15be737e7b8/<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/57c6225a-259c-46fe-90a4-d15be737e7b8/get_schedule?date=20261015' \
  -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 wiseye-org-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: WisconsinEye Schedule API — browse today's events."""
from parse_apis.wiseye_org_api import WisconsinEye, InvalidInput

client = WisconsinEye()

# List today's events, capping total items fetched.
for event in client.events.list(limit=5):
    print(event.title, event.status, event.institution)

# Fetch events for a specific past date; drill into the first one.
try:
    event = client.events.list(date="20261015", limit=1).first()
except InvalidInput:
    print("Invalid date format — use YYYYMMDD")
    event = None

if event is not None:
    print(event.title)
    print("  starts:", event.start_time_utc)
    print("  duration:", event.duration_minutes, "min")
    if event.video_file:
        print("  video:", event.video_file)

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

Returns the WisconsinEye events for one calendar day (US Central time), ordered by start time, as a page selected by offset and limit. Each item is one event: a stable event_id, title, local date, start_time_utc (UTC, Z suffix), status (scheduled, live or completed), an institution bucket derived from the site's categories and title (senate, assembly, committee, joint or legislature; 'house' never occurs for a state legislature), the event page url, and media references. Completed events whose recording has been published carry player_url, an HLS stream_url (.m3u8) and a direct .mp4 video_file plus duration_minutes from the recording; live events carry player_url and the HLS stream_url; scheduled events and completed events without a published recording carry null media. location is {name} when the site states one, otherwise null; description is plain text or null. Events already published by the site are read from its post feed, events still only announced on the two-week schedule page are returned as scheduled, so a day more than roughly two weeks ahead is normally empty. An empty day is a valid success with items [] and total 0. Cost is a few page reads plus one playback lookup per completed/live item on the page, so a page of 50 archived events is the most expensive call. Omitting date means today in US Central time; offset defaults to 0 and limit to 50 (limit is capped at 50); has_more is true when offset + limit is below total_available.

Input
ParamTypeDescription
datestringCalendar day in YYYYMMDD form (US Central). Omitted = today. Any other form is rejected as invalid input.
limitintegerMaximum events per page; values above 50 are capped to 50.
offsetintegerZero-based index of the first event to return within the day's list. The next page starts at offset + limit.
Response
{
  "type": "object",
  "fields": {
    "date": "requested day as YYYYMMDD",
    "items": "array of events: event_id, title, date (YYYY-MM-DD), start_time_utc, status (scheduled|live|completed), institution, url, player_url, stream_url (HLS .m3u8), video_file (.mp4), location ({name} or null), description, duration_minutes",
    "limit": "limit applied (after capping)",
    "total": "number of items on this page",
    "offset": "offset applied",
    "has_more": "true when another page exists at offset + limit",
    "total_available": "number of events the site lists for the day"
  },
  "sample": {
    "data": {
      "date": "20261016",
      "items": [
        {
          "url": "https://wiseye.org/2026/10/16/wolf-advisory-committee-meeting/",
          "date": "2026-10-16",
          "title": "Wolf Advisory Committee Meeting",
          "status": "completed",
          "event_id": "33214",
          "location": null,
          "player_url": "https://player.invintus.com/?clientID=2789595964&eventID=2026101053",
          "stream_url": "https://api.v3.invintus.com/StreamURI/hls/2789595964/2026101053/media.m3u8",
          "video_file": "https://f005.backblazeb2.com/file/invintus-client-media/2789595964/954f00f8c1936ab630729a3c22d389e9e737312f.mp4",
          "description": "On October 16, 2026 the DNR Wolf Advisory Committee will held meeting. The focus of this meeting will be to review and provide committee feedback on the department's proposed approach to DNR rule number NH-10-26(E) on prorating wolf depredation claims in the event funding is insufficient in a given fiscal year.",
          "institution": "committee",
          "start_time_utc": "2026-10-16T15:00:00Z",
          "duration_minutes": 126
        }
      ],
      "limit": 1,
      "total": 1,
      "offset": 1,
      "has_more": true,
      "total_available": 3
    },
    "status": "success"
  }
}

About the wiseye API

What get_schedule Returns

The get_schedule endpoint returns a paginated list of WisconsinEye events for a single calendar day in US Central time. Pass a date parameter in YYYYMMDD format to target a specific day; omit it to retrieve today's schedule. Each event in the items array carries an event_id (stable across requests), title, date in YYYY-MM-DD form, start_time_utc with a Z suffix, and a status field that reflects whether the event is scheduled, live, or completed. Events are ordered by start time.

Coverage and Event Types

WisconsinEye covers Wisconsin state government proceedings: Capitol floor sessions, committee hearings, state agency meetings, news conferences, and related programs. The institution field on each item identifies the body holding the event. Two URL fields are included per event: url for the canonical event page and player_url for direct playback, making it straightforward to link out or embed stream references.

Pagination

The endpoint paginates using offset and limit. The limit input is capped server-side at 50; values above that are reduced automatically. The response echoes back the limit and offset applied, and includes total_available (total events the site lists for the day), total (items on this page), and a has_more boolean. To fetch subsequent pages, increment offset by the applied limit until has_more is false.

Reliability & maintenanceVerified

The wiseye API is a managed, monitored endpoint for wiseye.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when wiseye.org 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 wiseye.org 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
  • Embed a live Wisconsin state legislature schedule widget that shows today's floor sessions and committee hearings.
  • Monitor the status field to trigger alerts when a tracked event transitions to live.
  • Build a Wisconsin government transparency dashboard aggregating events by institution across multiple days.
  • Archive daily WisconsinEye schedules to a database using date parameter iteration and has_more pagination.
  • Surface direct stream links using the player_url field for automated broadcast or media monitoring workflows.
  • Cross-reference start_time_utc fields with calendar tools to surface Wisconsin government events in time-zone-aware applications.
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 WisconsinEye have an official developer API?+
WisconsinEye does not publish a documented public developer API. This Parse API provides structured access to the daily event schedule data available on wiseye.org.
What does the `status` field in get_schedule actually distinguish?+
The status field returns one of three string values: scheduled for upcoming events, live for events currently in progress, and completed for events that have ended. This lets you filter or poll for active streams without checking the event's start_time_utc independently.
Can I request schedules for multiple days in a single call?+
No. The get_schedule endpoint accepts one date value per request and returns events for that single calendar day. To retrieve schedules across a date range, issue one request per day and paginate each using offset and has_more. You can fork this API on Parse and revise it to add a multi-day range endpoint.
Does the API return video metadata such as duration, resolution, or recorded stream URLs for completed events?+
Not currently. The API exposes url and player_url per event but does not return video duration, resolution, clip segments, or direct media file links. You can fork this API on Parse and revise it to add an endpoint that fetches those details for a given event_id.
What happens if I pass a date in a format other than YYYYMMDD?+
Any date value not in strict YYYYMMDD form is rejected as invalid input. The parameter only accepts that exact eight-digit format; dashes, slashes, or other separators are not supported.
Page content last updated . Spec covers 1 endpoint from wiseye.org.
Related APIs in Government PublicSee all →