74.3M 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/Toronto time, what is on now and next, and the same data in your app with one call. Search any past day on the Archive plan.
All times America/Toronto. The same day from the API: GET /v1/channels/ch_cw5bbz2k/schedule?date=2026-10-13&tz=America/Toronto
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:30 | Live: SC With Jay OnraitThe latest scores and highlights, with host Jay Onrait. | Sports talk | 1h 30m | |
| 01:00 | Live: SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 02:00 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 03:00 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 30m | |
| 03:30 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 04:30 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 05:30 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 06:30 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 07:30 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 08:30 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 09:30 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 10:30 | SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 11:30 | SportsCentre On nowTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h | |
| 12:30 | Canadian Superbike ChampionshipFrom Canadian Tire Motorsport Park in Bowmanville, Ont. | Sport, Motorcycle racing | 30m | |
| 13:00 | Motorcycle ExperienceDave Hatch and Emily Roberts share their passion for the sport as they interview motorcycle enthusiasts, share hard won tips and tricks, review the... | Motorcycle | 30m | |
| 13:30 | SCThe best and worst from the world of sports. | NBA Plays of the Year | Series, Anthology | 30m |
| 14:00 | Live: Big Day With Peter SchragerPeter Schrager's daily show will feature rotating panelists focusing heavily on the NFL while also providing coverage of other major sports stories. | S1 E18, Episode 18 | Football | 1h |
| 15:00 | Live: NBA TodayIn-depth, comprehensive daily coverage of all aspects of the NBA from expert analysts. | Sports talk, Basketball | 1h | |
| 16:00 | NFL LiveHost Laura Rutledge takes the helm of this weekday show featuring the likes of Marcus Spears, Dan Orlovsky, Mina Kimes, and Adam Schefter. The "NFL... | S28 E113, Episode 113 | Football | 1h |
| 17:00 | College Football LiveWant to know up-to-the-minute reports about your favorite college football team? ESPN has it covered with this weekday studio show, a roundtable fo... | Football, News | 30m | |
| 17:30 | Live: Pardon the InterruptionThe debate is the story in this fast-paced, half-hour series hosted by former Washington Post sportswriters Tony Kornheiser and Michael Wilbon. The... | Sports talk | 30m | |
| 18:00 | Live: SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h 30m | |
| 19:30 | Live: Winnipeg Jets PregamePregame coverage for the Winnipeg Jets. | Hockey | 45m | |
| 20:15 | Live: NHL HockeyThe Winnipeg Jets host the Minnesota Wild for a Central Division showdown at Canada Life Centre. Minnesota's defense Quinn Hughes leads the team in... | Sport, Hockey | 2h 30m | |
| 22:45 | Live: SportsCentreTSN's flagship show providing news, highlights, analysis and interviews from the world of sports. | News, Sports talk | 1h 15m |
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_cw5bbz2k/schedule?date=2026-10-13&tz=America/Toronto" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_cw5bbz2k/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_cw5bbz2k/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_cw5bbz2k/schedule?date=2026-10-13&tz=America/Toronto"); 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_cw5bbz2k/schedule?date=2026-10-13&tz=America/Toronto", { 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_cw5bbz2k/schedule", params={"date": "2026-10-13", "tz": "America/Toronto"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_cw5bbz2k/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_r20d6dy9", "channel": "ch_cw5bbz2k", "start": "2026-10-13T03:30:00Z", "stop": "2026-10-13T05:00:00Z", "title": "Live: SC With Jay Onrait", "sub_title": null, "description": "The latest scores and highlights, with host Jay Onrait.", "category": [ "sports talk" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 25, "date": "2026-10-13", "tz": "America/Toronto" } }
What was on, on any date we hold: for research, catch-up, clip finding or proving a broadcast. Any window up to 31 days with /v1/channels/{id}/history on the Archive plan.
| Time | Friday 10 October 2025 | Category |
|---|---|---|
| Nothing held for that day. Try another date. | ||
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.