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 Australia/Sydney 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 Australia/Sydney. The same day from the API: GET /v1/channels/ch_hk8bx7wr/schedule?date=2026-10-17&tz=Australia/Sydney
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:30 | CasinoA casino manager in 1970s Las Vegas faces threats from a troubled old friend, an FBI investigation, corrupt politicians, and his wifes painful past... | 2h 55m | ||
| 01:25 | Repo ManA young punk recruited by a car repossession agency finds himself in pursuit of a Chevrolet Malibu that is wanted for a $20,000 bounty and has some... | 1h 35m | ||
| 03:00 | The Blues BrothersThe orphanage where Jake and Elwood were raised will be sold unless the tax on the property is paid within days. The brothers decide to raise the m... | 2h 10m | ||
| 05:10 | Indiana Jones: Kingdom of Crystal SkullBack in a new globe-trotting adventure, the Soviets kidnap Indiana in Mexico as they plot to harness the power of the Crystal Skull of Akator in th... | 2h 5m | ||
| 07:15 | The BeastIn this emotional story based on the Afghan war, a Soviet tank crew become lost and are pursued by a Mujahadeen leader, which results in the tank d... | 2h | ||
| 09:15 | Jaws 2Just when you thought it was safe to go back in the water, another shark terrorises the resort of Amity as it recovers from the first man-eater. Po... | 2h | ||
| 11:15 | CasinoA casino manager in 1970s Las Vegas faces threats from a troubled old friend, an FBI investigation, corrupt politicians, and his wifes painful past... | 3h | ||
| 14:15 | The Naked Gun 2: The Smell of FearFrank Drebin, the idiot detective, uncovers a plot by super villain Robert Goulet to sabotage the USA's energy policy. More slapstick mayhem in the... | 1h 30m | ||
| 15:45 | Jurassic Park IIIEight years after a strange incident at a dinosaur theme park, a paleontologist is approached by a wealthy couple who offer him a big sum to fly ov... | 1h 35m | ||
| 17:20 | Planes, Trains And AutomobilesBusinessman Neal is dying to get home for Thanksgiving, and loud-mouthed Del, a shower curtain ring salesman, is driving him nuts. Will they reach ... | 1h 35m | ||
| 18:55 | Stand By MeGordie and his best friend Vern overhear his older brother and a friend talking about their discovery of a dead body in the woods. Hoping they can ... | 1h 35m | ||
| 20:30 | The JackalAn FBI director works with a Russian agent and a jailed terrorist to hunt down the elusive Jackal, a master-of-disguise assassin on a deadly mission. | 6h 30m |
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_hk8bx7wr/schedule?date=2026-10-17&tz=Australia/Sydney" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_hk8bx7wr/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_hk8bx7wr/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_hk8bx7wr/schedule?date=2026-10-17&tz=Australia/Sydney"); 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_hk8bx7wr/schedule?date=2026-10-17&tz=Australia/Sydney", { 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_hk8bx7wr/schedule", params={"date": "2026-10-17", "tz": "Australia/Sydney"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_hk8bx7wr/schedule?date=2026-10-17, the first programme { "data": [ { "id": "ls_sfxjvd43", "channel": "ch_hk8bx7wr", "start": "2026-10-16T11:30:00Z", "stop": "2026-10-16T14:25:00Z", "title": "Casino", "sub_title": null, "description": "A casino manager in 1970s Las Vegas faces threats from a troubled old friend,...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 12, "date": "2026-10-17", "tz": "Australia/Sydney" } }
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 150 countries.