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 Europe/Dublin 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 Europe/Dublin. The same day from the API: GET /v1/channels/ch_xknq6v05/schedule?date=2026-10-16&tz=Europe/Dublin
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | UEFA Europa League FootballCoverage of the UEFA Europa League. | League Phase: Benfica v Celtic | Sport, Soccer | 2h |
| 02:00 | UEFA Europa League FootballSelhurst Park hosts a big Europa League night as Crystal Palace take on Lech Poznan. | League Phase: Crystal Palace v Lech Poznan | Sport, Soccer | 2h |
| 04:00 | UEFA Champions League FootballJoin us for live coverage of the UEFA Champions League. 36 of Europe's elite clubs clash in the League Phase, all battling for crucial points towar... | League Phase: Manchester City v Paris Saint-Germain | Sport, Soccer | 2h |
| 06:00 | Scottish Premiership FootballAberdeen and St. Johnstone meet in this William Hill Premiership contest at Pittodrie Stadium. | Aberdeen v St. Johnstone | Sport, Soccer | 2h |
| 08:00 | NHL HockeyCoverage of the NHL season 2026/27. | Calgary Flames at Vegas Golden Knights | Sport, Ice hockey | 2h |
| 10:00 | UEFA Europa League FootballCoverage of the UEFA Europa League. | League Phase: Benfica v Celtic | Sport, Soccer | 2h |
| 12:00 | UEFA Europa League FootballCoverage of the UEFA Europa League. | League Phase: Olympique Lyonnais v Crystal Palace | Sport, Soccer | 2h |
| 14:00 | NHL On The FlyEnjoy all the highlights from the previous evening's NHL action and stay informed with comprehensive post-game analysis, scores, interviews and bre... | Episode 169 | Sport, Ice hockey | 1h |
| 15:00 | Sporting GreatsProminent sports personalities shed light on their careers, along with their best achievements. | Episode 7 | Sport, Biography | 30m |
| 15:30 | Sporting GreatsWatch the very best Sports people look back over their careers. | Episode 8 | Sport, Biography | 30m |
| 16:00 | LaLiga HighlightsLALIGA match highlights. | Racing Santander v Valencia CF | Sport, Soccer | 15m |
| 16:15 | LaLiga ShowA preview show for the upcoming matchday in LALIGA, analysing the form of the teams going into their latest fixtures. | Matchday 9 | Sport, Soccer | 30m |
| 16:45 | European Rugby Champions CupCoverage of the Investec Champions Cup Final as Leinster and Union Bordeaux-Bègles collide at San Mamés Stadium in a winner-takes-all showdown. | Final: Leinster v Union Bordeaux-Bègles | Sport, Rugby union | 2h 15m |
| 19:00 | Live: European Rugby Champions CupCoverage of the Investec Champions Cup. | Gloucester v Union Bordeaux-Bègles | Sport, Rugby union | 3h 30m |
| 22:30 | URC in 60Watch all the highlights of the last round of URC. | Round 3 | Sport, Rugby union | 1h |
| 23:30 | UEFA Champions League MagazineThe latest news and updates from the UEFA Champions League. | Episode 7 | Sport, Soccer | 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_xknq6v05/schedule?date=2026-10-16&tz=Europe/Dublin" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_xknq6v05/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_xknq6v05/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_xknq6v05/schedule?date=2026-10-16&tz=Europe/Dublin"); 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_xknq6v05/schedule?date=2026-10-16&tz=Europe/Dublin", { 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_xknq6v05/schedule", params={"date": "2026-10-16", "tz": "Europe/Dublin"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_xknq6v05/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_wd00r3c8", "channel": "ch_xknq6v05", "start": "2026-10-15T23:00:00Z", "stop": "2026-10-16T01:00:00Z", "title": "UEFA Europa League Football", "sub_title": "League Phase: Benfica v Celtic", "description": "Coverage of the UEFA Europa League.", "category": [ "sport", "soccer" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 16, "date": "2026-10-16", "tz": "Europe/Dublin" } }
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.