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 Europe/Paris time, what is on now and next, and the same data in your app with one call.
All times Europe/Paris. The same day from the API: GET /v1/channels/ch_cz8xh42g/schedule?date=2026-10-13&tz=Europe/Paris
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 21:53 | New WorldGoldmoon, une société écran qui abrite un syndicat du crime, vient de perdre son président et parrain. La succession est proche, et trois hommes vo... | 2h 28m | ||
| 00:21 | Bunker Palace HotelEn cette fin de siècle, la guerre règne. L'ex-nomenklatura d'un régime miné par la guérilla s'est retranchée dans un bunker transformé en palace. T... | 1h 49m | ||
| 02:11 | Black sea On nowRécemment renvoyé par sa société, un capitaine de sous-marin est embauché pour trouver un trésor gisant au fond de la mer. | 2h 10m | ||
| 04:21 | Paradise LostDes jeunes touristes américains prennent du bon temps au Brésil à l'occasion de leurs vacances. La détente tourne court lorsque leur bus est pris d... | 1h 43m | ||
| 06:04 | The Little UnicornUn conte de fées moderne vraiment enchanteur, avec des effets spéciaux époustouflants. La vie heureuse de la jeune Polly et de son grand-père est b... | 1h 34m |
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_cz8xh42g/schedule?date=2026-10-13&tz=Europe/Paris" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_cz8xh42g/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_cz8xh42g/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_cz8xh42g/schedule?date=2026-10-13&tz=Europe/Paris"); 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_cz8xh42g/schedule?date=2026-10-13&tz=Europe/Paris", { 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_cz8xh42g/schedule", params={"date": "2026-10-13", "tz": "Europe/Paris"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_cz8xh42g/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_pbjkx5fp", "channel": "ch_cz8xh42g", "start": "2026-10-12T19:53:49Z", "stop": "2026-10-12T22:21:52Z", "title": "New World", "sub_title": null, "description": "Goldmoon, une société écran qui abrite un syndicat du crime, vient de perdre ...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 5, "date": "2026-10-13", "tz": "Europe/Paris" } }
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 155 countries.