74.3M 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_6k48vpvj/schedule?date=2026-10-14&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:37 | Alien Files Unsealed: Episode 4Previously sealed documents hint at compelling new theories about extraterrestrials. Could aliens be living among us? And could former US President... | Episode 4 | Series, Paranormal | 54m |
| 00:31 | Alien Files Unsealed: Aliens on the MoonA look at the possibility that life began on Mars and travelled to Earth. Plus, if aliens exist, what plans do they have in store for us? Experts i... | Aliens on the Moon | Series, Paranormal | 53m |
| 01:24 | Alien Files Unsealed: Episode 6Experts open previously off-limits files in a bid to answer some of the most mysterious questions surrounding UFOs and extra-terrestrial life. | Episode 6 | Series, Paranormal | 54m |
| 02:18 | Alien Files Unsealed: Episode 7Experts open previously off-limits files in a bid to answer some of the most mysterious questions surrounding UFOs and extra-terrestrial life. | Episode 7 | Series, Paranormal | 54m |
| 03:12 | Alien Files Unsealed: Episode 8Take a fresh look at some classic alien encounters, UFOs and abductions, and discover several new stories. | Episode 8 | Series, Paranormal | 54m |
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_6k48vpvj/schedule?date=2026-10-14&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_6k48vpvj/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_6k48vpvj/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_6k48vpvj/schedule?date=2026-10-14&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_6k48vpvj/schedule?date=2026-10-14&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_6k48vpvj/schedule", params={"date": "2026-10-14", "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_6k48vpvj/schedule?date=2026-10-14, the first programme { "data": [ { "id": "ls_54pbjxrx", "channel": "ch_6k48vpvj", "start": "2026-10-13T23:37:04Z", "stop": "2026-10-14T00:31:20Z", "title": "Alien Files Unsealed: Episode 4", "sub_title": "Episode 4", "description": "Previously sealed documents hint at compelling new theories about extraterres...", "category": [ "series", "paranormal" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 5, "date": "2026-10-14", "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 150 countries.