73.8M 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_15t81xge/schedule?date=2026-10-16&tz=Europe/Berlin
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:42 | Farscape - Verschollen im AllDie Moya-Crew stößt auf einen rätselhaften Nebel. Aeryn erklärt sich bereit, das Phänomen zu erforschen. Sie verschwindet durch eine Öffnung im Neb... | 52m | ||
| 00:34 | Farscape - Verschollen im AllDie Moya-Crew soll Crais dabei helfen, Talyn abzurüsten und die tödlichen Waffen zu entfernen. Als sich das Handelsschiff nähert, von dem Crais die... | 52m | ||
| 01:26 | Farscape - Verschollen im AllZwei Nebari kommen an Bord der Moya und führen bei der Crew eine mentale Säuberung durch, um sie zu willigen Sklaven zu machen. Doch bei Crichton u... | 52m | ||
| 02:18 | Farscape - Verschollen im AllStark ist mit dem Leben davongekommen. Er weiß, wo sich D'Argos Sohn aufhält. Um ihn zu befreien, braucht die Moya-Crew aber erst das nötige Geld. ... | 52m | ||
| 03:10 | Der Killer an meiner SeiteDie Töchter des Auftragskillers Richard Kuklinski durchleben eine Kindheit voller Terror. | 49m | ||
| 03:59 | Der Killer an meiner SeiteAls Schützling des Gangsters Greg Scarpa fällt es Larry Mazza schwer, sich von der Mafia zu lösen. | 48m | ||
| 04:47 | Der Killer an meiner SeiteJohn Smiths dritte Frau, Diane, will nicht glauben, dass ihr Mann seine ersten beiden Ehepartner ermordet hat. Das FBI muss versuchen, sie so schne... | 49m | ||
| 05:36 | Sonic XDr. Robotnik verfolgt seinen rachsüchtigen Plan, die ARK auf die Erde stürzen zu lassen. Dementsprechend müssen alle an Bord der ARK an einem Stran... | 24m | ||
| 06:00 | Sonic X"Project Shadow" ist ein von Eggmans Opa geleitetes und streng geheimer Plan, um die ultimative Lebensform zu schaffen. Diese entdeckt Dr. Eggman n... | 26m | ||
| 06:26 | Sonic XWeil Sonic wegen eines Raubüberfalls gesucht wird, versucht er, den GUN-Männern zu entkommen. Einige Tage später stellt sich jedoch heraus, dass ei... | 26m | ||
| 06:52 | Sonic XSonic wird auf der Gefängnisinsel festgehalten. Chris, Amy und Tails wollen ihn befreien. | 11h 8m |
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_15t81xge/schedule?date=2026-10-16&tz=Europe/Berlin" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_15t81xge/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_15t81xge/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_15t81xge/schedule?date=2026-10-16&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_15t81xge/schedule?date=2026-10-16&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_15t81xge/schedule", params={"date": "2026-10-16", "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_15t81xge/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_ghnrfwcv", "channel": "ch_15t81xge", "start": "2026-10-15T21:42:00Z", "stop": "2026-10-15T22:34:00Z", "title": "Farscape - Verschollen im All", "sub_title": null, "description": "Die Moya-Crew stößt auf einen rätselhaften Nebel. Aeryn erklärt sich bereit, ...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 11, "date": "2026-10-16", "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 | Monday 13 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 150 countries.