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 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_0awytaan/schedule?date=2026-10-19&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Sir Spyro100% grime shellers, while N3 and friends pass through the show dropping some live bars, and that classic Sounds of the Verse from Keedz. @1Xtra on... | 2h | ||
| 02:00 | 1Xtra Salutes... So Solid Crew1Xtra Salutes So Solid Crew! Featuring an hour of their greatest tunes and chats. | 1h | ||
| 03:00 | 1Xtra's R&B Slow Jamz Mix with ChuckieChuckie mixes classic R&B from Jodeci, Brandy, Jagged Edge, Missy Elliott and more. | 30m | ||
| 03:30 | 1Xtra's Throwback ThursdayThrow it back with the ultimate mix of old skool bangers - packed with unforgettable classics, iconic hooks and feel-good nostalgia. | 1h | ||
| 04:30 | 1Xtra's Throwback PartyKeke brings your throwback hour rave honouring Southampton's very own, Craig David, with a My G celebrating his career in UK music. | 1h 2m | ||
| 05:32 | 1Xtra PlaylistsThe sound of 1Xtra, uninterrupted... | 28m | ||
| 06:00 | 1Xtra Breakfast with Nadia JaeWake up with Nadia for the perfect mix of music, gossip and giggles! @1Xtra on social. | 3h | ||
| 09:00 | DJ Day DayIt's just a new week, new day! DJ Day Day soundtracks your midmorning and tests your music knowledge. @1Xtra on social. | 2h 45m | ||
| 11:45 | Newsbeat @ 12:45The latest news from around the UK and around the world. | 15m | ||
| 12:00 | Sian AndersonBuckle up, Sian is putting you to the test in Backseat Driver! | 3h | ||
| 15:00 | Remi BurgzRemi injects the best music, laughs and energy into your afternoon. @1Xtra on social. | 1h 45m | ||
| 16:45 | Newsbeat @ 17:45The latest news from around the UK and around the world. | 15m | ||
| 17:00 | Remi BurgzIt's Monday so you know what that means - Pitch Perfect! Get your requests in! @1Xtra on social. | 1h | ||
| 18:00 | DJ TargetTarget has 1Xtra's ultimate guide to new music. @1Xtra on social. | 2h | ||
| 20:00 | Snoochie ShyLate night music and mayhem with Snoochie. @1Xtra on social. | 2h | ||
| 22:00 | 1Xtra's AfroSounds Show with DJ EduThe hottest sounds out of Africa - Afrobeats from all corners of the motherland. @1Xtra on social. | 1h 30m | ||
| 23:30 | 1Xtra's AfroSounds Show with DJ Edu - The AfroSounds MixDJ Edu mixes up Afrobeats. @1Xtra on social. | 30m |
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_0awytaan/schedule?date=2026-10-19&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_0awytaan/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_0awytaan/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_0awytaan/schedule?date=2026-10-19&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_0awytaan/schedule?date=2026-10-19&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_0awytaan/schedule", params={"date": "2026-10-19", "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_0awytaan/schedule?date=2026-10-19, the first programme { "data": [ { "id": "ls_s2zc9v9s", "channel": "ch_0awytaan", "start": "2026-10-19T00:00:00Z", "stop": "2026-10-19T02:00:00Z", "title": "Sir Spyro", "sub_title": null, "description": "100% grime shellers, while N3 and friends pass through the show dropping some...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 17, "date": "2026-10-19", "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 150 countries.