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/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_4v4tj6ak/schedule?date=2026-10-15&tz=Europe/Brussels
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:40 | CopStories - AlohoolBei einer Planquadrataktion flieht eine Unbekannte. Zwei Kindergartenkinder verschwinden, Vickerl entdeckt eine verbrannte Leiche. Ein Tag, an dem ... | 44m | ||
| 00:23 | CopStories - Bitte nedIdentität der Frauenleiche unklar. Mathias und Roman ermitteln bei Einbruch, Helga und Sylvester treffen Parksünderin. Zwischenfall bei Häftlingsüb... | 44m | ||
| 01:07 | CopStories - SchmähstadTrotz Schock um Tina: Helga und Sylvester finden bei Einbruch etwas Schauriges. Mathias und Flo untersuchen Hundeentführung. Iveta taucht wieder au... | 44m | ||
| 01:51 | CopStories - Herz...SchmerzEin Russe wird tot gefunden, seine Frau vermutet Mafia. Eberts und Itchy ermitteln. Roman steht unter Verdacht. Iveta ruft Itchy und bittet um Hilfe. | 8m | ||
| 02:00 | Schnell Ermittelt - Eberhard BinaNach Jans Prozess verliert Angelika ihren Job, Franitschek geht in Pension. Eberhard Bina bittet sie, seiner bedrohten Freundin zu helfen. So wird ... | 47m | ||
| 02:46 | Schnell Ermittelt - Nadja BruggerNadja Brugger sucht ihren seit drei Monaten verschwundenen Mann David. Verdacht: Mafia. Spur zu Geliebter und Singleclub. David wird tot gefunden, ... | 44m | ||
| 03:30 | Schnell Ermittelt - Lucia FrostLucia Frost vermisst Umweltaktivist Marius Schreiber und beauftragt Angelika und Franitschek. Kollegen sagen, er sei in Peru - doch er versteckt si... | 45m | ||
| 04:15 | Schnell Ermittelt - Jakob DinkelmannWurstmillionär Jakob Dinkelmann wird erpresst und engagiert Angelika und Franitschek als Personenschützer. Verdacht fällt auf Ex-Sicherheitschef Ar... | 46m |
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_4v4tj6ak/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_4v4tj6ak/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_4v4tj6ak/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_4v4tj6ak/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_4v4tj6ak/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_4v4tj6ak/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_4v4tj6ak/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_zaemhmf3", "channel": "ch_4v4tj6ak", "start": "2026-10-14T21:40:01Z", "stop": "2026-10-14T22:23:39Z", "title": "CopStories - Alohool", "sub_title": null, "description": "Bei einer Planquadrataktion flieht eine Unbekannte. Zwei Kindergartenkinder v...", "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 155 countries.