Ohio Channel APIohiochannel.org ↗
Retrieve scheduled livestream URLs, program names, start/end times, and channel info from the Ohio Channel broadcast schedule for any date.
What is the Ohio Channel API?
The Ohio Channel API exposes 1 endpoint — get_schedule — that returns all scheduled livestreams for a given date, including 6 fields per stream: HLS m3u8 stream URLs, program names, start and end times, channel names, and broadcast state. It covers Ohio government and public affairs programming, making it straightforward to build schedule monitors, stream pickers, or notification tools without manually checking the broadcast schedule.
curl -X GET 'https://api.parse.bot/scraper/54f86b0c-7ebc-46a1-9bbc-4cce7a54da01/get_schedule?date=20260819' \ -H 'X-API-Key: $PARSE_API_KEY'
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 ohiochannel-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: Ohio Channel schedule — fetch today's livestreams."""
from parse_apis.ohiochannel_org_api import OhioChannel, InvalidDateFormat
client = OhioChannel()
# Retrieve scheduled livestreams for a specific date (YYYYMMDD, Eastern Time).
try:
for stream in client.streams.list(date="20260819", limit=10):
print(stream.name, "|", stream.start_time, "→", stream.end_time)
print(" channel:", stream.channel_name, "| state:", stream.state)
print(" url:", stream.stream_url)
except InvalidDateFormat as e:
print("Bad date format:", e.message)
# Use .first() to grab only the earliest scheduled stream for a date.
earliest = client.streams.list(date="20260820", limit=1).first()
if earliest is not None:
print("First stream on 2026-08-20:", earliest.name, "at", earliest.start_time)
print("exercised: streams.list / InvalidDateFormat")
Returns all scheduled livestreams for a given date, including stream URLs (HLS m3u8), program names, start/end times, channel names, and broadcast state. The endpoint queries all upcoming scheduled streams and filters to the requested date. Dates in the past or far future may return an empty streams array if no broadcasts are scheduled. All times are Eastern Time.
| Param | Type | Description |
|---|---|---|
| daterequired | string | Date to retrieve scheduled livestreams for, in YYYYMMDD format (e.g. 20260818). |
{
"type": "object",
"fields": {
"streams": "array of livestream objects, each containing name, start_time, end_time, stream_url, channel_name, and state"
},
"sample": {
"data": {
"streams": [
{
"name": "The Sound of Ideas - 8-18-2026",
"state": "LIVE",
"end_time": "2026-08-18 10:00:00",
"start_time": "2026-08-18 09:00:00",
"stream_url": "https://0888934ec1a5.us-east-1.playback.live-video.net/api/video/v1/us-east-1.289485033693.channel.AS3KfjpiWlTR.m3u8",
"channel_name": "The Sound of Ideas"
},
{
"name": "All Sides - 8-18-2026 A",
"state": "OFF_AIR",
"end_time": "2026-08-18 11:00:00",
"start_time": "2026-08-18 10:00:00",
"stream_url": "https://0888934ec1a5.us-east-1.playback.live-video.net/api/video/v1/us-east-1.289485033693.channel.YsfP7UvVa4Pn.m3u8",
"channel_name": "All Sides"
}
]
},
"status": "success"
}
}About the Ohio Channel API
What the API Returns
The get_schedule endpoint accepts a single required parameter, date, in YYYYMMDD format (for example, 20260818). It returns a streams array where each object contains the program name, start_time, end_time, stream_url (an HLS m3u8 link suitable for direct playback), channel_name, and state. This gives you everything needed to enumerate what is scheduled and link directly to the live video feed.
Endpoint Behavior and Coverage
The endpoint queries all upcoming scheduled streams and filters results to the requested date. Because of this, dates far in the past or the distant future may return empty or incomplete results — the most reliable results come from querying current or near-future dates. Each stream entry is self-contained; no additional lookup is needed to obtain the playable URL.
What the Data Covers
Ohio Channel broadcasts Ohio government proceedings, legislative sessions, public affairs programming, and similar civic content. The channel_name and state fields let you distinguish between different broadcast channels and the current broadcast state of each stream (for example, whether a stream is upcoming or actively live at query time).
The Ohio Channel API is a managed, monitored endpoint for ohiochannel.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ohiochannel.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 ohiochannel.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a daily digest that lists all Ohio Channel livestreams and their HLS URLs for a given date
- Send push notifications when a specific program name appears on the schedule
- Embed a live player that auto-selects the current stream_url based on start_time and end_time
- Track which channel_name carries specific types of legislative programming over time
- Monitor broadcast state to detect when a scheduled stream goes live
- Aggregate weekly Ohio government broadcast schedules for a civic transparency tool
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does Ohio Channel offer an official developer API?+
What does the stream_url field contain, and can I use it for direct playback?+
stream_url field returns an HLS m3u8 URL for the scheduled livestream. Any HLS-compatible player (such as Video.js, hls.js, or native iOS/macOS AVPlayer) can consume it directly without additional authentication or token exchange.Does the API return on-demand or archived recordings in addition to scheduled livestreams?+
get_schedule. On-demand or archived recordings are not included. You can fork this API on Parse and revise it to add an endpoint targeting Ohio Channel's video archive.What happens when I query a date with no scheduled broadcasts?+
streams array will be empty for dates that have no scheduled programming, dates far in the past, or dates too far in the future for the schedule to be populated. Querying dates within the current or near-upcoming window returns the most complete results.Does the API expose metadata like program descriptions or speaker information?+
name, start_time, end_time, stream_url, channel_name, and state — no extended metadata such as descriptions or speaker lists. You can fork the API on Parse and revise it to add an endpoint that retrieves per-program detail pages if that data is needed.