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 Europe/Moscow 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/Moscow. The same day from the API: GET /v1/channels/ch_p23mbhxj/schedule?date=2026-10-16&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 21:30 | ⋗ EFL League One. Mansfield Town v Oxford United | 3h | ||
| 00:30 | EFL Championship. Wolverhampton Wanderers v Bolton Wanderers | 15m | ||
| 00:45 | EFL Championship. Wrexham v West Bromwich Albion | 15m | ||
| 01:00 | EFL Championship. Lincoln City v West Ham United | 15m | ||
| 01:15 | EFL Championship. Norwich City v Southampton | 15m | ||
| 01:30 | EFL Play-Off Classics. 2010: Cardiff v Leicester | 15m | ||
| 01:45 | EFL Play-Off Classics. 2010: Blackpool v Cardiff | 15m | ||
| 02:00 | EFL Cup Football. Final 2008: Chelsea v Tottenham Hotspur | 2h 45m | ||
| 04:45 | EFL Play-Off Classics. 1998: Charlton v Sunderland | 15m | ||
| 05:00 | SPFL Greatest. 1999: Rangers v Celtic | 15m | ||
| 05:15 | SPFL Greatest. 1999: Celtic v Rangers | 15m | ||
| 05:30 | EFL Greatest. 2001: Bolton Wanderers v Preston North End | 15m | ||
| 05:45 | EFL Greatest. 2003: Sheffield United v Wolverhampton Wanderers | 15m | ||
| 06:00 | EFL Football. 2013/14 Championship Season Review | 1h | ||
| 07:00 | SPFL Greatest. 2017: Heart of Midlothian v Rangers | 15m | ||
| 07:15 | SPFL Greatest. 2017: Rangers v Aberdeen | 15m | ||
| 07:30 | EFL Greatest. 2007: Nottingham Forest v Yeovil Town | 15m | ||
| 07:45 | EFL Greatest. 2009: Cardiff City v Swansea City | 15m | ||
| 08:00 | Championship Retro. 2019 Play-Off Final: Aston Villa v Derby County | 2h | ||
| 10:00 | EFL Play-Off Classics. 2014: Derby v QPR | 15m | ||
| 10:15 | EFL Play-Off Classics. 2015: Preston v Chesterfield | 15m | ||
| 10:30 | EFL Play-Off Classics. 2015: Swindon v Sheffield United | 15m | ||
| 10:45 | EFL Play-Off Classics. 2017: Bradford v Millwall | 15m | ||
| 11:00 | Scottish Premiership Football. Celtic v Rangers | 30m | ||
| 11:30 | EFL Greatest. 2016: Aston Villa v Nottingham Forest | 15m | ||
| 11:45 | EFL Greatest. 2016: Cardiff City v Bristol City | 15m | ||
| 12:00 | EFL Cup Football. Final: Aston Villa v Manchester City | 1h | ||
| 13:00 | Best Goals of the Carabao Cup. 2019/20 | 30m | ||
| 13:30 | EFL Trophy Football. Final: Portsmouth v Salford City | 30m | ||
| 14:00 | EFL Championship. Portsmouth v Sheffield United | 15m | ||
| 14:15 | EFL Championship. Queens Park Rangers v Derby County | 15m | ||
| 14:30 | Bundesliga Weekly | 30m | ||
| 15:00 | EFL League One. Goals | 30m | ||
| 15:30 | EFL League Two. Goals | 30m | ||
| 16:00 | SPFL Round-Up. Series 2026 Episode 9 | 15m | ||
| 16:15 | Scottish Premiership Football. Motherwell v Celtic | 15m | ||
| 16:30 | EFL Championship. Stoke City v Middlesbrough | 15m | ||
| 16:45 | EFL Championship. Birmingham City v Preston North End | 15m | ||
| 17:00 | EFL Championship. Bristol City v Blackburn Rovers | 15m | ||
| 17:15 | EFL Championship. Burnley v Charlton Athletic | 15m | ||
| 17:30 | EFL Championship. Cardiff City v Watford | 15m | ||
| 17:45 | EFL Championship. Millwall v Swansea City | 15m | ||
| 18:00 | Bundesliga Weekly | 30m | ||
| 18:30 | EFL Championship. Wolverhampton Wanderers v Bolton Wanderers | 15m | ||
| 18:45 | EFL Championship. Wrexham v West Bromwich Albion | 15m | ||
| 19:00 | SPFL Round-Up. Series 2026 Episode 9 | 15m | ||
| 19:15 | Scottish Premiership Football. Motherwell v Celtic | 15m | ||
| 19:30 | EFL Championship. Lincoln City v West Ham United | 15m | ||
| 19:45 | EFL Championship. Norwich City v Southampton | 15m | ||
| 20:00 | EFL Championship. Portsmouth v Sheffield United | 15m | ||
| 20:15 | EFL League One. Mansfield Town v Oxford United | 15m | ||
| 20:30 | EFL Championship. Burnley v Charlton Athletic | 15m | ||
| 20:45 | EFL Championship. Wolverhampton Wanderers v Bolton Wanderers | 15m | ||
| 21:00 | ⋗ EFL Championship. Burnley v Wolverhampton Wanderers | 3h 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_p23mbhxj/schedule?date=2026-10-16&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_p23mbhxj/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_p23mbhxj/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_p23mbhxj/schedule?date=2026-10-16&tz=Europe/Moscow"); 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_p23mbhxj/schedule?date=2026-10-16&tz=Europe/Moscow", { 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_p23mbhxj/schedule", params={"date": "2026-10-16", "tz": "Europe/Moscow"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_p23mbhxj/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_bs08qbpj", "channel": "ch_p23mbhxj", "start": "2026-10-15T18:30:00Z", "stop": "2026-10-15T21:30:00Z", "title": "⋗ EFL League One. Mansfield Town v Oxford United", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 54, "date": "2026-10-16", "tz": "Europe/Moscow" } }
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.