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/Amsterdam 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/Amsterdam. The same day from the API: GET /v1/channels/ch_jxkhej29/schedule?date=2026-10-13&tz=Europe/Amsterdam
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Non Stop Top 40-hits On nowHits, tips en classics die je door de nachtelijke uren helpen. | Muziek | 4h | |
| 04:00 | Non Stop Top 40-hitsHits, tips en classics die je door de nachtelijke uren helpen. | Muziek | 2h | |
| 06:00 | Goedemorgen Top 40Wat is er lekkerder dan opstaan met je dagelijkse portie hits? Het beste van gisteren en vandaag bij jouw ontbijt of om de dag lekker mee op te sta... | Muziek | 4h | |
| 10:00 | Het beste uit 60 Jaar Top 40Sinds 1965 staan de grootste hits in de Enige Echte, de Nederlandse Top 40. Je ziet de grootste hits uit de geschiedenis en natuurlijk ontbreken oo... | Muziek | 2h | |
| 12:00 | Top 40 bij de lunchJe middag begint met smakelijke hits van gisteren, vandaag en een beetje van morgen. | Muziek | 2h | |
| 14:00 | Greatest Top 40-hitsDe Top 40. Niet alleen een lijst maar ook een begrip voor de beste muziek. En die zie je in Greatest Top 40 hits. | Muziek | 3h | |
| 17:00 | Top 40 rond etenstijdJe kunt het proberen met je bord op schoot. Maar het zou kunnen dat je benen niet stil blijven bij de portie hits die we je serveren. | Muziek | 3h | |
| 20:00 | De avond door met de Top 40Met de beste hits van gisteren, vandaag en morgen helpen we je door het staartje van de dag heen. | Muziek | 4h |
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_jxkhej29/schedule?date=2026-10-13&tz=Europe/Amsterdam" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_jxkhej29/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_jxkhej29/history?from=2026-06-30T00:00:00Z&to=2026-07-01T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_jxkhej29/schedule?date=2026-10-13&tz=Europe/Amsterdam"); 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_jxkhej29/schedule?date=2026-10-13&tz=Europe/Amsterdam", { 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_jxkhej29/schedule", params={"date": "2026-10-13", "tz": "Europe/Amsterdam"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_jxkhej29/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_54ed90zn", "channel": "ch_jxkhej29", "start": "2026-10-12T22:00:00Z", "stop": "2026-10-13T02:00:00Z", "title": "Non Stop Top 40-hits", "sub_title": null, "description": "Hits, tips en classics die je door de nachtelijke uren helpen.", "category": [ "muziek" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 8, "date": "2026-10-13", "tz": "Europe/Amsterdam" } }
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 | Tuesday 30 June 2026 | Category |
|---|---|---|
| 04:00 | Non Stop Top 40-hits | Muziek |
| 06:00 | Goedemorgen Top 40 | Muziek |
| 10:00 | Het beste uit 60 Jaar Top 40 | Muziek |
| 4 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 155 countries.