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. Search any past day on the Archive plan.
All times America/Toronto. The same day from the API: GET /v1/channels/ch_4gp82mnx/schedule?date=2026-10-11&tz=America/Toronto
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:04 | CorporateTwo corporate giants compete in order to recklessly maximize their respective profits. | Films | 2h 51m | |
| 00:55 | VirasatWatch award-winning performances by Anil Kapoor and Tabu in this story of a dutiful son who sacrifices all his happiness to live his father's dream... | Films | 3h 5m | |
| 04:00 | Hum Aapke Dil Mein Rehte HainNot knowing what consequences she would face, a woman signs a 1-year marriage contract with a business tycoon to end her family's poverty. | Films | 3h | |
| 07:00 | Apradhi KaunSudheer and Rani take refuge in a suspicious hotel when their car breaks down. When they try to go out for lunch, the hotel staff hold Rani captive... | Films | 1h 38m | |
| 08:38 | EeshwarIshwar is a simple-minded and honest young man, devout and religious, he cares for everybody. He meets with a young widow with a son and marries he... | Films | 2h 52m | |
| 11:30 | HeeraHeera is wrongly accused of murder and is sentenced to death, but he manages to escape from prison and becomes a bandit. He tries to prove his inno... | Films | 2h 43m | |
| 14:13 | ShaktiAshwini, an honest policeman, refuses to trade a captured gangster for his son Vijay's release after a ruthless gangster kidnaps him. Vijay grows u... | Films | 3h 36m | |
| 17:49 | Comedy Station - Bittu Bak BakSeries of short, comedic vignettes where an unlucky Bhojpuri producer Champaklal and his secretary Suzie hilariously navigate chaotic, low-budget f... | Films | 11m | |
| 18:00 | Max 2- FillersFiller Program. | Entertainment | 1h | |
| 19:00 | RojaRoja lives in a Tamil village, and her sister is about to marry a man from the city, who decides to marry Roja instead and gets a job assignment in... | Films | 2h 55m | |
| 21:55 | SharafatJagatram, who wants Rajesh to marry his daughter, is shocked to find out that he has been frequenting a brothel. Meanwhile, Rajesh too makes a disc... | Films | 3h 9m |
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_4gp82mnx/schedule?date=2026-10-11&tz=America/Toronto" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_4gp82mnx/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_4gp82mnx/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_4gp82mnx/schedule?date=2026-10-11&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_4gp82mnx/schedule?date=2026-10-11&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_4gp82mnx/schedule", params={"date": "2026-10-11", "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_4gp82mnx/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_swe856nc", "channel": "ch_4gp82mnx", "start": "2026-10-11T02:04:00Z", "stop": "2026-10-11T04:55:00Z", "title": "Corporate", "sub_title": null, "description": "Two corporate giants compete in order to recklessly maximize their respective...", "category": [ "movies" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 11, "date": "2026-10-11", "tz": "America/Toronto" } }
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 | Monday 13 October 2025 | 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.
A free key in a minute, with Google. No card. Yesterday and today on every channel in 150 countries.