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. Search any past day on the Archive plan.
All times America/New_York. The same day from the API: GET /v1/channels/ch_xn897agt/schedule?date=2026-10-13&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Cubs ClassicsJeff Samardzija tosses a complete game 2-hit shutout while striking out 8 against the White Sox in the Crosstown Classic. From May 27, 2013. | Sport, Classic sport event | 2h | |
| 02:00 | Paid ProgrammingPaid programming. | Consumer, Shopping | 30m | |
| 02:30 | Paid ProgrammingPaid programming. | Consumer, Shopping | 30m | |
| 03:00 | 3 Vacuums in 1! NEW Shark Transformer! On nowShark's most advanced, innovative upright vacuum. | Consumer, Parenting | 3h | |
| 06:00 | Easy, Affordable Walk-In TubNo more slips or falls! Installation in just ONE Day! | Consumer, Home improvement | 1h | |
| 07:00 | Live: VSiN by the BooksBreaking down the biggest stories in sports betting from the night before and getting you up to speed as a new day begins; we break down the NBA Pl... | Sports talk | 3h | |
| 10:00 | Cubs ClassicsFrom April 17, 1987. | Sport, Classic sport event | 3h | |
| 13:00 | Live: Foul TerritoryBaseball the way it should be covered and exclusive interviews with MLB stars. AJ Pierzynski, Erik Kratz, Todd Frazier, Cameron Maybin, Jason Kipni... | Baseball, Sports talk | 2h | |
| 15:00 | Cubs ClassicsThe Cubs complete a series sweep of the White Sox thanks to strong pitching. Sean Marshall takes a shutout into the seventh inning and picks up the... | Sport, Classic sport event | 3h | |
| 18:00 | Live: Follow the MoneySports gambling veterans Mitch Moss and Pauly Howard discuss the latest sports news and offer their advice on the best bets of the day. | News, Sports talk | 1h | |
| 19:00 | CIRCA SURVIVORReplay. | Game show, Gaming | 30m | |
| 19:30 | OFFSZN Preps | 30m | ||
| 20:00 | The Varsity With John OurandJournalist John Ourand and industry experts report on executive decisions, team ownership, and media deals across the sports industry. | Sports talk | 1h | |
| 21:00 | Breaking ParA look at the game of golf through a different lens. | Golf | 30m | |
| 21:30 | OFFSZN Preps | 30m | ||
| 22:00 | Cubs 360Marquee Sports Network analysts break down the latest Cubs and Major League Baseball news. | Baseball | 1h | |
| 23:00 | CIRCA SURVIVORReplay. | Game show, Gaming | 30m | |
| 23:30 | Breaking ParA look at the game of golf through a different lens. | Golf | 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_xn897agt/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_xn897agt/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_xn897agt/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_xn897agt/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_xn897agt/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_xn897agt/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_xn897agt/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_pwad281w", "channel": "ch_xn897agt", "start": "2026-10-13T04:00:00Z", "stop": "2026-10-13T06:00:00Z", "title": "Cubs Classics", "sub_title": null, "description": "Jeff Samardzija tosses a complete game 2-hit shutout while striking out 8 aga...", "category": [ "sports", "classic sport event", "baseball" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 18, "date": "2026-10-13", "tz": "America/New_York" } }
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 | Monday 13 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.