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_3pwr48h2/schedule?date=2026-10-12&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | 1Xtra's R&B Show with ChuckieChuckie goes through the archive and picks his favourite R&B Live Lounges across the years. From WSTRN to Angel & Cleo Sol and Soul II Soul. Plus C... | 1h 30m | ||
| 01:30 | 1Xtra's R&B Slow Jamz Mix with ChuckieChuckie plays UK Slow Jamz hits from Craig David, Marsha Ambrosius, Shae Universe and more. | 30m | ||
| 02:00 | Radio 1's Chill MixPlanet Earth's most soothing musical vibes; chosen by Lizzy McAlpine. With tracks from Djo and Daniel Caesar. | 30m | ||
| 02:30 | Radio 1's Chill MixPlanet Earth's most soothing musical vibes. chosen by Matilda Mann. With tracks from Mac DeMarco and Phoebe Bridgers. | 30m | ||
| 03:00 | Radio 1 Early Breakfast with Mylo and RosieMylo and Rosie are here and The Swap Exchange is officially open for another week. | 2h 58m | ||
| 05:58 | Radio 1 NewsThe latest news from around the UK and around the world. | 2m | ||
| 06:00 | Radio 1 Breakfast with Greg JamesListener Amy wants to know if she's the only person putting her fist in her mug of tea. | 3h 30m | ||
| 09:30 | Radio 1 NewsThe latest news from around the UK and around the world. | 3m | ||
| 09:33 | Charlie and JerryWe pick the theme, you pick the song. Who will prevail in Winner Stays On? | 1h 27m | ||
| 11:00 | Radio 1 Live Lounge: Stella LeftyAmazing performances from Radio 1's Live Lounge. | 45m | ||
| 11:45 | Newsbeat @ 12:45We look at where the club goes from here after Man City was booed at Anfield, their first Premier league match since being found guilty of breaking... | 15m | ||
| 12:00 | Matt and MollieCan you go five rounds of a quiz and not think of the same answer as Matt? | 2h 30m | ||
| 14:30 | Radio 1 NewsThe latest news from around the UK and around the world. | 3m | ||
| 14:33 | Going Home with Vick, Katie and JamieVick, Katie and Jamie are here to keep you laughing on your way home. | 2h 12m | ||
| 16:45 | Newsbeat @ 17:45We're catching up with fans of Naruto at a comic book shop after a new manga and anime series was announced almost a decade since the last one. | 15m | ||
| 17:00 | Radio 1's New Music Show with Jack SaundersFontaines DC team up with RosalĂa for a huge Hottest Record. | 2h | ||
| 19:00 | Radio 1's Future Artists with Sian EleriPocket delivers a Future Flex Mini Mix and Sian catches up with Dermot Henry in Next Wave. | 2h | ||
| 21:00 | Radio 1's Power Down Playlist with Sian EleriLaidback positivity for a calmer state of mind, with tunes from Jungle, ANOTR, Remi Wolf and more... | 1h | ||
| 22:00 | Radio 1's Rock Show with Daniel P CarterDan has a world exclusive from Cleopatrick and a Tune Of The Week from A Perfect Circle. | 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_3pwr48h2/schedule?date=2026-10-12&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_3pwr48h2/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_3pwr48h2/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_3pwr48h2/schedule?date=2026-10-12&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_3pwr48h2/schedule?date=2026-10-12&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_3pwr48h2/schedule", params={"date": "2026-10-12", "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_3pwr48h2/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_8j92kx4f", "channel": "ch_3pwr48h2", "start": "2026-10-12T00:00:00Z", "stop": "2026-10-12T01:30:00Z", "title": "1Xtra's R&B Show with Chuckie", "sub_title": null, "description": "Chuckie goes through the archive and picks his favourite R&B Live Lounges acr...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 19, "date": "2026-10-12", "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 | 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 155 countries.