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_xtrz4ntx/schedule?date=2026-10-11&tz=Australia/Sydney
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 03:41 | Season 9 Episode 13 - Bridge Strike ChaosA truck hits a railway bridge, a trailer jams under another, and cargo spills after a strike—three tense recoveries test skill and speed. | Season 9 Episode 13 - Bridge Strike Chaos | Light entertainment | 47m |
| 04:28 | Season 9 Episode 14 - After DarkA truck in a ditch, a fiery car transporter, and a chemical-laden artic on the M25—three high-risk night rescues push recovery teams to the limit. | Season 9 Episode 14 - After Dark | Light entertainment | 48m |
| 05:17 | Season 9 Episode 15 - Wild Weather RescuesStorm-toppled trucks, stranded coaches, and a 44-tonne artic in a snowy ditch—three wild weather rescues push recovery teams to the limit. | Season 9 Episode 15 - Wild Weather Rescues | Light entertainment | 48m |
| 12:01 | Season 3 Episode 20Recovery op Buzz is sent to rescue a double decker artic marooned at the junction of a busy roundabout. With rush-hour fast approaching and traffic... | Season 3 Episode 20 | Light entertainment | 50m |
| 12:52 | Season 5 Episode 17Lantern tackles an M25 fire as Sean and Martin lift a burned trailer near live traffic. Merrie frees a lorry stuck on a tree, and Luke braves mud a... | Season 5 Episode 17 | Light entertainment | 50m |
| 13:42 | Season 5 Episode 18Merrie fights to free a 20-ton lorry stuck in mud, Stu rescues a truck on a traffic island, and rookie Callum braces for heights to secure a paving... | Season 5 Episode 18 | Light entertainment | 50m |
| 18:41 | Rollover Madness: Episode 1From icy rollovers to fiery wrecks and a waterlogged trailer, recovery heroes battle extreme conditions to clear Britain’s roads. Fire, ice, and fl... | Rollover Madness: Episode 1 | Light entertainment | 50m |
| 19:32 | Rollover Madness: Episode 2Sulphuric acid tanker, gym gear trailer, and a 32-tonne tipper—Britain’s recovery teams battle danger, weight, and weather in epic rescues to keep ... | Rollover Madness: Episode 2 | Light entertainment | 50m |
| 20:23 | Season 7 Episode 17Three rescues: a telegraph pole truck in mud, a coach blocking the M25, and a bus stuck in South Shields—all demanding skill and nerve. | Season 7 Episode 17 | Light entertainment | 48m |
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_xtrz4ntx/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_xtrz4ntx/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_xtrz4ntx/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_xtrz4ntx/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_xtrz4ntx/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_xtrz4ntx/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_xtrz4ntx/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_wccp6538", "channel": "ch_xtrz4ntx", "start": "2026-10-10T16:41:05Z", "stop": "2026-10-10T17:28:05Z", "title": "Season 9 Episode 13 - Bridge Strike Chaos", "sub_title": "Season 9 Episode 13 - Bridge Strike Chaos", "description": "A truck hits a railway bridge, a trailer jams under another, and cargo spills...", "category": [ "light entertainment" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 9, "date": "2026-10-11", "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 154 countries.