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.
All times UTC. The same day from the API: GET /v1/channels/ch_mnde3s7c/schedule?date=2026-10-11&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:38 | A Murder in OaklandRecently cleared of an embezzlement charge, Detective Williams (Marcus D Spencer) is handed a high-profile murder case while also forced to take on... | 1h 23m | ||
| 00:01 | SleeplessWhen Las Vegas cop Vincent Downs (Jamie Foxx) and his partner Sean (Tip “T.I.” Harris) rob a cocaine shipment bound for a drug-dealing casino boss ... | 1h 50m | ||
| 01:51 | GunnerWhen ruthless drug traffickers kidnap his children, ex-special forces operative Lee Gunner embarks on a violent life-or-death mission. With his uni... | 2h 3m | ||
| 03:54 | Programming will resume shortlyWe're catching up on our beauty sleep! Stay tuned for more priceless entertainment curated by Rakuten TV. | 6m | ||
| 04:00 | AdriftAdrift is based on the inspiring true story of two sailors who set out to journey across the ocean from Tahiti to San Diego... | 1h 51m | ||
| 05:51 | Mega Shark vs CrocosaurusA megalodon battles with a crocosaurus causing massive destruction. The US Army has to try and destroy the havoc creating monsters. | 1h 41m | ||
| 07:32 | SurvivorSURVIVOR is a gripping thriller about State Department employee Kate Abbott, newly posted in the American embassy in London. Kate is charged with s... | 1h 51m | ||
| 09:23 | Exit SpeedStrangers use improvised weapons, adrenaline and sheer guts to mount a defense against murderous bikers and their survival depends on doing the unt... | 1h 46m | ||
| 11:09 | All the Names of GodThe gripping story of an unsuspecting taxi driver who becomes a pawn in a dangerous game of survival as he is taken hostage after a terrorist attack. | 2h 1m | ||
| 13:10 | Superfast!Undercover cop, Paul White joins Vin Serento's LA gang of illegal street racers as they plan to double cross LA's crime kingpin. The gang's outrage... | 1h 54m | ||
| 15:05 | Dominion: The Last Star WarriorIn five days the world changed. As a retired Intelligence agent turned UFO investigator races to discover the fate of the human race, an alien obse... | 1h 36m | ||
| 16:41 | SnitchIn the fast-paced action thriller SNITCH, Dwayne Johnson stars as a father whose teenage son is wrongly accused of a drug distribution crime and is... | 2h 10m | ||
| 18:50 | Burying YasmeenOne man's odyssey to put a ring on his dead ex-wife. | 1h 26m | ||
| 20:16 | Welcome to the PunchEx-criminal Jacob Sternwood is forced to return to London when his son is involved in a heist gone wrong. This gives his nemesis, detective Max Lew... | 1h 51m | ||
| 22:07 | GunnerWhen ruthless drug traffickers kidnap his children, ex-special forces operative Lee Gunner embarks on a violent life-or-death mission. With his uni... | 2h 3m |
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_mnde3s7c/schedule?date=2026-10-11&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_mnde3s7c/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_mnde3s7c/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_mnde3s7c/schedule?date=2026-10-11&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_mnde3s7c/schedule?date=2026-10-11&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_mnde3s7c/schedule", params={"date": "2026-10-11", "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_mnde3s7c/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_128dhbgm", "channel": "ch_mnde3s7c", "start": "2026-10-10T22:38:35Z", "stop": "2026-10-11T00:01:31Z", "title": "A Murder in Oakland", "sub_title": null, "description": "Recently cleared of an embezzlement charge, Detective Williams (Marcus D Spen...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 15, "date": "2026-10-11", "tz": "UTC" } }
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.