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 UTC 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 UTC. The same day from the API: GET /v1/channels/ch_zk8k4fzq/schedule?date=2026-10-12&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:10 | Secret Nazi BasesHitler's Secret Underground City: In Poland lies a forgotten Nazi complex which could have sheltered up to 27,244 people from Allied bombs, the pur... | S2 E3, Hitler's Secret Underground City | 55m | |
| 00:05 | Secret Nazi BasesBergkristal: The Atomic Threat: A secret weapons program in the heart of Austria that could have ended badly for the Allies - and may have indicate... | S1 E6, Hitler's Invisible City | 1h | |
| 01:05 | Secret Nazi BasesThe Sum of All Fears: Guided missiles, the Wasserfall, and the war-changing V2 were dreamed up and tested in Peenemunde, a German seaside city sudd... | S2 E1, The Sum of All Fears | 55m | |
| 02:00 | Secret Nazi BasesLurking in the Shadows: Germany's preparations for WW2 began years before 1939. Under various guises, Germany began work on what would become their... | S2 E2, Lurking in the Shadows | 55m | |
| 02:55 | Secret Nazi BasesHitler's Secret Underground City: In Poland lies a forgotten Nazi complex which could have sheltered up to 27,244 people from Allied bombs, the pur... | S2 E3, Hitler's Secret Underground City | 45m | |
| 03:40 | Secret Nazi BasesBergkristal: The Atomic Threat: A secret weapons program in the heart of Austria that could have ended badly for the Allies - and may have indicate... | S1 E6, Hitler's Invisible City | 45m | |
| 04:25 | Secret Nazi BasesThe Sum of All Fears: Guided missiles, the Wasserfall, and the war-changing V2 were dreamed up and tested in Peenemunde, a German seaside city sudd... | S2 E1, The Sum of All Fears | 45m | |
| 05:10 | Secret Nazi BasesLurking in the Shadows: Germany's preparations for WW2 began years before 1939. Under various guises, Germany began work on what would become their... | S2 E2, Lurking in the Shadows | 50m | |
| 06:00 | TeleshoppingShopping from Home. | 3h | ||
| 09:00 | James May's Man LabJames May continues his epic quest to reskill the modern male as he attempts a risky stunt involving an ailing seaside town and a great big monster... | S3 E5, How to Run a Whelk Stand | 1h | |
| 10:00 | James May's Toy StoriesAirfix: James May pushes traditional toys to the limit in spectacular supersize challenges - here he tries to make a full-size Spitfire out of Airf... | S1 E1, Airfix | 1h | |
| 11:00 | James May's Toy StoriesPlasticine: James May proves how traditional old-fashioned toys are still relevant - here he tries to make a garden entirely out of Plasticine for ... | S1 E2, Plasticine | 1h | |
| 12:00 | James May's Toy StoriesMeccano: James May pushes traditional toys to the limit in supersize challenges. James joins forces with Edwina Currie to build a full-size bridge ... | S1 E3, Meccano | 1h | |
| 13:00 | James May's Man LabJames May continues his epic quest to reskill the modern male as he attempts a risky stunt involving an ailing seaside town and a great big monster... | S3 E5, How to Run a Whelk Stand | 1h | |
| 14:00 | James May's Toy StoriesAirfix: James May pushes traditional toys to the limit in spectacular supersize challenges - here he tries to make a full-size Spitfire out of Airf... | S1 E1, Airfix | 1h | |
| 15:00 | James May's Toy StoriesPlasticine: James May proves how traditional old-fashioned toys are still relevant - here he tries to make a garden entirely out of Plasticine for ... | S1 E2, Plasticine | 1h | |
| 16:00 | James May's Toy StoriesMeccano: James May pushes traditional toys to the limit in supersize challenges. James joins forces with Edwina Currie to build a full-size bridge ... | S1 E3, Meccano | 1h | |
| 17:00 | Some Mothers Do 'Ave 'EmCliffhanger: Classic sitcom with the great Michael Crawford. Frank has a bit of hanging around to do in this episode, as the Spencers go for a picn... | S2 E1, Cliffhanger | 35m | |
| 17:35 | Some Mothers Do 'Ave 'EmThe RAF Reunion: Classic laughs with the hapless Frank Spencer. The sad tale of Frank's spell in the RAF is revealed. The great Fulton Mackay, of P... | S2 E2, The RAF Reunion | 40m | |
| 18:15 | Some Mothers Do 'Ave 'EmThe Public Relations Course: Michael Crawford stars as the much impersonated Frank Spencer in the 1970s sitcom. Betty persuades Frank to take up a ... | S2 E3, The Public Relations Course | 40m | |
| 18:55 | Some Mothers Do 'Ave 'EmFrank and Marvin: Betty has to break the news to Frank that she is pregnant. Frank goes for a job at a holiday camp, pitching himself as a ventrilo... | S2 E4, Frank and Marvin | 40m | |
| 19:35 | Some Mothers Do 'Ave 'EmFather's Class: Frank and Betty try to get some practice in looking after children by taking Judy and Alison to the zoo. Yes, it's the famous one w... | S2 E5, Fathers' Clinic | 40m | |
| 20:15 | Some Mothers Do 'Ave 'EmThe Baby Arrives: A truly classic episode of the 70s comedy in which Frank Spencer faces the dilemma of wife Betty and the cat giving birth at the ... | S2 E6, The Baby Arrives | 40m | |
| 20:55 | Some Mothers Do 'Ave 'EmCliffhanger: Classic sitcom with the great Michael Crawford. Frank has a bit of hanging around to do in this episode, as the Spencers go for a picn... | S2 E1, Cliffhanger | 35m | |
| 21:30 | Some Mothers Do 'Ave 'EmThe RAF Reunion: Classic laughs with the hapless Frank Spencer. The sad tale of Frank's spell in the RAF is revealed. The great Fulton Mackay, of P... | S2 E2, The RAF Reunion | 40m | |
| 22:10 | Some Mothers Do 'Ave 'EmThe Public Relations Course: Michael Crawford stars as the much impersonated Frank Spencer in the 1970s sitcom. Betty persuades Frank to take up a ... | S2 E3, The Public Relations Course | 40m | |
| 22:50 | Some Mothers Do 'Ave 'EmFrank and Marvin: Betty has to break the news to Frank that she is pregnant. Frank goes for a job at a holiday camp, pitching himself as a ventrilo... | S2 E4, Frank and Marvin | 40m | |
| 23:30 | Some Mothers Do 'Ave 'EmFather's Class: Frank and Betty try to get some practice in looking after children by taking Judy and Alison to the zoo. Yes, it's the famous one w... | S2 E5, Fathers' Clinic | 40m |
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_zk8k4fzq/schedule?date=2026-10-12&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zk8k4fzq/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zk8k4fzq/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_zk8k4fzq/schedule?date=2026-10-12&tz=UTC"); 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_zk8k4fzq/schedule?date=2026-10-12&tz=UTC", { 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_zk8k4fzq/schedule", params={"date": "2026-10-12", "tz": "UTC"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_zk8k4fzq/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_jsmyzrnc", "channel": "ch_zk8k4fzq", "start": "2026-10-11T23:10:00Z", "stop": "2026-10-12T00:05:00Z", "title": "Secret Nazi Bases", "sub_title": "Hitler's Secret Underground City", "description": "Hitler's Secret Underground City: In Poland lies a forgotten Nazi complex whi...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 28, "date": "2026-10-12", "tz": "UTC" } }
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.