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 UTC time, what is on now and next, and the same data in your app with one call.
All times UTC. The same day from the API: GET /v1/channels/ch_ddvypefg/schedule?date=2026-10-13&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:59 | Folge 3 On nowBoris Becker steht auf Sportwagen. In dieser Episode berichtet der Ex-Tennisprofi von seinem ersten Porsche. | 58m | ||
| 00:57 | Folge 5Ein Team aus Toyota Aygos tritt gegen eine Gruppe VW Fox im Autofußball gegeneinander an. | 58m | ||
| 01:55 | Folge 4Im Youngtimer ihrer Wahl brechen die Top Gear-Experten Jeremy, Richard und James nach Frankreich auf. | 59m | ||
| 02:54 | Folge 2Alfa Romeo-Fans Jeremy, Richard und James halten das Zepter der italienischen Traditionsmarke hoch! | 59m | ||
| 03:53 | Folge 2In dieser Folge steigt James May in den neuen 180.000 Euro teuren Ariel Atom. | 6m | ||
| 04:00 | Folge 2In dieser Folge steigt James May in den neuen 180.000 Euro teuren Ariel Atom. | 53m | ||
| 04:53 | Folge 3Jeremy geht mit einem Land Rover Discovery bergsteigen, Richard trifft einen verrückten Schweizer und Joanna Lumley kommt zu Besuch. | 1h 3m |
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_ddvypefg/schedule?date=2026-10-13&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_ddvypefg/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_ddvypefg/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_ddvypefg/schedule?date=2026-10-13&tz=UTC"); 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_ddvypefg/schedule?date=2026-10-13&tz=UTC", { 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_ddvypefg/schedule", params={"date": "2026-10-13", "tz": "UTC"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_ddvypefg/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_mjqqre0d", "channel": "ch_ddvypefg", "start": "2026-10-12T23:59:53Z", "stop": "2026-10-13T00:57:31Z", "title": "Folge 3", "sub_title": null, "description": "Boris Becker steht auf Sportwagen. In dieser Episode berichtet der Ex-Tennisp...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 7, "date": "2026-10-13", "tz": "UTC" } }
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.