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/Warsaw 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/Warsaw. The same day from the API: GET /v1/channels/ch_be71rm8g/schedule?date=2026-10-13&tz=Europe/Warsaw
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:20 | Goodbye Deutschland! Die Auswanderer 17 | Kanada: Alexander und Melanie | Doku-soap | 1h |
| 00:20 | vox nachrichten 42 | Nachrichten | 20m | |
| 00:40 | Medical Detectives - Geheimnisse der Gerichtsmedizin | Tod am Straßenrand | Dokumentationsreihe | 55m |
| 01:35 | Medical Detectives - Geheimnisse der Gerichtsmedizin 2 On now | Tod im Schlafzimmer | Dokumentationsreihe | 50m |
| 02:25 | Medical Detectives - Geheimnisse der Gerichtsmedizin 2 | Auf Leben und Tod | Dokumentationsreihe | 50m |
| 03:15 | Medical Detectives - Geheimnisse der Gerichtsmedizin 2 | Verhängnisvolles Vertrauen | Dokumentationsreihe | 50m |
| 04:05 | Medical Detectives - Geheimnisse der Gerichtsmedizin | Vorsicht Giftig! | Dokumentationsreihe | 50m |
| 04:55 | Medical Detectives - Geheimnisse der Gerichtsmedizin 3 | Verdeckt | Dokumentationsreihe | 35m |
| 05:30 | CSI: New York 2 | Die tote Meerjungfrau | Krimiserie | 45m |
| 06:15 | CSI: New York 2 | Nahkampf | Krimiserie | 50m |
| 07:05 | CSI: New York 3 | Freier Fall | Krimiserie | 55m |
| 08:00 | CSI: Den Tätern auf der Spur 6 | Feuer und Flamme | Krimiserie | 45m |
| 08:45 | CSI: Den Tätern auf der Spur 6 | Herr der Fliegen | Krimiserie | 50m |
| 09:35 | vox nachrichten 41 | Nachrichten | 5m | |
| 09:40 | CSI: Den Tätern auf der Spur 6 | Das große Fressen | Krimiserie | 55m |
| 10:35 | CSI: Den Tätern auf der Spur 6 | Der Wolfsmann | Krimiserie | 50m |
| 11:25 | CSI: Den Tätern auf der Spur 6 | Der letzte Vorhang | Krimiserie | 55m |
| 12:20 | CSI: Miami 8 | Tödliche Saat | Krimiserie | 50m |
| 13:10 | CSI: Miami 8 | Ey Mann, wo is' mein Bräutigam? | Krimiserie | 55m |
| 14:05 | CSI: Miami 8 | Tödliche Treffpunkte | Krimiserie | 55m |
| 15:00 | Shopping Queen 17 | Tag 2: Alexandra, Frankfurt | Doku-soap | 1h |
| 16:00 | Guidos Deko Queen 5 | Tag 2: Carolin | Doku-soap | 1h |
| 17:00 | Zwischen Tüll und Tränen 11 | Bad News in Ulm | Doku-soap | 1h |
| 18:00 | First Dates - Ein Tisch für zwei 101 | U. a. mit: Leonie und Niklas | Doku-soap | 1h |
| 19:00 | Das perfekte Dinner 30 | Tag 2: Patrick, Dresden | Doku-soap | 1h 15m |
| 20:15 | Die Welpen kommen - Mit Martin Rütter 6Bei Familie Becker in Groß-Gerau sind die Labradorbrüder Castor und Pollux eingezogen. Besonders Familienoberhaupt Stephan hat alles perfekt geplan... | Dokumentationsreihe | 2h | |
| 22:15 | Hot oder Schrott - Die Allestester 94+ "Airzooka" Allestester: Sybille & Marian / Steffi & Roland / Nicole & Detlef Dinge aus einer Distanz von mehreren Metern nur durch Luft in Bewegu... | U. a.: Fahrrad-Sitzheizung | Doku-soap | 2h 5m |
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_be71rm8g/schedule?date=2026-10-13&tz=Europe/Warsaw" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_be71rm8g/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_be71rm8g/history?from=2025-10-12T00:00:00Z&to=2025-10-13T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_be71rm8g/schedule?date=2026-10-13&tz=Europe/Warsaw"); 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_be71rm8g/schedule?date=2026-10-13&tz=Europe/Warsaw", { 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_be71rm8g/schedule", params={"date": "2026-10-13", "tz": "Europe/Warsaw"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_be71rm8g/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_npe7scg3", "channel": "ch_be71rm8g", "start": "2026-10-12T21:20:00Z", "stop": "2026-10-12T22:20:00Z", "title": "Goodbye Deutschland! Die Auswanderer 17", "sub_title": "Kanada: Alexander und Melanie", "description": null, "category": [ "doku-soap" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 27, "date": "2026-10-13", "tz": "Europe/Warsaw" } }
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 | Sunday 12 October 2025 | 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.