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.
All times Australia/Sydney. The same day from the API: GET /v1/channels/ch_803kz3md/schedule?date=2026-10-13&tz=Australia/Sydney
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 15:08 | Caught On DashcamStrap in and prepare yourselves for another episode of Caught On Dashcam, the show that brings you all kinds of explosive mayhem from the world of ... | 19h 51m | ||
| 13:57 | Caught On DashcamDriving taken to a whole new level! Caught on Dashcam looks at the most dramatic, shocking and crazy footage captured on camera on roads around the... | 53m | ||
| 14:51 | Caught On DashcamMother Earth unleashes her havoc on drivers with hurricanes to wildfire landslides to avalanches We show how making the wrong decision can lead to ... | 53m | ||
| 15:44 | Surveillance OzEvery day more than two million cameras monitor your every public move. With unprecedented access to control rooms and CCTV cameras, see frightenin... | 19h 16m |
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_803kz3md/schedule?date=2026-10-13&tz=Australia/Sydney" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_803kz3md/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_803kz3md/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_803kz3md/schedule?date=2026-10-13&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_803kz3md/schedule?date=2026-10-13&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_803kz3md/schedule", params={"date": "2026-10-13", "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_803kz3md/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_6gpnm0hd", "channel": "ch_803kz3md", "start": "2026-10-12T04:08:54Z", "stop": "2026-10-13T00:00:00Z", "title": "Caught On Dashcam", "sub_title": null, "description": "Strap in and prepare yourselves for another episode of Caught On Dashcam, the...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 4, "date": "2026-10-13", "tz": "Australia/Sydney" } }
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.