73.8M 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/Malta 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/Malta. The same day from the API: GET /v1/channels/ch_mrt7yf0f/schedule?date=2026-10-13&tz=Europe/Malta
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | TVMSport+ Night TransmissionTVMSport+ Night Transmission. | TVMSport+ Night Transmission | 4h | |
| 04:00 | TVMSport+ Night TransmissionTVMSport+ Night Transmission. | TVMSport+ Night Transmission | 3h | |
| 07:00 | Basketball MatchBasketball Match. | Basketball Match | 2h | |
| 09:00 | Vbet Malta Premier On nowHamrun Spartans vs Hibernians. | Vbet Malta Premier | 2h | |
| 11:00 | TVMSport+TVM Sport. | TVMSport+ | 1h | |
| 12:00 | Il-KampjonatIl-Kampjonat. | Il-Kampjonat | 1h 30m | |
| 13:30 | Yin-YangYin-Yang explores the rich and diverse world of martial arts as practiced in Malta. Each episode introduces a different discipline, examining its u... | Yin-Yang | 30m | |
| 14:00 | TVMSport+TVM Sport News. | TVMSport+ | 30m | |
| 14:30 | Basketball MatchBasketball Match. | Basketball Match | 1h 30m | |
| 16:00 | The Inside LineThe Inside Line. | The Inside Line | 30m | |
| 16:30 | MotorsmtMotorsmt targets all those interested in the local motorsport and classic car scene. The central part of motorsport is the current news about what ... | Motorsmt | 30m | |
| 17:00 | Kick ItKick It. | Kick It | 30m | |
| 17:30 | Monster JamMonster Jam - Insane Runs from Around The World. | Motorsport: Monster Jam | 30m | |
| 18:00 | Sport GhawdexSport Għawdex gives extensive coverage of all the sport organisations affiliated with the Gozo Sports Board with comments by players and club offic... | Sport Ghawdex | 30m | |
| 18:30 | TVMSport+TVM Sport News. | TVMSport+ | 30m | |
| 19:00 | Euro LeaguesEuro Leagues. | Euro Leagues | 1h | |
| 20:00 | Pole PositionPole Position. | Pole Position | 1h | |
| 21:00 | Ahna l-HotspursAhna l-Hotspurs. | Ahna l-Hotspurs | 30m | |
| 21:30 | The Sports RundownThe Sports Rundown - Capturing the Passion. | The Sports Rundown | 30m | |
| 22:00 | SportiviSportivi, programm li jaghti spazju u vuci lill-atleti u coaches f'dixxiplini sportivi li rarament ikunu taht il-lenti, filwaqt li jesplora l-passj... | Sportivi | 30m | |
| 22:30 | BOV Challenge LeagueZurrieq vs Victoria Hotspurs. | BOV Challenge League | 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_mrt7yf0f/schedule?date=2026-10-13&tz=Europe/Malta" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_mrt7yf0f/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_mrt7yf0f/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_mrt7yf0f/schedule?date=2026-10-13&tz=Europe/Malta"); 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_mrt7yf0f/schedule?date=2026-10-13&tz=Europe/Malta", { 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_mrt7yf0f/schedule", params={"date": "2026-10-13", "tz": "Europe/Malta"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_mrt7yf0f/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_bp7x3wbv", "channel": "ch_mrt7yf0f", "start": "2026-10-12T22:00:00Z", "stop": "2026-10-13T02:00:00Z", "title": "TVMSport+ Night Transmission", "sub_title": "TVMSport+ Night Transmission", "description": "TVMSport+ Night Transmission.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 21, "date": "2026-10-13", "tz": "Europe/Malta" } }
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 10 October 2026 | Category |
|---|---|---|
| 00:00 | TVMSport+ Night Transmission | |
| 04:00 | TVMSport+ Night Transmission | |
| 07:00 | Ligue 1 | |
| 14 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.