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 Asia/Hong_Kong 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/Hong_Kong. The same day from the API: GET /v1/channels/ch_50fb4nsv/schedule?date=2026-10-11&tz=Asia/Hong_Kong
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | 非凡人物章國明:再見新浪潮 | 1h | ||
| 01:00 | 體壇快閃 | 30m | ||
| 01:30 | 亞太廣播聯盟機械人大賽2026第三集:風雲變色 | 30m | ||
| 02:00 | 太陽小記者- 2026西域記開發新疆 融入國家發展 | 30m | ||
| 02:30 | 海市蜃樓第三集:登州城失蹤人不斷 | 1h | ||
| 03:30 | 時事摘錄 | 30m | ||
| 04:00 | 傳媒初體驗 第三季第六集 - 終極四強開戰!星級試鍊登場 | 30m | ||
| 04:30 | Power Up Your English 2.0活力英語 2.0 - EP4 | 30m | ||
| 05:00 | 香港故事 ---近水留情守望水口 | 30m | ||
| 05:30 | 31看世界 - 周遊列車- 再出發周遊列車 再出發 - 烏拉圭 | 1h | ||
| 06:30 | 非凡人物章國明:再見新浪潮 | 1h | ||
| 07:30 | 鏗鏘集「娛樂」陷阱 | 30m | ||
| 08:00 | 盛事傳城 | 5m | ||
| 08:05 | BobieLand第三百一十八集 - 《我才不是膽小鬼》上集 | 20m | ||
| 08:25 | BobieLand第三百一十九集 - 《我才不是膽小鬼》下集 | 15m | ||
| 08:40 | BobieLand第三百二十集 - 【手作Easy Job】南瓜糖果手挽袋 / 【Yummy Time】南瓜紫薯煎餅 / 【航天大解密】太空能種植嗎? | 15m | ||
| 08:55 | BobieLand第三百二十一集 - 【嘉賓來了】貓咪奶媽 - Mi姐姐與Karki姐姐 | 15m | ||
| 09:10 | BobieLand第三百二十二集 - 【玩轉星期五】「眼明手快大“運”戰」「手手腳腳咪亂伸」「大糖細糖落木盤」 | 20m | ||
| 09:30 | 海鸚特攻隊拯救海鸚蛋 | 5m | ||
| 09:35 | 海鸚特攻隊迪迪的惡作劇 | 10m | ||
| 09:45 | 海鸚特攻隊瓶子遊戲 | 5m | ||
| 09:50 | 動物童萌極速寶寶(下) | 30m | ||
| 10:20 | 盛事傳城 | 5m | ||
| 10:25 | 追夢者蔡佩樺 : 幸福的科學 | 30m | ||
| 10:55 | 政正關你事 - 為人民服務為人民服務 - 海事處政府船隊科 | 5m | ||
| 11:00 | 雙城聯動 | 25m | ||
| 11:25 | 不完美受害人第十四集: 尹聲的前度女友遭受家暴 | 45m | ||
| 12:10 | 不完美受害人第十五集: 林闞為幫米芒而遭遇襲擊 | 50m | ||
| 13:00 | 新聞簡報 | 5m | ||
| 13:05 | 非凡人物 | 55m | ||
| 14:00 | 政正關你事 - 為人民服務為人民服務 - 海事處政府船隊科 | 5m | ||
| 14:05 | 識多一點點 | 55m | ||
| 15:00 | 體壇快閃 | 30m | ||
| 15:30 | 鄉郊豐年節2026:香港山水 · 聲舞 一日音樂節客家音聊 & 港茶/武俠情·空心樹 | 50m | ||
| 16:20 | 香港同胞慶祝中華人民共和國成立七十七周年文藝晚會 | 1h 40m | ||
| 18:00 | 夢想中華人物誌 (普通話版)開基創業—李兆基 | 30m | ||
| 18:30 | 灣區夢成真「夢」想再出發 | 30m | ||
| 19:00 | 新聞天地20261011 | 15m | ||
| 19:15 | 生活.健康.資訊 | 5m | ||
| 19:20 | 盛事傳城 | 10m | ||
| 19:30 | 港樂 • 講樂第103集:黃劍文(Kimman) | 30m | ||
| 20:00 | 國寶時刻 – 精裝版金碧璀璨・映照盛唐 | 25m | ||
| 20:25 | 政正關你事 - 為人民服務為人民服務 - 海事處 - 燈塔維修及保養 | 5m | ||
| 20:30 | 海市蜃樓 | 55m | ||
| 21:25 | 政正關你事 - 為人民服務為人民服務 - 海事處 - 燈塔維修及保養 | 5m | ||
| 21:30 | 周末大電影:鋼鐵意志鋼鐵意志 | 1h 50m | ||
| 23:20 | 優遊記盲盒旅行團---天后誕舞獅下集 | 5m | ||
| 23:25 | 盛事傳城 | 5m | ||
| 23:30 | 鏗鏘集「娛樂」陷阱 | 30m |
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_50fb4nsv/schedule?date=2026-10-11&tz=Asia/Hong_Kong" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_50fb4nsv/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_50fb4nsv/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_50fb4nsv/schedule?date=2026-10-11&tz=Asia/Hong_Kong"); 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_50fb4nsv/schedule?date=2026-10-11&tz=Asia/Hong_Kong", { 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_50fb4nsv/schedule", params={"date": "2026-10-11", "tz": "Asia/Hong_Kong"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_50fb4nsv/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_kz2f57wr", "channel": "ch_50fb4nsv", "start": "2026-10-10T16:00:00Z", "stop": "2026-10-10T17:00:00Z", "title": "非凡人物", "sub_title": null, "description": "章國明:再見新浪潮", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 49, "date": "2026-10-11", "tz": "Asia/Hong_Kong" } }
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.