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/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_s3b4bvzh/schedule?date=2026-10-13&tz=Europe/Berlin
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:41 | Der Alte: Gigolo ist totBertie und sein Freund Werner - genannt Gigolo - klettern mitten in der Nacht über die Garage zum Alarmkasten der Villa Hennig. Nachdem Bertie mit ... | Gigolo ist tot | Drama, Series | 1h 11m |
| 00:53 | Der Alte: Killer gesuchtChrista Beleitis - einer eleganten Frau an die Vierzig - schwimmen die Felle weg: Ein Detektiv hat für sie herausgefunden, daß der von ihr mit Gesc... | Killer gesucht | Drama, Series | 1h 9m |
| 02:02 | Der Alte: Tödliche FreundschaftBei dem Überfall auf eine Sparkassen-Filiale wird der mutig dazwischentretende Herr Roßmann erschossen. Der maskierte Einzeltäter kann mit seiner G... | Tödliche Freundschaft | Drama, Series | 1h 11m |
| 03:13 | Der Alte: Falsch verbunden On nowUwe Scholz, der depressiv gewordene Ehemann von Effi, hat keinen Antrieb, mit zu der großen Party eines Kaufhauskettenbesitzers zu gehen. | Falsch verbunden | Drama, Series | 1h 9m |
| 04:22 | Der Alte: Floßfahrt ins JenseitsDie kinderlose Ehe zwischen der lebenshungrigen Irene und dem alkoholkranken Bartholomäus Möller ist nach sieben Jahren kaputt. Er sitzt stundenlan... | Floßfahrt ins Jenseits | Drama, Series | 1h 10m |
| 05:32 | Der Alte: TatverdachtDer Geldbote Peter Schenk ist auf dem Weg vom Hotel zu seinem im Hof parkenden Panzerfahrzeug angeschossen und um 160.000,--DM beraubt worden. Seit... | Tatverdacht | Drama, Series | 1h 12m |
| 06:43 | Der Alte: Tod eines PiratenEin Ehepaar mit Einschlafproblemen beobachtet, wie am Nachbarhaus eine dunkle Gestalt die Fassade hinaufklettert. Die schnell herbeigerufene Polize... | Tod eines Piraten | Drama, Series | 1h 11m |
| 07:55 | Der Alte: Der sanfte TodHerr und Frau Heinzen sind irritiert. Über ihnen läuft seit Stunden die gleiche Beatle-Platte. Die herbeigerufene Polizei öffnet die Wohnung des al... | Der sanfte Tod | Drama, Series | 1h 11m |
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_s3b4bvzh/schedule?date=2026-10-13&tz=Europe/Berlin" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_s3b4bvzh/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_s3b4bvzh/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_s3b4bvzh/schedule?date=2026-10-13&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_s3b4bvzh/schedule?date=2026-10-13&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_s3b4bvzh/schedule", params={"date": "2026-10-13", "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_s3b4bvzh/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_yafqjhht", "channel": "ch_s3b4bvzh", "start": "2026-10-12T21:41:55Z", "stop": "2026-10-12T22:53:13Z", "title": "Der Alte: Gigolo ist tot", "sub_title": "Gigolo ist tot", "description": "Bertie und sein Freund Werner - genannt Gigolo - klettern mitten in der Nacht...", "category": [ "drama", "series" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 8, "date": "2026-10-13", "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.