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/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_kqg7qmts/schedule?date=2026-10-11&tz=Europe/Belgrade
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:00 | Fudbal - Nemačka liga: Borussia Dortmund - Werder BremenUz sve ono što nam je Nemačka podarila kroz istoriju ponosno stoji i Bundesliga. Najviši rang fudbalskog takmičenja osnovanog 1963. godine broji 18... | Fudbal | 2h | |
| 01:00 | Fudbal - Francuska liga: Lens - LyonLigue 1 prva je francuska profesionalna fudbalska liga koja broji 20 ekipa u borbi za titulom prvaka Francuske. Osnovana je 1932. godine i smatra s... | Fudbal | 2h | |
| 03:00 | Ligue 1 ShowFrancuska "Liga 1" osnovana je 1932. godine i od tada privlači pažnju zaljubljenika u fudbal iz celog sveta! Upoznajte neke od najboljih fudbalera ... | Fudbal | 30m | |
| 03:30 | Fudbal - Austrijska liga: Austria Wien - SturmNajviši rang fudbalskog takmičenja u Austriji je Bundesliga. Osnovana je 1974. godine i broji 10 najboljih austrijskih klubova. Specifična je po to... | Fudbal | 2h | |
| 05:30 | Bundesliga Specijal: Michael OliseSpotski magazin posvećen najboljim momentima nemačke Bundeslige. | Fudbal | 30m | |
| 06:00 | Fudbal - Francuska 2. liga: Nantes - ReimsLigue 2 drugi je po niou razred francuskih klupskih fudbalskih takmičenja. Liga je osnovana 1933. godine i u današnjem formatu broji ukupno 20 klub... | Fudbal | 2h | |
| 08:00 | Fudbal - Francuska liga: Lille - Le HavreLigue 1 prva je francuska profesionalna fudbalska liga koja broji 20 ekipa u borbi za titulom prvaka Francuske. Osnovana je 1932. godine i smatra s... | Fudbal | 2h | |
| 10:00 | Fudbal - Nemačka 2. liga: Magdeburg - Hannover2. Bundesliga važi kao jedna od najpopularnijih fudbalskih takmičenja koja nisu najviši rang u vlastitoj zemlji. Prosečan broj gledalaca na tim uta... | Fudbal | 2h | |
| 12:00 | Bundesliga Specijal: Michael OliseSpotski magazin posvećen najboljim momentima nemačke Bundeslige. | Fudbal | 30m | |
| 12:30 | Košarka - Španska liga: Murcia - TenerifeŠpanska košarkaška liga osnovana je 1957. godine kao "Liga National" te je današnji format dobila 1983. godine kada organizacija ACB preuzima kontr... | Košarka | 2h | |
| 14:30 | Košarka - Turska liga: Efes - DenizliSami počeci turske košarke sežu daleko pre osnivanja lige 1966. godine. Još početkom 20. veka loptanje pod obručima je bilo poznato u Turskoj. Stud... | Košarka | 2h | |
| 16:30 | Košarka - Francuska liga: Paris - StrasbourgTakmičenje najvišeg ranga klupske košarke u Francuskoj naziva se LNB Pro A. Liga je osnovana 1921. godine koja je kroz istoriju više puta menjala s... | Košarka | 2h | |
| 18:30 | Fudbal - Ruska liga: Rubin - DinamoRuska fudbalska liga kao naslednik Sovjetskog saveza beleži svoje takmičarske početke od 1936. godine iako se fudbal na području saveza igrao još o... | Fudbal | 2h 15m | |
| 20:45 | Fudbal - Francuska liga: Troyes - MarseilleLigue 1 prva je francuska profesionalna fudbalska liga koja broji 20 ekipa u borbi za titulom prvaka Francuske. Osnovana je 1932. godine i smatra s... | Fudbal | 2h 15m | |
| 23:00 | Fudbal - Nemačka liga: Paderborn - StuttgartUz sve ono što nam je Nemačka podarila kroz istoriju ponosno stoji i Bundesliga. Najviši rang fudbalskog takmičenja osnovanog 1963. godine broji 18... | Fudbal | 2h |
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_kqg7qmts/schedule?date=2026-10-11&tz=Europe/Belgrade" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kqg7qmts/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kqg7qmts/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_kqg7qmts/schedule?date=2026-10-11&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_kqg7qmts/schedule?date=2026-10-11&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_kqg7qmts/schedule", params={"date": "2026-10-11", "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_kqg7qmts/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_3d89nswn", "channel": "ch_kqg7qmts", "start": "2026-10-10T21:00:00Z", "stop": "2026-10-10T23:00:00Z", "title": "Fudbal - Nemačka liga: Borussia Dortmund - Werder Bremen", "sub_title": null, "description": "Uz sve ono što nam je Nemačka podarila kroz istoriju ponosno stoji i Bundesli...", "category": [ "fudbal" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 15, "date": "2026-10-11", "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 155 countries.