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.
All times UTC. The same day from the API: GET /v1/channels/ch_189ggp8h/schedule?date=2026-10-14&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:25 | Mar Radio AlbaTha BBC Radio nan Gaidheal mar BBC Radio Alba. BBC Radio nan Gaidheal joins BBC Radio Scotland. | 7h 5m | ||
| 06:30 | Aithris na MaidneNaidheachdan ionadail, nàiseanta is eadar-nàiseanta gach madainn. Local, national and international news each morning. | 1h 30m | ||
| 08:00 | Mòd 2026 - Ro-fharpais a' Bhuinn ÒirTha na guthan aca air ghleus agus iad ag iarraidh àite sna cuairtean deireannach. The singers are ready, but will they make it through to the finals? | 4h | ||
| 12:00 | Feasgar an-diughTha Emma a' bruidhinn ri daoine a tha a' frithealadh a' Mhòid Nàiseanta Rìoghail ann an Glaschu. Emma chats to various people who are in Glasgow at... | 1h 30m | ||
| 13:30 | Caithream CiùilCeòl Ceilteach agus fiosrachadh air na tha dol agaibhse. Gaelic and Celtic music and a round-up of what's on. Post-d - [email protected]. | 1h | ||
| 14:30 | CrùnluathMìcheal Steele le taghadh de cheòl na pìoba. Mìcheal Steele presents a selection of pipe music. | 1h 30m | ||
| 16:00 | Aithris an FheasgairNaidheachdan nàiseanta is ionadail. Local, national and international news. | 30m | ||
| 16:30 | Siubhal gu Seachd le PlutoCeòl, fealla-dhà agus sùil air spòrs ionadail, nàiseanta agus eadar-nàiseanta. Music and entertainment with Derek Pluto Murray along with his Music... | 1h 30m | ||
| 18:00 | Guthan Binn nam BonnNa guthan seinn a choisinn buinn òir aig Mòdan ann an Glaschu agus an sgìre timcheall. Gold medallists reminisce on their success at National Mods ... | 30m | ||
| 18:30 | Mòd 2026 - Cuairt Dheireannach a' Bhuinn ÒirCathy NicDhòmhnaill le Farpais Crìochnachaidh Bhuinn Òir a' Chomuinn Ghàidhealaich. Cathy MacDonald presents live coverage of the An Comunn Gàidhea... | 2h 30m | ||
| 21:00 | Feasgar an-diughTha Emma a' bruidhinn ri daoine a tha a' frithealadh a' Mhòid Nàiseanta Rìoghail ann an Glaschu. Emma chats to various people who are in Glasgow at... | 1h 25m | ||
| 22:25 | Mar Radio AlbaTha BBC Radio nan Gaidheal mar BBC Radio Alba. BBC Radio nan Gaidheal joins BBC Radio Scotland. | 8h 5m |
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_189ggp8h/schedule?date=2026-10-14&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_189ggp8h/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_189ggp8h/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_189ggp8h/schedule?date=2026-10-14&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_189ggp8h/schedule?date=2026-10-14&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_189ggp8h/schedule", params={"date": "2026-10-14", "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_189ggp8h/schedule?date=2026-10-14, the first programme { "data": [ { "id": "ls_10bj78k0", "channel": "ch_189ggp8h", "start": "2026-10-13T23:25:00Z", "stop": "2026-10-14T06:30:00Z", "title": "Mar Radio Alba", "sub_title": null, "description": "Tha BBC Radio nan Gaidheal mar BBC Radio Alba. BBC Radio nan Gaidheal joins B...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 12, "date": "2026-10-14", "tz": "UTC" } }
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.