73.8M 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/Brussels time, what is on now and next, and the same data in your app with one call.
All times Europe/Brussels. The same day from the API: GET /v1/channels/ch_kdm9nxvp/schedule?date=2026-10-15&tz=Europe/Brussels
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:27 | Platos SuciosHa llegado el verano y todos tienen ganas de ir a la playa a ligar y a ponerse morenos. López y Ramón montan un stand de la radio en la playa pero ... | 39m | ||
| 00:06 | Platos SuciosÁngel, el guardia urbano de la playa, busca a Emma para devolverle el zapato que perdió en verano y para decirle que la quiere. | 43m | ||
| 00:49 | Platos SuciosLa abuela de David no puede dormir, está hiperactiva. El médico que va a visitarla le receta unas "hierbas" de maría. Todos deciden aprovechar la o... | 34m | ||
| 01:23 | Platos SuciosOriol, el padre de López, se jubila y se instala en casa de los chicos. La alegría de la jubilación le dura poco, en casa se aburre y esto le envej... | 35m | ||
| 01:58 | Platos SuciosStasky amplia las posibilidades del bar ofreciendo un servicio a domicilio. Emma se ofrece a llevar un pedido al Museo de cera pero, las horas pasa... | 41m | ||
| 02:39 | Vaya SemanitaEl programa de humor más irreverente y transgresor. | 56m | ||
| 03:35 | Vaya SemanitaEl programa de humor más irreverente y transgresor. | 54m | ||
| 04:29 | Jet LagSilvia tiene un carácter de mil demonios. En el trabajo, le advierten: o cambia, o en la calle. Esther está muy contenta de tener su hermana en cas... | 33m |
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_kdm9nxvp/schedule?date=2026-10-15&tz=Europe/Brussels" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kdm9nxvp/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kdm9nxvp/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_kdm9nxvp/schedule?date=2026-10-15&tz=Europe/Brussels"); 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_kdm9nxvp/schedule?date=2026-10-15&tz=Europe/Brussels", { 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_kdm9nxvp/schedule", params={"date": "2026-10-15", "tz": "Europe/Brussels"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_kdm9nxvp/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_0qjjecdc", "channel": "ch_kdm9nxvp", "start": "2026-10-14T21:27:58Z", "stop": "2026-10-14T22:06:48Z", "title": "Platos Sucios", "sub_title": null, "description": "Ha llegado el verano y todos tienen ganas de ir a la playa a ligar y a poners...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 8, "date": "2026-10-15", "tz": "Europe/Brussels" } }
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.