72.1M 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 Asia/Singapore 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 Asia/Singapore. The same day from the API: GET /v1/channels/ch_34zv1qnh/schedule?date=2026-10-17&tz=Asia/Singapore
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Halloween Baking Championship (Series 9): Step Fright Up (Episode 8) | 1h | ||
| 01:00 | Bizarre Foods: Delicious Destinations (Series 7): London A Second Bite (Episode 13) | 30m | ||
| 01:30 | Bizarre Foods: Delicious Destinations (Series 7): Scottish Highlands (Episode 14) | 30m | ||
| 02:00 | Dinner: Impossible (Series 10): Island Livin' (Episode 1) | 1h | ||
| 03:00 | Halloween Baking Championship (Series 11): Flawed Anatomy (Episode 5) | 1h | ||
| 04:00 | Super Mega Cakes (Series 1): Architectural Wonders (Episode 3) | 1h | ||
| 05:00 | Halloween Baking Championship (Series 11): For Doom the Bell Tolls (Episode 1) | 2h | ||
| 07:00 | Chopped (Series 52): Seeking A Sous-Chef: Finale (Episode 13) | 1h | ||
| 08:00 | Restaurant: Impossible (Series 20): The Imbalanced Chef (Episode 26) | 45m | ||
| 08:45 | Diners, Drive-Ins, and Dives (Series 32): Chicken and Briskets (Episode 13) | 22m | ||
| 09:07 | Diners, Drive-Ins, and Dives (Series 33): South Dakota Smorgasbord (Episode 5) | 23m | ||
| 09:30 | Beat Bobby Flay (Series 26): Who's The Boss (Episode 12) | 22m | ||
| 09:52 | Beat Bobby Flay (Series 26): It's All Gravy (Episode 13) | 23m | ||
| 10:15 | Halloween Baking Championship (Series 9): Step Fright Up (Episode 8) | 45m | ||
| 11:00 | Dinner: Impossible (Series 10): Island Livin' (Episode 1) | 1h | ||
| 12:00 | Be My Guest with Ina Garten (Series 4): Danny Meyer (Episode 4) | 30m | ||
| 12:30 | Be My Guest with Ina Garten (Series 5): Nicole Mann (Episode 1) | 30m | ||
| 13:00 | Be My Guest with Ina Garten (Series 5): David Remnick (Episode 2) | 30m | ||
| 13:30 | Be My Guest with Ina Garten (Series 5): Emily Mortimer (Episode 3) | 30m | ||
| 14:00 | Halloween Baking Championship (Series 11): Flawed Anatomy (Episode 5) | 1h | ||
| 15:00 | Super Mega Cakes (Series 1): Architectural Wonders (Episode 3) | 1h | ||
| 16:00 | Bizarre Foods: Delicious Destinations (Series 7): Frankfurt (Episode 18) | 30m | ||
| 16:30 | Bizarre Foods: Delicious Destinations (Series 7): Tuscany (Episode 19) | 30m | ||
| 17:00 | Bizarre Foods: Delicious Destinations (Series 7): Genoa (Episode 20) | 30m | ||
| 17:30 | Bizarre Foods: Delicious Destinations (Series 7): Emiliaromagna (Episode 21) | 30m | ||
| 18:00 | Alex vs America (Series 1): Alex vs Spicy (Episode 1) | 1h | ||
| 19:00 | Alex vs America (Series 1): Alex vs Shellfish (Episode 2) | 1h | ||
| 20:00 | Diners, Drive-Ins, and Dives (Series 39): Sandwich Smorgasbord (Episode 8) | 30m | ||
| 20:30 | Diners, Drive-Ins, and Dives (Series 42): Trinidad, Thailand and Italy (Episode 1) | 30m | ||
| 21:00 | Diners, Drive-Ins, and Dives (Series 42): Sandwiches and Soul (Episode 2) | 30m | ||
| 21:30 | Diners, Drive-Ins, and Dives (Series 42): Flavortown Flavorfest (Episode 3) | 30m | ||
| 22:00 | Flavortown Food Fight (Series 1): Inaugural Food Fight (Episode 1) | 1h | ||
| 23:00 | 100 Cooks (Series 1): 8 Cooks Down To 1 (Episode 9) | 1h 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_34zv1qnh/schedule?date=2026-10-17&tz=Asia/Singapore" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_34zv1qnh/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_34zv1qnh/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_34zv1qnh/schedule?date=2026-10-17&tz=Asia/Singapore"); 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_34zv1qnh/schedule?date=2026-10-17&tz=Asia/Singapore", { 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_34zv1qnh/schedule", params={"date": "2026-10-17", "tz": "Asia/Singapore"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_34zv1qnh/schedule?date=2026-10-17, the first programme { "data": [ { "id": "ls_9hetjqyq", "channel": "ch_34zv1qnh", "start": "2026-10-16T16:00:00Z", "stop": "2026-10-16T17:00:00Z", "title": "Halloween Baking Championship (Series 9): Step Fright Up (Episode 8)", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 33, "date": "2026-10-17", "tz": "Asia/Singapore" } }
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 155 countries.