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_f7yve1wv/schedule?date=2026-10-12&tz=America/Toronto
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:50 | Forensic Factor: A New EraAn unidentified teenage boy is found dead in the middle of a suburban street; what appears to be a straightforward homicide takes an... | 54m | ||
| 00:44 | Forensic Factor: A New EraBadly burnt human remains recovered in a blazing car fire suggest Clayton Daniels died in a horrible road accident; forensic evidence... | 54m | ||
| 01:38 | Forensic Factor: A New EraHeidi is shot in her home. Two conflicting accounts lead to a lengthy investigation. Only forensic evidence will reveal the truth. | 54m | ||
| 02:32 | Forensic Factor: A New EraA body in a ditch is at the end of a forensic trail that begins at the home of a missing father, but with no sign of where the crime was... | 54m | ||
| 03:26 | Forensic Factor: A New EraA mother of three goes missing the day before Mother's Day; there is no shortage of suspects. | 54m | ||
| 04:20 | Forensic Factor: A New EraA horrific crime scene in the heart of a bustling university campus leaves a forensic puzzle that investigators must race to piece... | 54m | ||
| 05:14 | Forensic Factor: A New EraAn unidentified teenage boy is found dead in the middle of a suburban street; what appears to be a straightforward homicide takes an... | 54m | ||
| 06:08 | Fear Thy NeighborA feud over a dog between two men leaves one of them dead and the other in a standoff with police. | 56m | ||
| 07:03 | Fear Thy NeighborA woman gets along with her neighbor, until she finds romance and he adopts more than 50 dogs. | 56m | ||
| 07:59 | Fear Thy NeighborA fireman regulates his neighbors, then things boil over at a party where shots are fired. | 56m | ||
| 08:55 | Fear Thy NeighborAfter moving to the countryside, a couple clashes with the gun shop owners across the street. | 56m | ||
| 09:51 | Fear Thy NeighborA man finds himself living between hostile neighbors on both sides, including a former marine with severe PTSD. | 56m | ||
| 10:46 | Fear Thy NeighborA wealthy executive comes into conflict with his neighbors when he forbids them access to his extensive lands. | 56m | ||
| 11:42 | Fear Thy NeighborTwo women living next to each other in an apartment building start out as fast friends but become sworn enemies. | 56m | ||
| 12:38 | Fear Thy NeighborMolestation charges result in anger, accusations and multiple bloody deaths. | 56m | ||
| 13:34 | Fear Thy NeighborAfter relocating to Florida, a couple gets into a fatal conflict with their neighbor. | 56m | ||
| 14:30 | Fear Thy NeighborA man who is fussy about his lawn feuds with a new neighbor who doesn't have the same priorities. | 56m | ||
| 15:25 | Fear Thy NeighborTwo families get along famously until discord causes battle lines to be drawn, and violence flares. | 56m | ||
| 16:21 | Fear Thy NeighborA homeowner's dashed hopes set the stage for an act of violence that threatens to claim many lives. | 56m | ||
| 17:17 | Fear Thy NeighborA retiree sends an abusive husband packing, then becomes smitten with the absent man's wife. | 56m | ||
| 18:13 | Fear Thy NeighborA feud over a dog between two men leaves one of them dead and the other in a standoff with police. | 56m | ||
| 19:09 | Fear Thy Neighbor On nowA woman gets along with her neighbor, until she finds romance and he adopts more than 50 dogs. | 56m | ||
| 20:04 | My Lover, My KillerMichaela Hall tried to find a happy, supportive relationship for her and her children - but she met the wrong man. | 51m | ||
| 20:56 | My Lover, My KillerRaneem Oudeh's move to the UK with her family took a violent turn when she fell for a man living a double life. | 51m | ||
| 21:46 | My Lover, My KillerWhile Kasey Anderson's football skills almost guaranteed a bright future, his involvement with someone twice his age led to his downfall. | 49m | ||
| 22:35 | Fear Thy NeighborA wealthy executive comes into conflict with his neighbors when he forbids them access to his extensive lands. | 56m | ||
| 23:31 | Fear Thy NeighborTwo women living next to each other in an apartment building start out as fast friends but become sworn enemies. | 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_f7yve1wv/schedule?date=2026-10-12&tz=America/Toronto" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_f7yve1wv/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_f7yve1wv/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_f7yve1wv/schedule?date=2026-10-12&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_f7yve1wv/schedule?date=2026-10-12&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_f7yve1wv/schedule", params={"date": "2026-10-12", "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_f7yve1wv/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_pckcdkp1", "channel": "ch_f7yve1wv", "start": "2026-10-12T03:50:22Z", "stop": "2026-10-12T04:44:19Z", "title": "Forensic Factor: A New Era", "sub_title": null, "description": "An unidentified teenage boy is found dead in the middle of a suburban street;...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 27, "date": "2026-10-12", "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.