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. Search any past day on the Archive plan.
All times UTC. The same day from the API: GET /v1/channels/ch_wbbeqa9q/schedule?date=2026-10-10&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | 80s Movie SoundtracksThe 80s brought us some of the biggest movies ever! Stay tuned for blockbuster hits. | 80s Movie Soundtracks! | 2h | |
| 02:00 | 80s Power AnthemsHuge vocals, Check! Huge guitars, Check! Huge attitude, Check! These are the biggest power anthems of the decade. | 80s Power Anthems! | 1h | |
| 03:00 | Back 2 The 80sIt's time to take you right back to the 80s for a huge mix of rock, pop & cheese. | Back 2 The 80s! | 2h | |
| 05:00 | 80s Mega-StarsThey ruled the charts and graced every magazine cover across the globe! These are the Megastars of the 80s. | 80s Mega-Stars! | 2h | |
| 07:00 | A Groovy Kind Of LoveLarger than life 80s ballads to get you in the mood for love. | A Groovy Kind Of Love! | 2h | |
| 09:00 | The Best 80s HitsSimply the best hits of the 80s are playing right now, so let's rewind to the best decade in music. | The Best 80s Hits! | 2h | |
| 11:00 | 80s Chart RewindThis playlist is packed with all the hits that made the 80s cool. | 80s Chart Rewind! | 2h | |
| 13:00 | Girls Of The 80sStyle, Sass and songs that defined a decade. These are the girls that ruled the 80s. | Girls Of The 80s! | 1h | |
| 14:00 | Supermassive 80s Chart HitsThe biggest hits that will take you right back to the 80s. | Supermassive 80s Chart Hits! | 2h | |
| 16:00 | Voices That Defined The 80sBold voices & timeless hits, these are the unforgettable voices that soundtracked the decade. | Voices That Defined The 80s! | 1h | |
| 17:00 | 80s Flashback House PartyTransport yourself back to the 80s for one supermassive house party. | 80s Flashback House Party! | 2h | |
| 19:00 | The Biggest 80s Songs EverAll time hits that defined the decade! This is your playlist of the biggest sounds from the 80s. | The Biggest 80s Songs Ever! | 2h | |
| 21:00 | Super Freaky 80s FloorfillersIt's time to get your groove on & bust out the moves as we play you the biggest 80s floor fillers. | Super Freaky 80s Floorfillers! | 2h | |
| 23:00 | 80s Pop QueensBig hair, big style and big tunes. Check out the hottest pop queens from the 80s. | 80s Pop Queens! | 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_wbbeqa9q/schedule?date=2026-10-10&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_wbbeqa9q/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_wbbeqa9q/history?from=2026-06-25T00:00:00Z&to=2026-06-26T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_wbbeqa9q/schedule?date=2026-10-10&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_wbbeqa9q/schedule?date=2026-10-10&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_wbbeqa9q/schedule", params={"date": "2026-10-10", "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_wbbeqa9q/schedule?date=2026-10-10, the first programme { "data": [ { "id": "ls_vw4g3s7y", "channel": "ch_wbbeqa9q", "start": "2026-10-10T00:00:01Z", "stop": "2026-10-10T02:00:00Z", "title": "80s Movie Soundtracks", "sub_title": "80s Movie Soundtracks!", "description": "The 80s brought us some of the biggest movies ever! Stay tuned for blockbuste...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 14, "date": "2026-10-10", "tz": "UTC" } }
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 | Thursday 25 June 2026 | Category |
|---|---|---|
| 05:00 | Messin' About On The River | |
| 05:45 | Long Hot Summer | |
| 06:00 | The Heat Is On! Top 30 | |
| 10 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 155 countries.