72.1M 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/Brussels 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/Brussels. The same day from the API: GET /v1/channels/ch_7y0e1n3z/schedule?date=2026-10-16&tz=Europe/Brussels
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | BullseyeContestants compete against each other in a fun-filled competition that tests their dart skills and their general knowledge in a bid to win the val... | Series, Game show | 30m | |
| 00:30 | BullseyeThe dartboard quiz game that tests contestants darts skills as well as their general knowledge. Three pairs of contestants, consisting of an amateu... | Bullseye 10 | Series, Game show | 30m |
| 01:00 | Bridge of LiesRoss Kemp presents as a team of four family members, Netti, Lee, Abigail and Star, take on the Bridge of Lies. | Series, Game show | 1h | |
| 02:00 | The ChaseFour strangers work as a team to answer general knowledge questions. They must defeat the Chaser, a ruthless quiz genius, in order to win money. | S9 E142, Episode 142 | Series, Game show | 1h |
| 03:00 | The Chase: Celebrity SpecialOne Chaser is all that stands between sports broadcaster Jacqui Oatley, radio DJ Dev Griffin, darts player Fallon Sherrock and comedian Johnny Vega... | S11 E2, Jacqui Oatley, Dev Griffin, Fallon Sherrock, Johnny Vegas | Series, Game show | 1h |
| 04:00 | The ChaseAll that stands between Simon, Angela, Karen and Ben is the small matter of one of the country's finest quiz brains. | Series, Game show | 1h | |
| 05:00 | BullseyeJim Bowen hosts as three pairs test their darts and trivia skills for prizes. Pro Alan Glazier throws for charity before the winners face the ultim... | Bullseye 16 | Series, Family | 30m |
| 05:30 | BullseyeThe dartboard quiz game that tests contestants darts skills as well as their general knowledge. Three pairs of contestants, consisting of an amateu... | Series, Game show | 30m | |
| 06:00 | BullseyeThe dartboard quiz game that tests contestants darts skills as well as their general knowledge. Three pairs of contestants, consisting of an amateu... | Bullseye 18 | Series, Game show | 30m |
| 06:30 | BullseyeThe dartboard quiz game that tests contestants darts skills as well as their general knowledge. Three pairs of contestants, consisting of an amateu... | Series, Game show | 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_7y0e1n3z/schedule?date=2026-10-16&tz=Europe/Brussels" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_7y0e1n3z/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_7y0e1n3z/history?from=2026-08-08T00:00:00Z&to=2026-08-09T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_7y0e1n3z/schedule?date=2026-10-16&tz=Europe/Brussels"); 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_7y0e1n3z/schedule?date=2026-10-16&tz=Europe/Brussels", { 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_7y0e1n3z/schedule", params={"date": "2026-10-16", "tz": "Europe/Brussels"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_7y0e1n3z/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_rv1za97c", "channel": "ch_7y0e1n3z", "start": "2026-10-15T22:00:00Z", "stop": "2026-10-15T22:30:00Z", "title": "Bullseye", "sub_title": null, "description": "Contestants compete against each other in a fun-filled competition that tests...", "category": [ "series", "game show", "darts" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 10, "date": "2026-10-16", "tz": "Europe/Brussels" } }
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 | Saturday 8 August 2026 | Category |
|---|---|---|
| 07:00 | Teleshopping | Shopping, Consumer |
| 07:30 | Teleshopping | Shopping, Consumer |
| 08:00 | The Chase | Series, Game show |
| 16 more programmes that day, on Archive | ||
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.