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 Asia/Kuala_Lumpur 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 Asia/Kuala_Lumpur. The same day from the API: GET /v1/channels/ch_gx4z6vf3/schedule?date=2026-10-17&tz=Asia/Kuala_Lumpur
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 18:00 | RUANGAN NURANIDengarkan bacaan ayat-ayat suci Al-quran dan memainkan lagu-lagu ketuhanan dan kerohanian dari pukul 6.00 petang hingga 7.00 malam. | 12h | ||
| 06:00 | SEGMEN SALAM PAADIANBersama-sama penyampai kesayangan anda, setiap hari bermula pukul 6.00 hingga 10.00 pagi. Pelbagai perkongsian menarik kami sajikan dan pilihan lag... | 15m | ||
| 06:15 | MUTIARA HADIS 2026 | 15m | ||
| 06:30 | PERKONGSIAN BERITA PILIHAN SPPerkongsian dua berita pilihan yang terkini dan mutakhir. | 15m | ||
| 06:45 | INFO CUACA DAN INFO TRAFIKBerkongsi maklumat ramalan cuaca dan keadaan terkini trafik jalan raya di WP Labuan. | 15m | ||
| 07:00 | BERITA UTAMA 7 PAGIBerita nasional dari Pusat Berita Radio RTM Kuala Lumpur. | 45m | ||
| 07:45 | TOPIK SEMBANG PAGITopik sembang pagi yang menarik dan menanti respon pendengar mengenai topik pilihan setiap hari Isnin hingga Jumaat. | 15m | ||
| 08:00 | WARTA PAGIBerita Warta Pagi dari bilik Berita Ehwal Semasa LABUANfm | 15m | ||
| 08:15 | INFO SIHAT 2026Tip kesihatan | 35m | ||
| 08:50 | TULAR SANA SINI 2026Perkongsian menarik mengenai cerita tular dalam dan luar negara. | 1h 10m | ||
| 10:00 | DUNIA 10 PAGIBerita dunia dari Pusat Berita Radio RTM Kuala Lumpur. | 8m | ||
| 10:08 | SEGMEN VARIASI LEBIH BANYAK HIBURAN UNTUK ANDA (HUJUNG MINGGU)Segmen Variasi - Lebih Banyak Hiburan Untuk Anda menemani anda dari pukul 10.00 pagi hingga 3.00 petang hari sabtu dan ahad. | 1h 52m | ||
| 12:00 | WARTA RINGKASBerita Warta Ringkas dari bilik Berita Ehwal Semasa LABUANfm | 1h | ||
| 13:00 | BERITA UTAMA 1 TENGAH HARIBerita Nasional dari Pusat Berita Radio RTM | 15m | ||
| 13:15 | Muzik UntukmuMemainkan Lagu-lagu 90an - hits Terkini dari pukul 1.15 hingga 2.00 petang.\\n\\n | 1h 45m | ||
| 15:00 | RANCANGAN SILANG BUDAYA RADIO RTMProgram unggul rentas negeri sebarluas hyperlocal. Sabtu slot Stesen Berkembar, Ahad slot Suara Bertemu Suara.\n | 1h 5m | ||
| 16:05 | DIARI SUKAN SABTUPerkongsian perkembangan sukan tanah air dan antarabangsa. | 55m | ||
| 17:00 | UTAMA 5 PETANGBerita nasional dari bilik berita RTM Kuala Lumpur | 1h | ||
| 18:00 | RUANGAN NURANIDengarkan bacaan ayat-ayat suci Al-quran dan memainkan lagu-lagu ketuhanan dan kerohanian dari pukul 6.00 petang hingga 7.00 malam. | 12h |
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_gx4z6vf3/schedule?date=2026-10-17&tz=Asia/Kuala_Lumpur" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_gx4z6vf3/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_gx4z6vf3/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_gx4z6vf3/schedule?date=2026-10-17&tz=Asia/Kuala_Lumpur"); 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_gx4z6vf3/schedule?date=2026-10-17&tz=Asia/Kuala_Lumpur", { 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_gx4z6vf3/schedule", params={"date": "2026-10-17", "tz": "Asia/Kuala_Lumpur"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_gx4z6vf3/schedule?date=2026-10-17, the first programme { "data": [ { "id": "ls_yrxhjyzs", "channel": "ch_gx4z6vf3", "start": "2026-10-16T10:00:00Z", "stop": "2026-10-16T22:00:00Z", "title": "RUANGAN NURANI", "sub_title": null, "description": "Dengarkan bacaan ayat-ayat suci Al-quran dan memainkan lagu-lagu ketuhanan da...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 19, "date": "2026-10-17", "tz": "Asia/Kuala_Lumpur" } }
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.