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 America/Toronto time, what is on now and next, and the same data in your app with one call.
All times America/Toronto. The same day from the API: GET /v1/channels/ch_hvvcnak5/schedule?date=2026-10-12&tz=America/Toronto
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Golden SlumbersLet it be the soundtrack to the small hours, with a late-night line-up of music videos from across the band's catalogue to see you through until th... | 2h | ||
| 02:00 | Beatles ForeverThe long and winding story of the biggest band in the world, told through a collection of their music videos. The legend lives on. | 2h | ||
| 04:00 | Here Comes the SunGood day, sunshine. Greet the dawn with a selection of classic music videos, featuring the songs that defined a decade. | 2h | ||
| 06:00 | Early BirdGet back to your favorites and start the day on the right note with a mix of music videos from the Fab Four. Good morning, good morning. | 2h | ||
| 08:00 | Sgt. Pepper's Breakfast ClubPull up a chair and join the club. With a little help from our friends, we're serving up colourful classics with your morning coffee. | 2h | ||
| 10:00 | Morning Mystery TourAll aboard: music videos from every stage of the band's career, taking you here, there and everywhere until midday. | 2h | ||
| 12:00 | Day TripperPack your bags for an afternoon down Penny Lane, with music videos to take you from lunchtime into the second half of the day. | 2h | ||
| 14:00 | Then and NowYesterday meets today, with music videos from the 1960s through to the band's final release, showing how their music has carried across generations. | 2h | ||
| 16:00 | Across the BeatleverseTune in to the Beatleverse for an afternoon of music videos from one of the most influential bands in history, with songs that reach every corner o... | 2h | ||
| 18:00 | Twist and ShoutTurn it up, get back on your feet and kick off the evening with a run of music videos made for singing along. All together now! | 2h | ||
| 20:00 | BeatlemaniaFrom Shea Stadium to your living room. The band that changed everything, seen through the music videos that defined a phenomenon. | 2h | ||
| 22:00 | Ticket to NightLeave a hard day's night behind with an evening of music videos from the band that shaped a generation, as the day draws to a close. | 2h |
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_hvvcnak5/schedule?date=2026-10-12&tz=America/Toronto" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_hvvcnak5/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_hvvcnak5/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_hvvcnak5/schedule?date=2026-10-12&tz=America/Toronto"); 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_hvvcnak5/schedule?date=2026-10-12&tz=America/Toronto", { 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_hvvcnak5/schedule", params={"date": "2026-10-12", "tz": "America/Toronto"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_hvvcnak5/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_yjh2g7m8", "channel": "ch_hvvcnak5", "start": "2026-10-12T04:00:00Z", "stop": "2026-10-12T06:00:00Z", "title": "Golden Slumbers", "sub_title": null, "description": "Let it be the soundtrack to the small hours, with a late-night line-up of mus...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 12, "date": "2026-10-12", "tz": "America/Toronto" } }
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.