73.8M 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_v2wj5bnx/schedule?date=2026-10-13&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Rise of the NazisStalingrad: The Nazis have lost in Moscow and Hitler and Stalin now take charge of their armies - with no-one to hold them back, Hitler has met his... | 1h | ||
| 01:00 | Antiques RoadshowIghtham Mote 2: Fiona Bruce presents a second show from Ightham Mote near Sevenoaks, where finds include a collection of postcards that show how a ... | 1h | ||
| 02:00 | Cornwall with Simon ReeveSimon Reeve investigates the environmental challenges facing Cornwall and the rest of the country and also encounters some of the county's iconic w... | 1h | ||
| 03:00 | The Americas with Simon ReeveIn the third leg of his journey, Simon Reeve is in the United States and travelling down the length of California to explore the land of the giant ... | 1h | ||
| 04:00 | Tribe with Bruce ParryNew. The Waimaha: The explorer travels into the Colombian Amazon to meet the Waimaha people, who live successfully in this remote region thanks to ... | 1h | ||
| 05:00 | Bangers & CashLand Rover S1/Bentley Mulsanne: Paul and daughter Kate collect a Series 1 Land Rover, while Jack collects an unusual wartime paratrooper's bike in ... | 1h | ||
| 06:00 | Bangers & CashVW Jurgen/Citroen Visa: Making Dave go weak at the knees is a very rare eighties hot hatch - a Citroen Visa GT Tonic. S12 Ep5 | 1h | ||
| 07:00 | Bangers & CashBMW Z4 Batmobile/Ford Army Jeep: Derek is picking up two expertly crafted Batmobile replicas in the home counties and Dave can't control his enthus... | 1h | ||
| 08:00 | Find It, Fix It, Flog ItHenry Cole and Simon O'Brien search for more items to fix up and sell on, visiting a Norman castle, restoring a Fiat 500 and making a table from pa... | 1h | ||
| 09:00 | Great Continental Railway Journeys On nowPrague to Munich: Michael Portillo travels through Bohemia and Bavaria, test driving a state-of-the-art passenger train in Pilsen and sampling the ... | 1h | ||
| 10:00 | TeleshoppingShopping from Home. | 3h 10m | ||
| 13:10 | Great Continental Railway JourneysBordeaux to Bilbao: Michael Portillo travels from Bordeaux to Bilbao, exploring the industrial ties between France and Spain and learning how to co... | 1h | ||
| 14:10 | Great Continental Railway JourneysTula to St Petersburg: Michael Portillo ventures on to the European rail network once again with his 1913 Bradshaw's guide, travelling through Russ... | 50m | ||
| 15:00 | Bangers & CashRover 3500/Citroen H Van: Derek inspects old cop cars including a Rover P6 complete with radio, sirens and V8 engine, and a former Mod waves ciao t... | 1h | ||
| 16:00 | Bangers & CashTriumph Herald/Renault Caravelle: Derek heads to rain-soaked Ripon to pick up a 1965 Ford Anglia with 33,000 miles on the clock, while Dave's lovin... | 1h | ||
| 17:00 | The Buildings That Fought HitlerWe Shall Fight Them In The Fields: Numerous pill boxes, gun emplacements and dragon's teeth were all tactically positioned to slow the Germans tryi... | 1h | ||
| 18:00 | Rise of the NazisThe Home Front: Facing defeat on the Eastern Front, Hitler elects to retreat to Germany - deep rifts emerge, his inner circle vies for power, and a... | 1h | ||
| 19:00 | Antiques RoadshowNew Lanark 2: Fiona Bruce presents a second show from New Lanark on the banks of the Clyde, where items brought in to be valued include diamonds th... | 1h | ||
| 20:00 | Antiques RoadshowCaversham 2: Fiona Bruce returns to BBC Caversham, near Reading, where objects brought in to be valued include a communion book that was originally... | 1h | ||
| 21:00 | Bangers & CashBentley Special/Lancia Monte Carlo: Derek is heading to Scotland to collect a 'special' Bentley that's been created by a very talented amateur. S12... | 1h | ||
| 22:00 | Bangers & CashAlvis/Lotus Super 7: Paul and Charlie head south for an immaculate Lotus Super 7. Derek and Jack are in Sheffield collecting a 1929 Riley Monaco an... | 1h | ||
| 23:00 | The Buildings That Fought HitlerWe Shall Fight Them In The Fields: Numerous pill boxes, gun emplacements and dragon's teeth were all tactically positioned to slow the Germans tryi... | 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_v2wj5bnx/schedule?date=2026-10-13&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_v2wj5bnx/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_v2wj5bnx/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_v2wj5bnx/schedule?date=2026-10-13&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_v2wj5bnx/schedule?date=2026-10-13&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_v2wj5bnx/schedule", params={"date": "2026-10-13", "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_v2wj5bnx/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_0eqqha5g", "channel": "ch_v2wj5bnx", "start": "2026-10-13T00:00:00Z", "stop": "2026-10-13T01:00:00Z", "title": "Rise of the Nazis", "sub_title": null, "description": "Stalingrad: The Nazis have lost in Moscow and Hitler and Stalin now take char...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 22, "date": "2026-10-13", "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 | Sunday 12 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 150 countries.