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.
All times America/Toronto. The same day from the API: GET /v1/channels/ch_5y2bqnr8/schedule?date=2026-10-11&tz=America/Toronto
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:28 | SpooksMI5 discover that an Islamic terrorist is planning to enter the UK and launch an attack. | 1h 1m | ||
| 00:29 | SpooksHarry discovers an ex-MI5 officer’s suicide was staged and vows to avenge his murder. | 1h 2m | ||
| 01:31 | SpooksA suspect planning a terror attack from prison is released to lead MI5 to other plotters. | 1h 2m | ||
| 02:33 | SpooksAdam and Fiona’s marriage is tested when she insists on going undercover. | 1h 2m | ||
| 03:35 | SpooksThe team investigates a multi-millionaire Soviet investor whom the government sees as the saviour of the NHS. | 1h 2m | ||
| 04:37 | SpooksHarry’s stand against the CIA’s extradition policy on British Muslims gets him sacked. | 1h 2m | ||
| 05:39 | SpooksA legendary ex-spy pays a visit to Thames House with a bomb and holds the team to ransom. | 1h 2m | ||
| 06:40 | SpooksDjarkarta is coming. As Adam lies recovering in hospital the country reels under a series of terror attacks. | 1h 2m | ||
| 07:42 | SpooksAfter launching an attack on the Home Secretary the conspirators reveal their plan. | 1h 2m | ||
| 08:44 | SpooksAdam poses as an arms dealer to prevent a thermobaric bomb falling into the terrorist’s hands. | 1h 2m | ||
| 09:46 | SpooksThe United Kingdom is hosting the World Trade Summit for Africa and MI5. | 1h 2m | ||
| 10:48 | SpooksThe government releases a report on the Cotterdam Seven; terror suspects killed in an accidental prison fire. | 1h 2m | ||
| 11:49 | SpooksThe team hunt Al Qaeda operatives smuggled in to the UK, while Ros is instructed to baby sit Saudi Princes. | 1h 2m | ||
| 12:51 | SpooksRos is trapped in the Saudi siege, forced to watch assassinations as the government refuse to negotiate. | 1h 2m | ||
| 13:53 | SpooksA Muslim cleric advocating violence in the West is killed, is this the start of the new Crusade? | 1h 1m | ||
| 14:54 | SpooksDjarkarta is coming. As Adam lies recovering in hospital the country reels under a series of terror attacks. | 1h 2m | ||
| 15:56 | SpooksThe highly-contagious plague-like virus unleashed by the Tehran blast is on the streets of London. | 1h 2m | ||
| 16:58 | SpooksA UK plane is apparently hijacked and kamikazes into a US air base by terrorists. | 1h 2m | ||
| 18:00 | SpooksAn Algerian extremist escapes his home-detention. | 1h 2m | ||
| 19:02 | SpooksAttempting to stop an Iranian nuclear deal on British soil, Adam is framed for the killing of a mugger. | 1h 2m | ||
| 20:04 | SpooksRos is trapped in the Saudi siege, forced to watch assassinations as the government refuse to negotiate. | 1h 2m | ||
| 21:06 | SpooksThe stage is set for a televised debate on a new peace deal between the US and Iran. | 1h 2m | ||
| 22:08 | SpooksWhen a Pakistani intelligence officer is stabbed to death in South London, Hamid Ahmed wants to talk. | 1h 2m | ||
| 23:10 | SpooksViolent race riots are becoming a national problem. | 1h 2m |
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_5y2bqnr8/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_5y2bqnr8/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_5y2bqnr8/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_5y2bqnr8/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_5y2bqnr8/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_5y2bqnr8/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_5y2bqnr8/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_y65qa346", "channel": "ch_5y2bqnr8", "start": "2026-10-11T03:28:25Z", "stop": "2026-10-11T04:29:30Z", "title": "Spooks", "sub_title": null, "description": "MI5 discover that an Islamic terrorist is planning to enter the UK and launch...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 24, "date": "2026-10-11", "tz": "America/Toronto" } }
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.