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/Moscow 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/Moscow. The same day from the API: GET /v1/channels/ch_sm2jq5aq/schedule?date=2026-10-16&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:51 | Die Simpsons 27 | 22 – Orange is the New Yellow | 21m | ||
| 00:12 | Die Simpsons 28 | 2 – Die virtuelle Familie | 22m | ||
| 00:34 | Die Simpsons 28 | 3 – Stadt ohne Gnade | 21m | ||
| 00:55 | Die Simpsons 28 | 4 – Trocken, tot und tödlich | 21m | ||
| 01:16 | Die Simpsons 28 | 5 – Fake-News | 22m | ||
| 01:38 | Die Simpsons 28 | 6 – Mein peinlicher Freund | 21m | ||
| 01:59 | Die Simpsons 28 | 7 – Fidel Grampa | 20m | ||
| 02:19 | Die Simpsons 28 | 7 – Fidel Grampa | 22m | ||
| 02:41 | Die Simpsons 28 | 8 – Affenhilfe | 21m | ||
| 03:02 | Die Simpsons 28 | 9 – Mr. und Mrs. Smithers | 21m | ||
| 03:23 | Die Simpsons 28 | 10 – Krustliche Weihnachten | 22m | ||
| 03:45 | Die Simpsons 28 | 11 – Ein Schweinchen namens Propper | 23m | ||
| 04:08 | Die Simpsons 28 | 12 – Der große Phatsby (1): Der Verrat | 41m | ||
| 04:49 | Die Simpsons 28 | 13 – Der große Phatsby (2): Die Rache | 20m | ||
| 05:09 | Die Simpsons 28 | 14 – Fettscarraldo | 21m | ||
| 05:30 | Die Simpsons 28 | 15 – Homersche Eröffnung | 21m | ||
| 05:51 | Die Simpsons 28 | 16 – Krise nach Kamp Krusty | 21m | ||
| 06:12 | Die Simpsons 28 | 17 – 22 für 30 | 20m | ||
| 06:32 | Die Simpsons 28 | 18 – Der Uhr-Großvater | 21m | ||
| 06:53 | Die Simpsons 28 | 19 – Homer Academy | 21m | ||
| 07:14 | Die Simpsons 29 | 1 – Die Sklavsons | 21m | ||
| 07:35 | Die Simpsons 29 | 2 – Sad Girl | 21m | ||
| 07:56 | Die Simpsons 29 | 3 – Talent mit Pfiff | 20m | ||
| 08:16 | Die Simpsons 29 | 4 – Der Exorzismus von Maggie Simpson | 21m | ||
| 08:37 | Die Simpsons 29 | 5 – Grampa ist ganz Ohr | 20m | ||
| 08:57 | Die Simpsons 29 | 6 – Blau im Amt | 20m | ||
| 09:17 | Die Simpsons 29 | 7 – Die Pin Pals | 21m | ||
| 09:38 | Die Simpsons 29 | 8 – Lisa legt los | 20m | ||
| 09:58 | Die Simpsons 29 | 9 – Gone Boy | 21m | ||
| 10:19 | Die Simpsons 29 | 10 – Ha-Ha Land | 20m | ||
| 10:39 | Die Simpsons 29 | 11 – Arche Monty | 21m | ||
| 11:00 | Die Simpsons 29 | 12 – Manacek | 20m | ||
| 11:20 | Die Simpsons 29 | 13 – Doppeltes Einkommen, kinderlos | 21m | ||
| 11:41 | Die Simpsons 29 | 14 – Krusty macht ernst | 20m | ||
| 12:01 | Die Simpsons 29 | 15 – Politisch unkorrekt | 21m | ||
| 12:22 | Die Simpsons 29 | 16 – Der Matratzenkönig | 20m | ||
| 12:42 | Die Simpsons 29 | 17 – Lisa hat den Blues | 21m | ||
| 13:03 | Die Simpsons 29 | 18 – Rezeptfrei | 20m | ||
| 13:23 | Die Simpsons 29 | 19 – Links liegen gelassen | 21m | ||
| 13:44 | Die Simpsons 29 | 20 – Dänisches Krankenlager | 21m | ||
| 14:05 | Die Simpsons 29 | 21 – Der Tod steht ihm gut | 20m | ||
| 14:25 | Die Simpsons 31 | 1 – Der Winter unseres monetarisierten Vergnügens | 21m | ||
| 14:46 | Die Simpsons 31 | 2 – Der Mentor | 21m | ||
| 15:07 | Die Simpsons 31 | 3 – San Castellaneta | 21m | ||
| 15:28 | Die Simpsons 31 | 4 – Episode 666 | 20m | ||
| 15:48 | Die Simpsons 31 | 5 – Gorilla Ahoi! | 21m | ||
| 16:09 | Die Simpsons 31 | 6 – Stammesfehde | 21m | ||
| 16:30 | Die Simpsons 33 | 1 – Millennium-Bug – Das Musical | 21m | ||
| 16:51 | Die Simpsons 33 | 2 – Bart ist im Knast | 21m | ||
| 17:12 | Die Simpsons 33 | 3 – A Nightmare on Elm Tree | 21m | ||
| 17:33 | Die Simpsons 33 | 4 – Moe-Zart | 21m | ||
| 17:54 | Die Simpsons 33 | 5 – Bauchgefühl | 21m | ||
| 18:15 | Die Simpsons 33 | 6 – A Serious Flanders (1) | 21m | ||
| 18:36 | Die Simpsons 33 | 7 – A Serious Flanders (2) | 21m | ||
| 18:57 | Die Simpsons 33 | 8 – Porträt eines jungen Lakaien in Flammen | 21m | ||
| 19:18 | Die Simpsons 33 | 9 – Muttertag | 21m | ||
| 19:39 | Die Simpsons 33 | 10 – Der Pate | 21m | ||
| 20:00 | Die Simpsons 33 | 11 – Football-Mom | 21m | ||
| 20:21 | Die Simpsons 33 | 12 – Survivor | 22m | ||
| 20:43 | Die Simpsons 33 | 13 – Boyz N The Highlands | 22m | ||
| 21:05 | Die Simpsons 33 | 14 – Das Institut | 23m | ||
| 21:28 | Die Simpsons 33 | 15 – Bartman One | 21m | ||
| 21:49 | Die Simpsons 33 | 16 – Ich bin Smartacus! | 22m | ||
| 22:11 | Die Simpsons 33 | 17 – Ausgeblutet | 22m | ||
| 22:33 | Die Simpsons 33 | 18 – Ein kurzer Film über die Liebe | 22m | ||
| 22:55 | Die Simpsons 33 | 19 – Es braut sich was zusammen | 22m | ||
| 23:17 | Die Simpsons 33 | 20 – Marge, das Monster | 21m | ||
| 23:38 | Die Simpsons 33 | 21 – Fleisch ist Mord | 23m |
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_sm2jq5aq/schedule?date=2026-10-16&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_sm2jq5aq/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_sm2jq5aq/history?from=2026-01-28T00:00:00Z&to=2026-01-29T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_sm2jq5aq/schedule?date=2026-10-16&tz=Europe/Moscow"); 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_sm2jq5aq/schedule?date=2026-10-16&tz=Europe/Moscow", { 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_sm2jq5aq/schedule", params={"date": "2026-10-16", "tz": "Europe/Moscow"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_sm2jq5aq/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_rbf40k97", "channel": "ch_sm2jq5aq", "start": "2026-10-15T20:51:00Z", "stop": "2026-10-15T21:12:00Z", "title": "Die Simpsons 27 | 22 – Orange is the New Yellow", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 68, "date": "2026-10-16", "tz": "Europe/Moscow" } }
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 | Wednesday 28 January 2026 | Category |
|---|---|---|
| 19:00 | Family Guy 4, с. 17 – Der Fettwanst-Würger | |
| 19:23 | Family Guy 4, с. 18 – Die Kirche des Fonz | |
| 19:44 | Family Guy 4, с. 19 – Brian singt und swingt | |
| 9 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 154 countries.