71.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/Berlin time, what is on now and next, and the same data in your app with one call.
All times Europe/Berlin. The same day from the API: GET /v1/channels/ch_p17962h9/schedule?date=2026-10-12&tz=Europe/Berlin
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:16 | Historia de una pasión¿Quién fue Emily Dickinson? ¿Quién se escondía detrás de la poetisa que paso la mayor parte de su vida en casa de sus padres? La mansión en la que ... | Biographical drama, Drama | 2h 24m | |
| 00:40 | Amor a quemarropaEn Detroit, un friki de la cultura pop se casa con una puta, le roba cocaína a su chulo, e intenta venderla en Hollywood. Los propietarios de la co... | Movie, Thriller | 2h 4m | |
| 02:44 | La perfecta desconocidaMientras un hombre contempla mudarse a un nuevo estado con su esposa para su programa de posgrado, un viejo amor, una mujer que a menudo cambia de ... | Romance, Movie | 1h 34m | |
| 04:19 | FictionÁlex es director de cine. Está casado y tiene dos hijos. Es un hombre reservado y tímido. Alex tiene problemas para terminar el guión de su próxima... | Drama, Movie | 1h 52m | |
| 06:11 | Conversaciones con otras mujeresUn hombre y una mujer próximos a los cuarenta se conocen en una boda en un hotel neoyorkino. Entablarán una conversación llena de ingenio y dobles ... | Dark humor & black comedies, Comedy | 1h 30m | |
| 07:41 | El GruñónUn arisco anciano choca con su nuera cuando, a consecuencia de una caída, tenga que trasladarse a vivir con la familia de su hijo a Helsinki. Su nu... | Comedy, Movie | 1h 57m | |
| 09:38 | El tercer hombreGanadora del Oscar a Mejor Fotografía B/N. En 1947, un escritor llega a Viena, ocupada por tropas aliadas, donde existe un mercado negro de víveres... | Movie, Thriller | 2h | |
| 11:38 | La verdadFabienne es una estrella del cine francés. Vive rodeada de hombres que la aman y admiran: su nuevo compañero, su exmarido, su agente… Decide public... | Movie, Biographical drama | 2h 3m | |
| 13:41 | Después de la tormentaRyota vive en el pasado, en sus momentos de gloria como premiado autor. Un inesperado tifón obligará a toda la familia a pasar la noche juntos en c... | Movie, Foreign drama | 2h 14m | |
| 15:55 | Verano en BrooklynLos padres de Jake acaban de mudarse a la casa de su abuelo, tras la muerte de este. Hace años que la madre de Tony alquila la tienda de abajo. Los... | Independent drama, Drama | 1h 39m | |
| 17:34 | Crónicas diplomáticasEl Ministerio de Asuntos Exteriores contrata al joven Arthur Vlaminck como encargado del “lenguaje”. En otras palabras, redactará los discursos del... | Political comedies, Comedy | 2h 6m | |
| 19:40 | Nuestra hermana pequeñaNuestra hermana pequeña | Drama, Foreign drama | 2h 26m | |
| 22:06 | El Gatopardo On nowEl príncipe de Salina trata de preservar su familia y su clase en medio de los trastornos sociales de la Sicilia de 1860. | Drama, Movie | 3h 23m |
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_p17962h9/schedule?date=2026-10-12&tz=Europe/Berlin" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_p17962h9/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_p17962h9/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_p17962h9/schedule?date=2026-10-12&tz=Europe/Berlin"); 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_p17962h9/schedule?date=2026-10-12&tz=Europe/Berlin", { 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_p17962h9/schedule", params={"date": "2026-10-12", "tz": "Europe/Berlin"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_p17962h9/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_fswqg09f", "channel": "ch_p17962h9", "start": "2026-10-11T20:16:30Z", "stop": "2026-10-11T22:40:30Z", "title": "Historia de una pasión", "sub_title": null, "description": "¿Quién fue Emily Dickinson? ¿Quién se escondía detrás de la poetisa que paso ...", "category": [ "biographical drama", "drama", "movie" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 13, "date": "2026-10-12", "tz": "Europe/Berlin" } }
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.