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 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_0f8cvq9g/schedule?date=2026-10-11&tz=America/Toronto
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:16 | FEVA MOVIE: OTHER SIDE OF THE COINFEVA MOVIE: OTHER SIDE OF THE COIN | 2h 23m | ||
| 01:40 | B430 (EPISODE 2)B430 (EPISODE 2) | 12m | ||
| 01:52 | B430 (EPISODE 3)B430 (EPISODE 3) | 13m | ||
| 02:05 | B430 (EPISODE 4)B430 (EPISODE 4) | 12m | ||
| 02:17 | B430 (EPISODE 5)B430 (EPISODE 5) | 13m | ||
| 02:30 | NIGERIAN CIVIL WARNIGERIAN CIVIL WAR | 51m | ||
| 03:20 | Remembering a revolution 2Remembering a revolution 2 | 56m | ||
| 04:16 | DOCUMENTARY - Fela Kuti Part 1DOCUMENTARY - Fela Kuti Part 1 | 31m | ||
| 04:48 | DOCUMENTARY - Fela Kuti Part 2DOCUMENTARY - Fela Kuti Part 2 | 31m | ||
| 05:19 | Lost Kingdoms of Africa 1 of 4 NubiaLost Kingdoms of Africa 1 of 4 Nubia | 1h | ||
| 06:19 | Lost Kingdoms of Africa 2 of 4 EthiopiaLost Kingdoms of Africa 2 of 4 Ethiopia | 1h | ||
| 07:19 | Lost Kingdoms of Africa 3 of 4 Great ZimbabweLost Kingdoms of Africa 3 of 4 Great Zimbabwe | 51m | ||
| 08:11 | Lost Kingdoms of Africa 4 of 4 West AfricaLost Kingdoms of Africa 4 of 4 West Africa | 50m | ||
| 09:01 | A VISIT TO CAPE COASTA VISIT TO CAPE COAST | 1h 20m | ||
| 10:21 | Gospel mix 1Gospel mix 1 | 33m | ||
| 10:54 | Gospel mix 2Gospel mix 2 | 34m | ||
| 11:27 | Gospel mix 3Gospel mix 3 | 32m | ||
| 11:59 | Gospel mix 4Gospel mix 4 | 33m | ||
| 12:32 | Gospel mix 5Gospel mix 5 | 33m | ||
| 13:05 | Gospel mix 6Gospel mix 6 | 31m | ||
| 13:36 | FEVA MOVIE: INNOCENT DEVILFEVA MOVIE: INNOCENT DEVIL | 1h 58m | ||
| 15:34 | FEVA MOVIE: MASTER BURSTING OUTFEVA MOVIE: MASTER BURSTING OUT | 2h 17m | ||
| 17:52 | FEVA MOVIE: HUSTLERFEVA MOVIE: HUSTLER | 1h 30m | ||
| 19:22 | FEVA MOVIE: OTHER SIDE OF THE COINFEVA MOVIE: OTHER SIDE OF THE COIN | 2h 23m | ||
| 21:45 | Road ReadyThe cast reunite in their haunted mansion. New cast members arrive and begin to be acquainted. Professor Rain Jarrett joins the cast to speak on th... | 33m | ||
| 22:18 | Road ReadyMiami Carnival Board welcomes the cast! Caribshopper stops by with some goodies. Klassik Frescobar and The Fatha help assist the cast with a musica... | 27m | ||
| 22:45 | Road ReadyThe cast get a taste of the costume making process from 3 superstars in the carnival costume world! They also learn a lesson or two. | 29m | ||
| 23:14 | Road ReadyThe cast get a tour of little Haiti, enjoy the food and get a dance lesson. They go to their second fete, and a few cast members start to get closer. | 25m | ||
| 23:39 | Road ReadyThe Cast see their costumes for the first time. Emotions begin to erupt as boundaries are crossed. | 25m |
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_0f8cvq9g/schedule?date=2026-10-11&tz=America/Toronto" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_0f8cvq9g/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_0f8cvq9g/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_0f8cvq9g/schedule?date=2026-10-11&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_0f8cvq9g/schedule?date=2026-10-11&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_0f8cvq9g/schedule", params={"date": "2026-10-11", "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_0f8cvq9g/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_hggsafr2", "channel": "ch_0f8cvq9g", "start": "2026-10-11T03:16:55Z", "stop": "2026-10-11T05:40:07Z", "title": "FEVA MOVIE: OTHER SIDE OF THE COIN", "sub_title": null, "description": "FEVA MOVIE: OTHER SIDE OF THE COIN", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 29, "date": "2026-10-11", "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 | 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.