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/Tallinn 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/Tallinn. The same day from the API: GET /v1/channels/ch_z0v0gw3r/schedule?date=2026-10-13&tz=Europe/Tallinn
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | The 90'sBritpop, Jamming basslines, Catchy pop, forgotten boy bands with a bit of hip hop. It's the 90's baby. | 1h | ||
| 01:00 | The 00's On nowA mix of the hits of 2000's along with some more lesser known artists. | 1h | ||
| 02:00 | Vantage YearbookSee the the most common faces in music from a specific year with some lesser known classics you might have forgotten. | 1h | ||
| 03:00 | Retro MixA mix of 70's, 80's & 90's hits featuring the classics you remember and then some. | 3h | ||
| 06:00 | Retro MixA mix of 70's, 80's & 90's hits featuring the classics you remember and then some. | 2h | ||
| 08:00 | Wake Up To The 80sGet ready for your day with some 80's classics. | 1h | ||
| 09:00 | Wake Up To The 90sGet ready for your day with some 90's classics. | 1h | ||
| 10:00 | Wake Up To The 00sGet ready for your day with some 00's classics. | 1h | ||
| 11:00 | Vantage YearbookSee the the most common faces in music from a specific year with some lesser known classics you might have forgotten. | 1h | ||
| 12:00 | The 80'sThe start of the music video era, with 80's classics not to be forgotten as well as some you probably have forgotten (for good reason!). | 2h | ||
| 14:00 | The 90'sBritpop, Jamming basslines, Catchy pop, forgotten boy bands with a bit of hip hop. It's the 90's baby. | 2h | ||
| 16:00 | The 00'sA mix of the hits of 2000's along with some more lesser known artists. | 2h | ||
| 18:00 | Retro MixA mix of 70's, 80's & 90's hits featuring the classics you remember and then some. | 2h | ||
| 20:00 | Vantage YearbookSee the the most common faces in music from a specific year with some lesser known classics you might have forgotten. | 1h | ||
| 21:00 | Alternative ClassicsA collection of iconic alternative, indie, and grunge music videos. | 1h | ||
| 22:00 | Alternative ClassicsA collection of iconic alternative, indie, and grunge music videos. | 1h | ||
| 23:00 | The 80'sThe start of the music video era, with 80's classics not to be forgotten as well as some you probably have forgotten (for good reason!). | 1h |
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_z0v0gw3r/schedule?date=2026-10-13&tz=Europe/Tallinn" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_z0v0gw3r/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_z0v0gw3r/history?from=2026-07-01T00:00:00Z&to=2026-07-02T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_z0v0gw3r/schedule?date=2026-10-13&tz=Europe/Tallinn"); 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_z0v0gw3r/schedule?date=2026-10-13&tz=Europe/Tallinn", { 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_z0v0gw3r/schedule", params={"date": "2026-10-13", "tz": "Europe/Tallinn"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_z0v0gw3r/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_fs5s2ce6", "channel": "ch_z0v0gw3r", "start": "2026-10-12T21:00:00Z", "stop": "2026-10-12T22:00:00Z", "title": "The 90's", "sub_title": null, "description": "Britpop, Jamming basslines, Catchy pop, forgotten boy bands with a bit of hip...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 17, "date": "2026-10-13", "tz": "Europe/Tallinn" } }
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 | Wednesday 1 July 2026 | Category |
|---|---|---|
| 21:00 | The 80's | |
| 23:00 | The 90's |
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 155 countries.