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. Search any past day on the Archive plan.
All times Europe/Berlin. The same day from the API: GET /v1/channels/ch_8e104c24/schedule?date=2026-10-13&tz=Europe/Berlin
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:15 | Hartes Deutschland - Leben im Brennpunkt On now | Leipzig | Reportagereihe | 2h |
| 00:15 | Love Island VIP 3 | Doku-soap | 1h 5m | |
| 01:20 | Love Island VIP 3 | Doku-soap | 1h | |
| 02:20 | Maison Tabou | Doku-soap | 50m | |
| 03:10 | Stranger Sins 2 | Doku-soap | 1h 5m | |
| 04:15 | Exklusiv - die ReportageNormal ist auch für das Team und die Kundschaft eines Piercing-Studios in Dortmund ein Fremdwort. Piercings an allen erdenklichen Stellen, auffälli... | Körper extrem! - Auffallen um jeden Preis | Reportagereihe | 55m |
| 05:10 | Der Trödeltrupp - Das Geld liegt im Keller 16 | Marco bei Uwe | Doku-soap | 50m |
| 06:00 | Der Trödeltrupp - Das Geld liegt im Keller 5 | Meine Mutter hat ein Helfer-Syndrom! | Doku-soap | 1h |
| 07:00 | Der Trödeltrupp - Das Geld liegt im Keller 5 | Die Sachen müssen weg, sonst ziehe ich nicht in das Elternhaus meines Freundes ein! | Doku-soap | 1h |
| 08:00 | Der Trödeltrupp - Das Geld liegt im Keller 6 | Mauro bei Lore | Doku-soap | 1h |
| 09:00 | Der Trödeltrupp - Das Geld liegt im Keller 6 | Der Keller wird nicht mehr betreten, sonst gibt es nur Diskussionen / Otto bei Barbara und Peter | Doku-soap | 1h |
| 10:00 | Der Trödeltrupp - Das Geld liegt im Keller 12 | Mauro bei Gisela aus Kiel | Doku-soap | 1h |
| 11:00 | Der Trödeltrupp - Das Geld liegt im Keller 20 | Mauro, Otto und Sükrü bei Christel | Doku-soap | 1h 55m |
| 12:55 | Der Trödeltrupp - Das Geld liegt im Keller 14 | Sükrü bei Joachim | Doku-soap | 1h |
| 13:55 | SOS - Retter im Einsatz 2 | Die Braut, die sich traut | Doku-soap | 1h 5m |
| 15:00 | SOS - Retter im Einsatz 2 | Das Blut-Büdchen | Doku-soap | 1h |
| 16:00 | RTLZWEI News 8 | Nachrichten | 4m | |
| 16:04 | RTLZWEI Wetter 8 | Magazin | 1m | |
| 16:05 | Hartz und herzlich - Tag für Tag Rostock 13 | In den Tiefen der Ostsee unterwegs | Doku-soap | 1h |
| 17:05 | Hartz Rot Gold 4 | Am Tiefpunkt | Reportagereihe | 1h |
| 18:05 | Hartz und herzlich - Tag für Tag Rostock 13 | Freude und Sorgen sind gute Bekannte | Doku-soap | 1h |
| 19:05 | Berlin - Tag & Nacht 16 | Liebe reicht diesmal nicht | Doku-soap | 1h 10m |
| 20:15 | Hartz und herzlich 8 | Rückkehr nach Trier - West | Dokumentationsreihe | 2h |
| 22:15 | Hartz und herzlich 18 | Rückkehr nach Niedergörsdorf | Dokumentationsreihe | 2h |
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_8e104c24/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_8e104c24/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_8e104c24/history?from=2025-10-12T00:00:00Z&to=2025-10-13T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_8e104c24/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_8e104c24/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_8e104c24/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_8e104c24/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_4fs63k28", "channel": "ch_8e104c24", "start": "2026-10-12T20:15:00Z", "stop": "2026-10-12T22:15:00Z", "title": "Hartes Deutschland - Leben im Brennpunkt", "sub_title": "Leipzig", "description": null, "category": [ "reportagereihe" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 24, "date": "2026-10-13", "tz": "Europe/Berlin" } }
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 12 October 2024 | Category |
|---|---|---|
| Nothing held for that day. Try another date. | ||
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.