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 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_9ph5rxzf/schedule?date=2026-10-11&tz=Australia/Sydney
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:25 | HardwareIn an America ravaged by atomic warfare, nomads spend their days scavenging for scrap. That's how an ex-soldier acquires spare android parts, which... | Horror | 1h 40m | |
| 00:05 | Puppet Master 2The malicious marionettes are back to resurrect their dead master and evict parapsychologists from the family estate. | Horror | 1h 30m | |
| 01:35 | Grave (Raw)A young woman, studying to be a vet, develops a craving for human flesh. | Horror | 1h 40m | |
| 03:15 | WasabiThe death of a ex-lover puts a French cop on a collision course with the Yakuza and the daughter he never knew he had. | Comedy | 1h 35m | |
| 04:50 | Black DeathSet during the time of the first outbreak of bubonic plague in England, a young monk is given the task of learning the truth about reports of peopl... | Action | 1h 50m | |
| 06:40 | District B13Captain Damien must team up with Leito, a local insurgent from District 13, to defuse a neutron bomb that has fallen into the hands of a local drug... | Action | 1h 35m | |
| 08:15 | District B13: UltimatumFrance. Explosive sequel set in the nightmare of a futuristic Paris. Corrupt cops conspire to launch a nuclear strike and take over a ghetto terror... | Action | 1h 50m | |
| 10:05 | DobermannThe Dobermann and his gang have been hitting the headlines. Banks, post-offices, bullion vans! The whole works! An anthology of robbery, a compilat... | Action | 1h 50m | |
| 11:55 | To Catch a Killer - To Catch A Killer: Part 2To Catch A Killer: Part 2. Part 2. After achieving two search warrants, Kozenczak finds a large amount of incriminating evidence, and later 29 bodi... | Thriller | 1h 40m | |
| 13:35 | MarmaladeBaron strikes up a friendship with his new cellmate, a man with a history of prison breaks. As they hatch a plan to escape, Baron recalls how he me... | Crime | 1h 50m | |
| 15:25 | The Wild Goose LakeOn the run, gangster Zhou connects with sex worker Liu Aiai who was instructed to bring him in. | Drama | 2h | |
| 17:25 | Caligula: The Ultimate CutExcess, violence and corruption mark the notorious emperor's reign in first-century Rome. | N/a | 3h 5m | |
| 20:30 | DogmaIt's the film that's sparked controversy. Two fallen angels search for a way out of eternal exile in God-forsaken Wisconsin while a group of humans... | N/a | 2h 15m | |
| 22:45 | SatorSecluded in a desolate forest, a broken family is observed by the demon Sator who is attempting to claim them. | Horror | 1h 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_9ph5rxzf/schedule?date=2026-10-11&tz=Australia/Sydney" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_9ph5rxzf/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_9ph5rxzf/history?from=2026-07-05T00:00:00Z&to=2026-07-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_9ph5rxzf/schedule?date=2026-10-11&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_9ph5rxzf/schedule?date=2026-10-11&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_9ph5rxzf/schedule", params={"date": "2026-10-11", "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_9ph5rxzf/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_faeaaw9q", "channel": "ch_9ph5rxzf", "start": "2026-10-10T11:25:00Z", "stop": "2026-10-10T13:05:00Z", "title": "Hardware", "sub_title": null, "description": "In an America ravaged by atomic warfare, nomads spend their days scavenging f...", "category": [ "horror" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 14, "date": "2026-10-11", "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 | Sunday 5 July 2026 | 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.