90.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. On the Live plan; the free key reads yesterday.
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/Curacao time, what is on now and next, and the same data in your app with one call.
All times America/Curacao. The same day from the API: GET /v1/channels/ch_zfhx362h/schedule?date=2026-10-23&tz=America/Curacao
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:00 | Den of Thieves: PanteraLawman "Big Nick" O'Brien gets embroiled in the treacherous and unpredictable world of diamond thieves as he pursues career criminal Donnie Wilson ... | 2h 14m | ||
| 01:14 | King IvoryA cop makes it his mission to take down the Mexican cartels after his son gets addicted to drugs. | 2h 13m | ||
| 03:27 | A Line of FireA former FBI agent dives into a sleazy underworld of corruption and intrigue to protect a young woman from dangerous criminals. | 1h 33m | ||
| 05:00 | The Scorpion KingA desert warrior rises up against the evil army that is destroying his homeland. He captures the enemy's key sorcerer, takes her deep into the dese... | 1h 40m | ||
| 06:40 | The Mummy ReturnsThe mummified body of Imhotep is shipped to a museum in London, where he once again wakes and begins his campaign of rage and terror. | 2h 17m | ||
| 08:57 | District 9A field operative (Sharlto Copley) for a company that oversees extraterrestrial refugees contracts a mysterious virus that begins to change his DNA. | 1h 59m | ||
| 10:56 | OblivionTwo weeks before he is scheduled to depart from devastated planet Earth forever, a drone repairman rescues a woman from a downed spaceship, trigger... | 2h 12m | ||
| 13:08 | Live Die Repeat: Edge of TomorrowA soldier fighting aliens gets to relive the same day over and over again, the day restarting every time he dies. | 2h 1m | ||
| 15:09 | They Will Kill YouA woman answers a cryptic ad for a housekeeping job at a luxurious yet foreboding New York City high-rise. Upon arrival, she discovers residents ha... | 1h 41m | ||
| 16:50 | District 9A field operative (Sharlto Copley) for a company that oversees extraterrestrial refugees contracts a mysterious virus that begins to change his DNA. | 1h 59m | ||
| 18:49 | OblivionTwo weeks before he is scheduled to depart from devastated planet Earth forever, a drone repairman rescues a woman from a downed spaceship, trigger... | 2h 11m |
Copy, add your key, run. The free key reads yesterday on every channel, 500 calls a day; today and ahead are on Live.
curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zfhx362h/schedule?date=2026-10-23&tz=America/Curacao" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zfhx362h/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zfhx362h/history?from=2026-10-13T00:00:00Z&to=2026-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_zfhx362h/schedule?date=2026-10-23&tz=America/Curacao"); 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_zfhx362h/schedule?date=2026-10-23&tz=America/Curacao", { 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_zfhx362h/schedule", params={"date": "2026-10-23", "tz": "America/Curacao"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_zfhx362h/schedule?date=2026-10-23, the first programme { "data": [ { "id": "ls_fdq70yf4", "channel": "ch_zfhx362h", "start": "2026-10-23T03:00:00Z", "stop": "2026-10-23T05:14:00Z", "title": "Den of Thieves: Pantera", "sub_title": null, "description": "Lawman \"Big Nick\" O'Brien gets embroiled in the treacherous and unpredictable...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 11, "date": "2026-10-23", "tz": "America/Curacao" } }
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's listings on every channel in 176 countries.