73.8M listings
Every country's schedule under one key, one shape and one set of ids.
GET /v1/now
What every channel in a country is showing this minute, with the next programme after it.
MIT, no lock-in
Every lab tool reads only the public API with your own key, so it runs on the free key.
Working normally
Checked every minute from outside our own servers.
The full schedule in America/New_York time, what is on now and next, and the same data in your app with one call.
All times America/New_York. The same day from the API: GET /v1/channels/ch_32sxvkry/schedule?date=2026-10-13&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | More Than FriendsJason and Talan stir up all kinds of trouble when their eyes start to wander from their girlfriends Jessica and Taylor. | 30m | ||
| 00:30 | Winter FormalIt's time to suit up for the LB Winter Formal and nothing causes more drama than a girl asks boy dance. Drama is what Jason gets when he goes with... | 30m | ||
| 01:00 | I Hate Valentines DayValentine's Day brings nothing but trouble for Jessica who's still desperately hanging on to Jason (whose heart is clearly elsewhere). | 30m | ||
| 01:30 | Get Over HimThe LB hotties head from the beach to the slopes to cheer up Jessica after Jason calls them dunzo. | 30m | ||
| 02:00 | What Goes AroundThe Jessica, Jason and Alex M. love triangle continues to get complicated when Alex finds out that Jessica and Jason have been hooking up again beh... | 30m | ||
| 02:30 | Cabo, Cabo, CaboThe gang heads south of the border to Cabo and things get super spicy when Alex confronts Jessica about hooking up with Jason and the two nearly co... | 30m | ||
| 03:00 | Lies and GoodbyeThings get tricky when Talan professes his love to Kristen shortly before Stephen does the same. | 30m | ||
| 03:30 | Dont Hate the GameKristen hooks up with Jessica's new crush. Stephen and LC share a moment in San Fran. | 30m | ||
| 04:00 | Our Last PromIt's prom time again at LB and the usual hijinx are in full force. Kristin still has no date. Will Talan swoop in and take her, or is it stag city ... | 30m | ||
| 04:30 | Boys Are Like PursesLC decides it's time to do what she does best and throw a poolside BBQ. Kristin reluctantly shows up briefly, and Stephen idly watches as Jason st... | 30m | ||
| 05:00 | The End of the BeginningThe time has finally come for the gang to graduate high school and leave their LB bubble... mixed emotions run high and the tears start rolling. | 30m | ||
| 05:30 | I Saw You Kiss HerJason kisses Jessica and gets busted by LC. Look out! | 30m | ||
| 06:00 | Nothing More to SayLC throws another party and after his moronic actions at the benefit. Jason comes crawling back to apologize, but he can't even do that well. | 30m |
Copy, add your key, run. The free key reads yesterday and today on every channel, 500 calls a day.
curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_32sxvkry/schedule?date=2026-10-13&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_32sxvkry/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_32sxvkry/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_32sxvkry/schedule?date=2026-10-13&tz=America/New_York"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("TVG_KEY")], ]); foreach (json_decode(curl_exec($ch), true)["data"] as $slot) { echo $slot["start"], " ", $slot["title"], "\n"; }
const r = await fetch("https://api.tvguideapi.com/v1/channels/ch_32sxvkry/schedule?date=2026-10-13&tz=America/New_York", { headers: { Authorization: `Bearer ${process.env.TVG_KEY}` }, }); const { data } = await r.json(); data.forEach(s => console.log(s.start, s.title, s.flags.live ? "LIVE" : ""));
import os, requests r = requests.get( "https://api.tvguideapi.com/v1/channels/ch_32sxvkry/schedule", params={"date": "2026-10-13", "tz": "America/New_York"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_32sxvkry/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_ces3yfkd", "channel": "ch_32sxvkry", "start": "2026-10-13T04:00:00Z", "stop": "2026-10-13T04:30:00Z", "title": "More Than Friends", "sub_title": null, "description": "Jason and Talan stir up all kinds of trouble when their eyes start to wander ...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 13, "date": "2026-10-13", "tz": "America/New_York" } }
8 calls cover a channel from its details to its past. Each one opens in the documentation with Try it.
A free key in a minute, with Google. No card. Yesterday and today on every channel in 150 countries.