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 Europe/Stockholm time, what is on now and next, and the same data in your app with one call.
All times Europe/Stockholm. The same day from the API: GET /v1/channels/ch_74s6qwx8/schedule?date=2026-10-13&tz=Europe/Stockholm
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:37 | WWII's The Great Escapes: The Freedom Trails: Slovenia: The Crow's FlightMonty heads to Slovenia to retrace one of the most daring, yet unknown, mass escapes of Allied prisoners during the second world war, made possible... | Slovenia: The Crow's Flight | Series, Documentary | 56m |
| 00:33 | The Rise of the Nazi Party: Nazis OutfoughtBy 1944, Hitler's image as a victorious leader is crumbling. He faces a bomb plot led by Stauffenberg and Tresckow, intending to kill him and overt... | Nazis Outfought | Series, Documentary | 1h |
| 01:33 | Nazi Collaborators: The Grand MuftiThe controversy surrounding Mohammad Amin al-Husayni, stems from his Nazi collaboration. He recruited Bosnian Muslims and advocated for a Palestini... | S1 E8, The Grand Mufti | Series, Documentary | 1h |
| 02:34 | The Rise of the Nazi Party: The Misfits Gather On nowHitler finds his political destiny in post-war Munich. He quickly dominates a fringe party & builds it into the Nazi Party. He recruits infamous me... | The Misfits Gather | Series, Documentary | 1h |
| 03:34 | Weapons That Changed the WorldWeapons That Changed The World examines the RPG-7, renowned for its ability to take on tanks and level buildings. Host Wil Willis traces its evolut... | Episode 6 | Series, Documentary | 59m |
| 04:33 | The Rise of the Nazi Party: End GameIn January 1945, Nazi Germany faces defeat as Allied armies close in. Hitler, aged 55 and in poor health, remains defiant in his Berlin bunker. On... | End Game | Series, Documentary | 59m |
| 05:32 | WWII's The Great Escapes: The Freedom Trails: France and Spain: The PyreneesMonty treks one of the toughest and most famous freedom trails out of Nazi controlled France, taking him through the valleys and high ridges of the... | France and Spain: The Pyrenees | Series, Documentary | 55m |
| 06:27 | Nazi Collaborators: Hitler's Killer PoliceIn Ukraine and Lithuania, Nazi invaders were welcomed as liberators. In Lithuania, Antanas Gecas led a militia that executed hundreds of Jews. Ukra... | S1 E13, Hitler's Killer Police | Series, Documentary | 1h 1m |
| 07:28 | The Rise of the Nazi Party: Seizing PowerIn 1930s Germany, Hitler capitalizes on economic woes blaming the Weimar Government and Jews. Despite scandals, Nazi rallies gain popularity and em... | Seizing Power | Series, Documentary | 1h |
| 08:28 | Nazi Collaborators: Hitler's Inside ManChaim Rumkowski, leader of the Lodz ghetto during WWII, believed cooperation with the Nazis could save lives, providing labor in exchange for food.... | S1 E1, Pierre Laval | Series, Documentary | 1h |
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_74s6qwx8/schedule?date=2026-10-13&tz=Europe/Stockholm" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_74s6qwx8/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_74s6qwx8/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_74s6qwx8/schedule?date=2026-10-13&tz=Europe/Stockholm"); 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_74s6qwx8/schedule?date=2026-10-13&tz=Europe/Stockholm", { 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_74s6qwx8/schedule", params={"date": "2026-10-13", "tz": "Europe/Stockholm"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_74s6qwx8/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_808ywjtr", "channel": "ch_74s6qwx8", "start": "2026-10-12T21:37:40Z", "stop": "2026-10-12T22:33:40Z", "title": "WWII's The Great Escapes: The Freedom Trails: Slovenia: The Crow's Flight", "sub_title": "Slovenia: The Crow's Flight", "description": "Monty heads to Slovenia to retrace one of the most daring, yet unknown, mass ...", "category": [ "series", "documentary" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 10, "date": "2026-10-13", "tz": "Europe/Stockholm" } }
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.