74.3M 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 UTC time, what is on now and next, and the same data in your app with one call.
All times UTC. The same day from the API: GET /v1/channels/ch_zstb5fx1/schedule?date=2026-10-11&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 02:40 | Rock Island MysteriesTaylor Young goes on the adventure of a lifetime after the disappearance of her uncle. Her friends help her get to the bottom of the secrets that R... | S2 E11, Return To The Hidden Valley | 25m | |
| 03:05 | Rock Island MysteriesTaylor, Meesha and Nori are on the hunt to get their hands on a chest that Uncle Charlie has buried in the past, which leads them to some ice tunne... | S2 E12, Secrets In The Ice | 25m | |
| 03:30 | The MarsupilamisBibi goes live, but when she's not getting enough likes, Twister steps in to help, and is almost unmasked. Gran Gran's convinced that Chahuta won't... | Jade the Influencer / Restaurant Review | 25m | |
| 03:55 | The MarsupilamisJade is a great dancer and must face Mr Best in a dance-off in person. Mica and Jade put on a play to win their school a prize, but forget a key pr... | Dance Off / The show must go on | 25m | |
| 04:20 | The SmurfsHefty and Storm get competitive at the pumpkin rally, but their less motivated teammates might hold them back. | Smurf Racers | 10m | |
| 04:30 | The SmurfsWhen the Smurf Band's lead singer acts like a diva, the band accidentally replaces him with another diva: Vanity. As a result, big plans for a birt... | Who's in the Band? | 10m | |
| 04:40 | The SmurfsWhen the moon is turned off, the Smurfs decides to fly up there to turn it back on again. | We Smurfed on the Moon | 20m | |
| 05:00 | SpongeBob SquarePantsSquidward's prankster dad visits and brings all sorts of gags with him, much to Squidward's annoyance; Plankton tries to get a taste of the secret ... | S15 E8, Biscuit Ballyhoo | 30m |
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_zstb5fx1/schedule?date=2026-10-11&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zstb5fx1/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zstb5fx1/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_zstb5fx1/schedule?date=2026-10-11&tz=UTC"); 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_zstb5fx1/schedule?date=2026-10-11&tz=UTC", { 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_zstb5fx1/schedule", params={"date": "2026-10-11", "tz": "UTC"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_zstb5fx1/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_2mewhkmj", "channel": "ch_zstb5fx1", "start": "2026-10-11T02:40:00Z", "stop": "2026-10-11T03:05:00Z", "title": "Rock Island Mysteries", "sub_title": "Return To The Hidden Valley", "description": "Taylor Young goes on the adventure of a lifetime after the disappearance of h...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 8, "date": "2026-10-11", "tz": "UTC" } }
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.