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. 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-17&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | 1Xtra's Rave Show with Jeremiah AsiamahJeremiah brings you the hottest new Black dance music. | 1h 30m | ||
| 01:30 | 1Xtra's Rave Show with Jeremiah AsiamahJeremiah brings you the hottest new Black dance music. | 30m | ||
| 02: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 | ||
| 03: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 | ||
| 04:00 | 1Xtra Salutes... Doechii and Friends1Xtra Salutes Doechii ahead of her Glastonbury debut along with musical legends that have taken to the stage before her, including Kendrick Lamar, ... | 1h | ||
| 05:00 | 1Xtra's Throwback PartyKeke brings your throwback hour rave honouring Houston's very own, Solange with a My G celebrating her career in US music. | 1h | ||
| 06:00 | SwarzyWake up with Swarzy for bold energy, fire tunes and one mystery game that always gets messy. Expect bangers, chaos and something you didn't see com... | 3h | ||
| 09:00 | CassKiddCassKidd brings you huge tunes for your Saturday morning. @1Xtra on social. | 3h | ||
| 12:00 | Joelah NobleJoelah's got your Saturday soundtrack sorted with fun, games and big tunes. | 3h | ||
| 15:00 | Manga Saint HilareManga Saint Hilare hypes up your Saturday afternoon. @1Xtra on social. | 3h | ||
| 18:00 | 1Xtra's Pre-Party Show with DJ TargetDJ Target kick-starts the Saturday night party. @1Xtra on social. | 2h | ||
| 20:00 | Radio 1's Rap Show with Kenny AllstarKenny Allstar has your essential guide to rap. | 1h 30m | ||
| 21:30 | Radio 1's Rap MixtapeKenny Allstar goes in the mix with classics, hits and all your rap favourites. | 30m | ||
| 22:00 | 1Xtra's R&B Show with ChuckieChuckie has your weekly fix of R&B. @1Xtra on social. | 1h 30m | ||
| 23:30 | 1Xtra's R&B Slow Jamz Mix with ChuckieChuckie mixes up R&B slow jams. | 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-17&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-17&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-17&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-17", "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-17, the first programme { "data": [ { "id": "ls_3yrgkhwy", "channel": "ch_0awytaan", "start": "2026-10-17T00:00:00Z", "stop": "2026-10-17T01:30:00Z", "title": "1Xtra's Rave Show with Jeremiah Asiamah", "sub_title": null, "description": "Jeremiah brings you the hottest new Black dance music.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 15, "date": "2026-10-17", "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.