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/Madrid time, what is on now and next, and the same data in your app with one call. Search any past day on the Archive plan.
All times Europe/Madrid. The same day from the API: GET /v1/channels/ch_wjqeb7x9/schedule?date=2026-10-11&tz=Europe/Madrid
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 01:27 | Los asesinatos de MidsomerUn clima de muerte. | Un clima de muerte | 1h 29m | |
| 02:56 | Soko leipzigEl equipo de la Comisión Especial de la policía de Leipzig investiga principalmente delitos capitales como asesinato y homicidio involuntario. | S3 E8, Toten schenkt man nichts | 44m | |
| 03:40 | Soko leipzigEl equipo de la Comisión Especial de la policía de Leipzig investiga principalmente delitos capitales como asesinato y homicidio involuntario. | S3 E9, Seitensprung | 44m | |
| 04:24 | SOKO LeipzigEl equipo de la Comisión Especial de la policía de Leipzig investiga principalmente delitos capitales como asesinato y homicidio involuntario. | S3 E10, Die Liebesfalle | 43m | |
| 05:07 | Gaudí1989. Documental. Carles Sabater, Elisabeth Escayola, Jesús Orús. Ficción documental en blanco y negro (35-16mm & vídeo) para televisión sobre la v... | Gaudi (Accesibilidad) | 1h 6m | |
| 06:13 | En busca de SummerlandEn Inglaterra, durante la Segunda Guerra Mundial, muchos niños son evacuados de las ciudades y enviados a pequeños pueblos con familias locales que... | 1h 33m | ||
| 07:46 | Soko leipzigEl equipo de la Comisión Especial de la policía de Leipzig investiga principalmente delitos capitales como asesinato y homicidio involuntario. | S17 E22, Der Wert des Lebens | 43m | |
| 08:29 | Soko leipzigEl equipo de la Comisión Especial de la policía de Leipzig investiga principalmente delitos capitales como asesinato y homicidio involuntario. | S17 E23, Frankenstein | 44m | |
| 09:13 | Soko leipzigEl equipo de la Comisión Especial de la policía de Leipzig investiga principalmente delitos capitales como asesinato y homicidio involuntario. | Hostal en Leipzig | 47m | |
| 10:00 | HeldtNikolas Heldt decidió de pequeño convertirse en policía tras presenciar el asesinato de sus padres. En el presente, es el comisionado de policía de... | S4 E10, Bochum innovativ | 47m | |
| 10:47 | HeldtNikolas Heldt decidió de pequeño convertirse en policía tras presenciar el asesinato de sus padres. En el presente, es el comisionado de policía de... | S4 E11, Kalter Hund | 47m | |
| 11:34 | HeldtNikolas Heldt decidió de pequeño convertirse en policía tras presenciar el asesinato de sus padres. En el presente, es el comisionado de policía de... | S4 E12, Der Kronzeuge | 43m | |
| 12:17 | HeldtNikolas Heldt decidió de pequeño convertirse en policía tras presenciar el asesinato de sus padres. En el presente, es el comisionado de policía de... | S4 E13, Die Kakerlake | 48m | |
| 13:05 | HeldtNikolas Heldt decidió de pequeño convertirse en policía tras presenciar el asesinato de sus padres. En el presente, es el comisionado de policía de... | S4 E14, Der Putzteufel | 50m | |
| 13:55 | HeldtNikolas Heldt decidió de pequeño convertirse en policía tras presenciar el asesinato de sus padres. En el presente, es el comisionado de policía de... | S4 E15, Interne Ermittlung | 51m | |
| 14:46 | Agatha Christie: PoirotPoirot recibe cartas de un asesino en serie que se mofa de él y que parece elegir alfabéticamente a sus víctimas y las escenas de los crímenes. | S4 E1, The ABC Murders | 1h 54m | |
| 16:40 | Agatha Christie: PoirotMientras Poirot duerme durante un vuelo de París a Londres, un notorio prestamista francés es asesinado mediante un dardo envenenado. | S4 E2, Death in the Clouds | 1h 56m | |
| 18:36 | Los asesinatos de MidsomerTesoros de la oscuridad. | Tesoros de la oscuridad | 1h 45m | |
| 20:21 | Los asesinatos de MidsomerTom Bamaby, un hombre de mediana edad felizmente casado, es el inspector jefe de un pequeño pueblo de Midsomer. Ayudado por el rudo y conservador s... | S4 E1, Garden of Death | 1h 39m | |
| 22:00 | Los asesinatos de MidsomerLa muerte ataca a las tres. | La muerte ataca a las tres | 1h 46m | |
| 23:46 | Los asesinatos de MidsomerLos mejores de la clase. | Los mejores de la clase | 1h 38m |
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_wjqeb7x9/schedule?date=2026-10-11&tz=Europe/Madrid" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_wjqeb7x9/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_wjqeb7x9/history?from=2026-02-07T00:00:00Z&to=2026-02-08T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_wjqeb7x9/schedule?date=2026-10-11&tz=Europe/Madrid"); 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_wjqeb7x9/schedule?date=2026-10-11&tz=Europe/Madrid", { 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_wjqeb7x9/schedule", params={"date": "2026-10-11", "tz": "Europe/Madrid"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_wjqeb7x9/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_xazdq5h2", "channel": "ch_wjqeb7x9", "start": "2026-10-10T23:27:00Z", "stop": "2026-10-11T00:56:00Z", "title": "Los asesinatos de Midsomer", "sub_title": "Un clima de muerte", "description": "Un clima de muerte.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 21, "date": "2026-10-11", "tz": "Europe/Madrid" } }
What was on, on any date we hold: for research, catch-up, clip finding or proving a broadcast. Any window up to 31 days with /v1/channels/{id}/history on the Archive plan.
| Time | Saturday 7 February 2026 | Category |
|---|---|---|
| 06:56 | Mentiras e ilusiones | |
| 08:21 | Stingers | |
| 09:04 | Stingers | |
| 19 more programmes that day, on Archive | ||
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.