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. Search any past day on the Archive plan.
All times Europe/Brussels. The same day from the API: GET /v1/channels/ch_1j4tayhs/schedule?date=2026-10-15&tz=Europe/Brussels
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:42 | Stromberg - Der FilmFirmenfeiern sind wie das letzte Abendmahl. Immer zu wenig Weiber, das Essen ist schlecht und am Ende gibt´s Ärger´. Eine weise Vorahnung – und tro... | S1 E1, Der Parkplatz | 2h 18m | |
| 01:00 | StrombergEs ist ein ungeschriebenes Gesetz: Bernd Stromberg tritt mit Anlauf in jedes verfügbare Fettnäpfchen! Um an einen überdachten Parkplatz ranzukommen... | S1 E1, Der Parkplatz | 31m | |
| 01:30 | StrombergSeit acht Monaten hätten die neuen Brandschutzbestimmungen bereits umgesetzt sein sollen, doch Herr Stromberg hat das total verpennt. Frau Berkel i... | S1 E2, Feueralarm | 30m | |
| 02:01 | StrombergStromberg ist unzufrieden mit dem Service in der Kantine. Prompt ruft er zum Boykott auf und versucht zusätzlich noch, dem Koch mit dem Gesundheits... | S1 E3, Mobbing | 31m | |
| 02:32 | StrombergUlf hat Geburtstag - und eigentlich ganz andere Sorgen. Seine Freundin beim Betriebsrat droht mit Beziehungsende wenn er sich nicht rechtzeitig für... | S1 E4, Der Geburtstag | 31m | |
| 03:03 | StrombergStromberg ist in Zugzwang: Der Kollege Turculu glänzt mal wieder, diesmal durch Integration von zwei Behinderten in seiner Abteilung. Da will Strom... | S1 E5, Die gute Tat | 31m | |
| 03:34 | StrombergStromberg soll Erika entlassen, weil sie Toner aus dem Büro hat mitgehen lassen. Die Zwickmühle: Er braucht sie, um seinen wichtigsten Kunden nicht... | S1 E6, Diebstahl | 31m | |
| 04:04 | StrombergDass es um die Beförderung geht, denkt zumindest Stromberg. In Wirklichkeit aber soll er das Programm für die Betriebsfeier organisieren. Das nimmt... | S1 E7, Die Beförderung | 31m | |
| 04:36 | StrombergWährend Erika ihren Ausstand feiert, hat Stromberg ganz andere Sorgen. Er rückt nach im Bewerbungsverfahren um die Gesamtleitung seiner und Turculu... | S1 E8, Der letzte Tag | 31m |
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_1j4tayhs/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_1j4tayhs/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_1j4tayhs/history?from=2026-02-06T00:00:00Z&to=2026-02-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_1j4tayhs/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_1j4tayhs/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_1j4tayhs/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_1j4tayhs/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_wt57vk76", "channel": "ch_1j4tayhs", "start": "2026-10-14T20:42:17Z", "stop": "2026-10-14T22:59:57Z", "title": "Stromberg - Der Film", "sub_title": null, "description": "Firmenfeiern sind wie das letzte Abendmahl. Immer zu wenig Weiber, das Essen ...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 9, "date": "2026-10-15", "tz": "Europe/Brussels" } }
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 | Friday 6 February 2026 | Category |
|---|---|---|
| 05:25 | Stromberg | |
| 05:56 | Stromberg | |
| 06:29 | Stromberg | |
| 29 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.