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_5z23byyc/schedule?date=2026-10-23&tz=America/Curacao
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:57 | WarS1 E4 Two rival London law firms take on the case of the century; in a world of love, scandal, betrayal and ambition, winning is everything. | 1h 1m | ||
| 00:58 | The MegA massive creature attacks a deep-sea submersible, leaving it disabled and trapping the crew at the bottom of the Pacific Ocean. With time running ... | 1h 58m | ||
| 02:56 | MaterialistsA young, ambitious New York City matchmaker finds herself torn between the perfect match and her imperfect ex. | 2h 4m | ||
| 05:00 | Bill Maher: Is Anyone Else Seeing This?Comedian Bill Maher addresses societal issues and taboo topics in their stand-up routine, pushing boundaries while aiming to resonate with a large ... | 1h 13m | ||
| 06:13 | SupergirlWhen an unexpected and ruthless adversary strikes too close to home, Supergirl reluctantly joins forces with an unlikely companion for an interstel... | 1h 54m | ||
| 08:07 | Shazam!Billy Batson is a streetwise 14-year-old who can magically transform into the adult superhero Shazam simply by shouting out one word. His newfound ... | 2h 15m | ||
| 10:22 | WonkaArmed with nothing but a hatful of dreams, young chocolatier Willy Wonka manages to change the world, one delectable bite at a time. | 2h | ||
| 12:22 | Hitpig!A clever bounty-hunting pig must return a dancing elephant to a Las Vegas circus to collect $1 million. However, when the mission goes sideways, he... | 1h 31m | ||
| 13:53 | SupergirlWhen an unexpected and ruthless adversary strikes too close to home, Supergirl reluctantly joins forces with an unlikely companion for an interstel... | 1h 53m | ||
| 15:46 | Knox Goes AwayDiagnosed with a rapidly evolving form of dementia, a contract killer gets the chance to redeem himself by saving the life of his estranged son. | 1h 58m | ||
| 17:44 | The EqualizerA man who believes he has put his mysterious past behind him cannot stand idly by when he meets a young girl under the control of ultra-violent Rus... | 2h 16m |
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_5z23byyc/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_5z23byyc/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_5z23byyc/history?from=2026-10-13T00:00:00Z&to=2026-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_5z23byyc/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_5z23byyc/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_5z23byyc/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_5z23byyc/schedule?date=2026-10-23, the first programme { "data": [ { "id": "ls_dr60pq4b", "channel": "ch_5z23byyc", "start": "2026-10-23T03:57:00Z", "stop": "2026-10-23T04:58:00Z", "title": "War", "sub_title": null, "description": "S1 E4\nTwo rival London law firms take on the case of the century; in a world ...", "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.