74.6M 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/New_York 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/New_York. The same day from the API: GET /v1/channels/ch_kzcd91sf/schedule?date=2026-10-14&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:17 | DangerousAn ex-con battles armed mercenaries as he tries to uncover the truth behind his brother's death. | 1h 49m | ||
| 01:06 | The Forbidden KingdomAn American teen travels back in time to ancient China and joins the quest to free the Monkey King. | 1h 53m | ||
| 02:59 | A Force of OneVeteran (Chuck Norris) teaches martial arts to policewoman (Jennifer O'Neill), joins case. | 1h 38m | ||
| 04:37 | Rebel Without a CrewAlejandro's main actor drops out of the film; Scarlet can't find talent to work under her budget. | Rebel Without a Crew | 25m | |
| 05:02 | From Dusk Till Dawn: The SeriesSeth and his team protect civilians from cannibal attacks. | S3 E5, Shady Glen | 53m | |
| 05:55 | From Dusk Till Dawn: The SeriesRichie wakes up in an abandoned asylum after being abducted; Seth goes to save Richie. | S3 E6, Straitjacket | 52m | |
| 06:47 | From Dusk Till Dawn: The SeriesThe team falls victim to a female Xibalban demon. | S3 E7, La Llorona | 51m | |
| 07:38 | From Dusk Till Dawn: The SeriesSantanico returns with a secret and leads the Geckos to Lord Venganza. | S3 E8, Rio Sangre | 50m | |
| 08:28 | The King of FightersMembers of three legendary clans fight battles in other dimensions. | 1h 44m | ||
| 10:12 | DangerousAn ex-con battles armed mercenaries as he tries to uncover the truth behind his brother's death. | 1h 51m | ||
| 12:03 | PythonSmall-town residents become the terrified prey of a massive, genetically altered snake. | 1h 51m | ||
| 13:54 | Python 2Genetically enhanced snakes go on a killing spree inside a Russian military base. | 1h 37m | ||
| 15:31 | Bleeding SteelA lawman connects the dots between a biochemical device, a sinister army and a strange phenomenon. | 1h 59m | ||
| 17:30 | SafeA cage fighter protects a young math prodigy from corrupt cops and two factions of mobsters. | 1h 42m | ||
| 19:12 | Debt CollectorsA martial artist takes a job as a debt collector for the mob. | 1h 47m | ||
| 20:59 | Accident ManA methodical hit man hunts six of his old colleagues to find the one who murdered his girlfriend. | 1h 58m | ||
| 22:57 | Accident Man 2A hit man must beat the top assassins in the world to protect the ungrateful son of a mafia boss. | 1h 46m |
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_kzcd91sf/schedule?date=2026-10-14&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kzcd91sf/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kzcd91sf/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_kzcd91sf/schedule?date=2026-10-14&tz=America/New_York"); 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_kzcd91sf/schedule?date=2026-10-14&tz=America/New_York", { 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_kzcd91sf/schedule", params={"date": "2026-10-14", "tz": "America/New_York"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_kzcd91sf/schedule?date=2026-10-14, the first programme { "data": [ { "id": "ls_eza6v39q", "channel": "ch_kzcd91sf", "start": "2026-10-14T03:17:00Z", "stop": "2026-10-14T05:06:00Z", "title": "Dangerous", "sub_title": null, "description": "An ex-con battles armed mercenaries as he tries to uncover the truth behind h...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 17, "date": "2026-10-14", "tz": "America/New_York" } }
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.