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 America/Toronto time, what is on now and next, and the same data in your app with one call.
All times America/Toronto. The same day from the API: GET /v1/channels/ch_knqf4yax/schedule?date=2026-10-14&tz=America/Toronto
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:45 | Heavy Rescue: 401A heavy crew must remove a load of industrial glass panels from a buckled trailer. | 56m | ||
| 00:41 | Heavy Rescue: 401John Allen spends a night battling a load of spilled scrap metal; Bill Wright makes a call. | 56m | ||
| 01:36 | Heavy Rescue: 401A double tanker loaded with gasoline smashes into a house, forcing John Allen and crew to perform a delicate marathon recovery. | 56m | ||
| 02:32 | Heavy Rescue: 401Sgt. Kerry Schmidt fights to get stuck commuters moving; Austin Hutchinson is forced to battle a nasty wreck all on his own. | 56m | ||
| 03:28 | Heavy Rescue: 401Sgt. Kerry Schmidt coordinates heavy tows and Sonny Subra must clear a ramp littered with semis. | 56m | ||
| 04:24 | Heavy Rescue: 401An armored truck rolls over on the 401; Kim Reid’s crew deals with a toppled trailer in a risky spot. | 56m | ||
| 05:20 | Heavy Rescue: 401Chad Grenier deals with a spun-out tractor; Bill Wright brings his new rotator to a dangerous corner of the 401. | 56m | ||
| 06:16 | Highway Thru HellJamie takes control of the rotator for the first time in months and turns to his competition for advice about a major decision. | 56m | ||
| 07:12 | Highway Thru HellJamie battles a truck fire on the Coq and reveals big changes to his operation; the surprise return of a former team member. | 56m | ||
| 08:08 | Highway Thru HellMission Towing races to an urgent call on a logging road; Jamie deploys his "air bag" recovery system to flip a tractor trailer. | 56m | ||
| 09:04 | Highway Thru HellJamie and his Heavy Rescue team deal with a jackknifed semi-trailer on the edge of a bridge; on an active logging road in BC. | 56m | ||
| 09:59 | Highway Thru HellGale-force winds send a semi airborne and shut down the Trans Canada Highway. | 56m | ||
| 10:55 | Highway Thru HellOn the busiest travel week of the year, Al works to clear a burning tractor trailer off the Coq; Colin is sent to rescue a delivery truck. | 56m | ||
| 11:51 | Highway Thru HellOn his first night on the Coq, prairie tow operator Jonny Tipton faces his toughest recovery. | 56m | ||
| 12:47 | Highway Thru HellAl Quiring is pulled into a muddy war in B.C.'s Fraser Valley to rescue a pair of 40-ton excavators buried in a bog. | 56m | ||
| 13:43 | Highway Thru HellTough times in Alberta force Colin to weigh his future; the Mission Towing crew races to clear a wreck that's shut down the rail line. | 56m | ||
| 14:39 | Heavy Rescue: 401Eric and Senior work to coax a semi back on the road. | 56m | ||
| 15:35 | Heavy Rescue: 401When a transport rolls on a dangerous curve, John Campbell needs to master his new rotator in a hurry. | 56m | ||
| 16:31 | Heavy Rescue: 401Sonny pushes his small wrecker to its limit; a load of buttermilk spurs a messy cleanup. | 56m | ||
| 17:27 | Heavy Rescue: 401Herb takes a break from retirement to help the crew wrangle a huge and heavy job; an OPP constable makes a very unusual traffic stop. | 56m | ||
| 18:22 | Highway Thru HellJamie takes control of the rotator for the first time in months and turns to his competition for advice about a major decision. | 56m | ||
| 19:18 | Highway Thru HellJamie battles a truck fire on the Coq and reveals big changes to his operation; the surprise return of a former team member. | 56m |
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_knqf4yax/schedule?date=2026-10-14&tz=America/Toronto" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_knqf4yax/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_knqf4yax/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_knqf4yax/schedule?date=2026-10-14&tz=America/Toronto"); 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_knqf4yax/schedule?date=2026-10-14&tz=America/Toronto", { 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_knqf4yax/schedule", params={"date": "2026-10-14", "tz": "America/Toronto"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_knqf4yax/schedule?date=2026-10-14, the first programme { "data": [ { "id": "ls_va3hmnk8", "channel": "ch_knqf4yax", "start": "2026-10-14T03:45:11Z", "stop": "2026-10-14T04:41:04Z", "title": "Heavy Rescue: 401", "sub_title": null, "description": "A heavy crew must remove a load of industrial glass panels from a buckled tra...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 22, "date": "2026-10-14", "tz": "America/Toronto" } }
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.