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/Belgrade 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/Belgrade. The same day from the API: GET /v1/channels/ch_zjtg7wnf/schedule?date=2026-10-16&tz=Europe/Belgrade
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:58 | Dragan Veselinovic | 4m | ||
| 00:02 | pink music dzingl - pink music dzingl 2016 | 1m | ||
| 00:03 | Toše Proeski - Jos uvek sanjam da smo zajedno | 6m | ||
| 00:09 | Lexington - Ne postoji razlogLexington - Ne postoji razlog. | 4m | ||
| 00:13 | Aca Lukas | 4m | ||
| 00:17 | Hari Mata Hari - Da ti ko covek oprostim | 4m | ||
| 00:21 | Zeljko Samardzic - Kojim dobrom mila moja | 4m | ||
| 00:25 | Sergej Cetkovic - Istine i lazi | 3m | ||
| 00:28 | Marko Stolić - Zaboravljam | 4m | ||
| 00:32 | Tropico - Ni mrtav ni ziv | 3m | ||
| 00:35 | Dragan Veselinovic | 4m | ||
| 00:39 | Goca Trzan - Gluve usne | 4m | ||
| 00:43 | Jelena Tomasevic - Zivot u koferima | 4m | ||
| 00:47 | Miligram - Beograd nocu | 4m | ||
| 00:51 | Natasa Bekvalac - Ludilo | 3m | ||
| 00:54 | JALA BRAT - Mlada i luda | 4m | ||
| 00:58 | Marina Visković - Slomi casu | 3m | ||
| 01:01 | KIKI LESANDRIC I PILOTI - Negde Duboko Tu | 4m | ||
| 01:05 | The Monx - Gubi seAktuelna domaća muzika. | 3m | ||
| 01:08 | The Monx | 3m | ||
| 01:11 | The Monx ft. Wikluh Sky - Daj mi funk | 4m | ||
| 01:15 | The Monx | 3m | ||
| 01:18 | The Monx | 4m | ||
| 01:22 | The Monx | 3m | ||
| 01:25 | The Monx | 3m | ||
| 01:28 | The Monx | 4m | ||
| 01:32 | The Monx | 4m | ||
| 01:36 | The Monx | 3m | ||
| 01:39 | The Monx | 3m | ||
| 01:42 | The Monx | 3m | ||
| 01:45 | The Monx | 3m | ||
| 01:48 | The Monx | 4m | ||
| 01:52 | The Monx | 3m | ||
| 01:55 | The Monx | 3m | ||
| 01:58 | The Monx | 5m | ||
| 02:03 | The Monx | 4m | ||
| 02:07 | The Monx | 4m | ||
| 02:11 | The Monx | 2m | ||
| 02:13 | The Monx - Zaboravi na vreme | 5m | ||
| 02:18 | The Monx | 3m | ||
| 02:21 | The Monx | 3m | ||
| 02:24 | The Monx | 3m | ||
| 02:27 | The Monx | 2m | ||
| 02:29 | The Monx | 4m | ||
| 02:33 | The Monx | 4m | ||
| 02:37 | The Monx | 2m | ||
| 02:39 | The Monx | 4m | ||
| 02:43 | The Monx | 3m | ||
| 02:46 | pink music dzingl - pink music dzingl 2016 | 1m | ||
| 02:47 | Milan Stankovic - Nisi mu ti zena | 3m | ||
| 02:50 | Ana Nikolic - Voli me,voli me | 4m | ||
| 02:54 | Sasa Kovacevic - Kazes ne | 4m | ||
| 02:58 | pink music dzingl - pink music dzingl 2016 | 1m | ||
| 02:59 | Sergej Cetkovic - Korov | 4m | ||
| 03:03 | Goca Trzan - Zena za jednu noc | 3m | ||
| 03:06 | Lexington - Bosanka | 4m | ||
| 03:10 | Željko Samardžić - Zivi bili | 4m | ||
| 03:14 | Jelena Tomasević - Dobro jutro ljubavi | 4m | ||
| 03:18 | Hari Mata Hari - Cilim | 4m | ||
| 03:22 | Tropico - U srcu mom | 3m | ||
| 03:25 | Dženan Lončarević - Nije dovoljno samo jedno da | 5m | ||
| 03:30 | Dara Bubamara - Extravagantno | 3m | ||
| 03:33 | Sandra Capric - Zamalo | 4m | ||
| 03:37 | Slobodan Radanović - Nepristojna ponuda | 3m | ||
| 03:40 | Rasta - Amgvsq7audi | 3m | ||
| 03:43 | Miligram - Ja sto posto | 4m | ||
| 03:47 | Goca Tržan - Folija | 4m | ||
| 03:51 | Milan Stankovic - Ego | 3m | ||
| 03:54 | SeverinaAktuelna domaća muzika. | 5m | ||
| 03:59 | Natasa Bekvalac - Crta | 3m | ||
| 04:02 | Trik Fx - Hitna Pomoc 2 | 3m | ||
| 04:05 | Bora Santana - Bankrot | 4m | ||
| 04:09 | Miki Duricic - Debil | 5m | ||
| 04:14 | pink music dzingl - pink music dzingl 2016 | 1m | ||
| 04:15 | Jelena Tomasevic - Da mi je da mi se vrati | 3m | ||
| 04:18 | Zeljko Samardzic - Mila | 4m | ||
| 04:22 | Sergej Cetkovic - Oci nikad ne stare | 6m | ||
| 04:28 | Hari Mata Hari - Staromodan tip | 4m | ||
| 04:32 | Marko Stolić - Zaboravljam | 3m | ||
| 04:35 | Ceca I Sasa Matic - Lazov notorni | 4m | ||
| 04:39 | Goca Trzan - Ne daj mi ljubav | 3m | ||
| 04:42 | pink music dzingl - pink music dzingl 2016 | 1m | ||
| 04:43 | The Monx - Gubi seAktuelna domaća muzika. | 2m | ||
| 04:45 | The Monx | 3m | ||
| 04:48 | The Monx ft. Wikluh Sky - Daj mi funk | 5m | ||
| 04:53 | The Monx | 3m | ||
| 04:56 | The Monx | 3m | ||
| 04:59 | The Monx | 4m | ||
| 05:03 | The Monx | 3m | ||
| 05:06 | The Monx | 4m | ||
| 05:10 | The Monx | 3m | ||
| 05:13 | The Monx | 3m | ||
| 05:16 | The Monx | 3m | ||
| 05:19 | The Monx | 3m | ||
| 05:22 | The Monx | 3m | ||
| 05:25 | The Monx | 4m | ||
| 05:29 | The Monx | 4m | ||
| 05:33 | The Monx | 3m | ||
| 05:36 | The Monx | 5m | ||
| 05:41 | The Monx | 1h 22m |
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_zjtg7wnf/schedule?date=2026-10-16&tz=Europe/Belgrade" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zjtg7wnf/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zjtg7wnf/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_zjtg7wnf/schedule?date=2026-10-16&tz=Europe/Belgrade"); 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_zjtg7wnf/schedule?date=2026-10-16&tz=Europe/Belgrade", { 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_zjtg7wnf/schedule", params={"date": "2026-10-16", "tz": "Europe/Belgrade"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_zjtg7wnf/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_ddk61g31", "channel": "ch_zjtg7wnf", "start": "2026-10-15T21:58:00Z", "stop": "2026-10-15T22:02:00Z", "title": "Dragan Veselinovic", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 100, "date": "2026-10-16", "tz": "Europe/Belgrade" } }
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.