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.
All times America/Toronto. The same day from the API: GET /v1/channels/ch_g9yzaj62/schedule?date=2026-10-12&tz=America/Toronto
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:07 | We Made Bit City Ourselveswhat are we supposed to write here | 1h 4m | ||
| 00:11 | Bit CityIt's HALLOWEEN do you believe it?! | Bit City: The Halloween Episode | 36m | |
| 00:47 | Bit CityOur parents created us, but can they create an episode of Bit City? | Bit City: Our Parents Wrote This Episode | 1h | |
| 01:47 | Culinary CrimesMs. Italian herself is here to crack the case of these crimes of culinary origins. Dun Dun. | Trying Weird Reddit Substitutions | 45m | |
| 02:32 | Culinary CrimesPizza, wings, and a brownie? What could go wrong? | Strange Junk Food Substitutions | Culinary Crimes | 35m | |
| 03:07 | Culinary CrimesIt's dinner time and what's on the menu? JUSTICE! | The Worst Ingredient Swaps | 41m | |
| 03:49 | Culinary CrimesThe best detective in the WORLD is here to solve culinary crimes. | Professional Detective" Solves These Food Crimes | 37m | |
| 04:26 | Culinary CrimesSome REAL weirdos making up recipes out there | The Most Cursed Ingredient Swaps | 44m | |
| 05:10 | Trying Vintage Recipes | Culinary CrimesSometimes Grandma's cooking does NOT hit the spot... | 37m | ||
| 05:47 | Culinary CrimesSometimes a recipe is more of a guideline...FOR CRIMINALS | Thanksgiving Food Substitutions | 40m | |
| 07:18 | Culinary CrimesWe specifically said DON'T mess with Texas...and they did. | Texas Food Made Wrong | 54m | |
| 08:12 | Guessing the Worst Vegan and Gluten-Free Substitutions | Culinary CrimesWhat crimes were committed in these vegan and gluten-free recipes? The experts, Ian and Anthony, are here to help us figure it out. | 41m | ||
| 08:53 | Date Night Disaster Recipes | Culinary CrimesNO. It is NOT the same thing. | 53m | ||
| 09:46 | Culinary CrimesThese vintage recipes should stay in the past. | Ruining Retro Recipes | Culinary Crimes | 44m | |
| 10:30 | Tasting Bizarre Breakfast Swaps | Culinary CrimesNo time to wait until Saturday, GET YOUR PANCAKES OUT it's Culinary Crimes! | 47m | ||
| 11:17 | Culinary CrimesIt's my party and I'll cry if I want to...and these recipes make me want to. | Party Food Fouls | Culinary Crimes | 44m | |
| 12:01 | Can We Guess The Secret Ingredient? | Culinary CrimesTaters or traitors? To spud or no to spud? | 37m | ||
| 12:38 | Culinary CrimesFAIR FOOD! But are these recipe changes fair or not? We will be the judge! | What's Wrong With These Fair Foods? | Culinary Crimes | 48m | |
| 13:27 | Culinary CrimesWe brought in THE EXPERTS | Solving Culinary Crimes ft. Alix & Zoya | Culinary Crimes | 35m | |
| 14:01 | Culinary CrimesTis the season for JUSTICE | Not So Happy Holiday Mashup | Culinary Crimes | 52m | |
| 14:53 | Culinary CrimesWe are so back, hello 2026! | Cheers To Crime! | Culinary Crimes | 36m | |
| 15:29 | Darts Ultimate ShowdownIt's just one of those days. | 1h 4m | ||
| 16:34 | Darts Ultimate Showdown 2I'm working late 'cause I'm a professional darts playerrrr | 43m | ||
| 17:17 | Darts Ultimate Showdown 3Now watch this space. | 44m | ||
| 18:00 | SmoshWe have some killer duos here at Smosh, but how well duo they know each other? | Duo? | Duo You Know Your Duo? | 58m | |
| 18:58 | Battle Of The Besties | Duo You Know Your Duo?Duo you know your bestie? | 44m | ||
| 19:42 | Grip GuysGrip guys, the backbone of the entertainment industry. | Breaking Up | 39m | |
| 20:21 | Grip GuysThe guys have a medical emergency - how will they deal without the set medic?? | Ricky's Funeral | 34m | |
| 20:55 | Grip GuysShe really liked their vibe... | Throuple | 37m | |
| 21:32 | Grip GuysThe guys need a change. | The Hair Cut From Hell | 47m | |
| 22:20 | Grip GuysDON'T bring it up. | Lobster Bisque | 35m | |
| 22:55 | Grip GuysThe happily ever after we all wanted. | The Vegas Finale | 30m | |
| 23:25 | SmoshTwo words: MESS SEE (messy). | The Messiest Relationships on Reddit | 1h 20m |
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_g9yzaj62/schedule?date=2026-10-12&tz=America/Toronto" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_g9yzaj62/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_g9yzaj62/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_g9yzaj62/schedule?date=2026-10-12&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_g9yzaj62/schedule?date=2026-10-12&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_g9yzaj62/schedule", params={"date": "2026-10-12", "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_g9yzaj62/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_rrc33qkz", "channel": "ch_g9yzaj62", "start": "2026-10-12T03:07:55Z", "stop": "2026-10-12T04:11:40Z", "title": "We Made Bit City Ourselves", "sub_title": null, "description": "what are we supposed to write here", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 33, "date": "2026-10-12", "tz": "America/Toronto" } }
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.