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/Hong_Kong time, what is on now and next, and the same data in your app with one call.
All times Asia/Hong_Kong. The same day from the API: GET /v1/channels/ch_6ygkn2ty/schedule?date=2026-10-18&tz=Asia/Hong_Kong
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | 頻道尚未提供當日節目表 | 3h | ||
| 03:00 | 頻道尚未提供當日節目表 | 3h | ||
| 06:00 | 鮮果良方.櫻桃 | 3m | ||
| 06:03 | 鮮果良方.西瓜 | 7m | ||
| 06:10 | 鮮果良方.芒果 | 7m | ||
| 06:17 | 健康熱度詞 隱翅蟲 | 5m | ||
| 06:22 | 名醫大家話健康 常感疲憊或許是病 | 8m | ||
| 06:30 | 生活圈(20260708) | 41m | ||
| 07:11 | 古為今用 養生有方 代代花 | 9m | ||
| 07:20 | 兩個動作 改善扁平臀 | 8m | ||
| 07:28 | 健康熱度詞 「情緒中暑」 | 9m | ||
| 07:37 | 名醫大家話健康 冬病夏治調脾胃 | 9m | ||
| 07:46 | 古為今用 養生有方 楊梅 | 7m | ||
| 07:53 | 健康熱度詞 久坐 | 7m | ||
| 08:00 | 生活圈(20260709) | 42m | ||
| 08:42 | 兩個動作 緩解腰部不適 | 8m | ||
| 08:50 | 名醫大家話健康 冬病夏治改善鼻炎 | 6m | ||
| 08:56 | 長時間觀賽 如何科學護眼? | 3m | ||
| 08:59 | 健康熱度詞 水果過敏 | 5m | ||
| 09:04 | 健康熱度詞 高壓氧療 | 9m | ||
| 09:13 | 古為今用 養生有方 荷花 | 8m | ||
| 09:21 | 生活圈(20260710) | 42m | ||
| 10:03 | 兩個動作 改善肩頸僵硬 | 7m | ||
| 10:10 | 胰腺炎都是因為暴飲暴食嗎? | 3m | ||
| 10:13 | 名醫大家話健康 久坐人群護腎方 | 9m | ||
| 10:22 | 健康熱度詞 前額葉受損 | 8m | ||
| 10:30 | 生活圈(20260711) | 42m | ||
| 11:12 | 打造解壓陽臺 | 12m | ||
| 11:24 | 不同程度的腹瀉 哪些需要立即就醫? | 18m | ||
| 11:42 | 如何科學用藥和補液? | 23m | ||
| 12:05 | 一熱就醒 清心安神卡 | 11m | ||
| 12:16 | 辨體質 巧運動 | 39m | ||
| 12:55 | 一吃就脹 祛溼化濁卡 | 11m | ||
| 13:06 | 伏天難過 容易被三種邪氣盯上 | 2m | ||
| 13:08 | 一動就虛 補氣生津卡 | 15m | ||
| 13:23 | 生活圈(20260712) | 42m | ||
| 14:05 | 生活圈(20260713) | 41m | ||
| 14:46 | 生活圈(20260622) | 42m | ||
| 15:28 | 全民健康操 兩個動作 告別大肚腩 | 8m | ||
| 15:36 | 鮮果良方.枇杷 | 5m | ||
| 15:41 | 生活圈(20260623) | 41m | ||
| 16:22 | 鮮果良方.荊芥 | 7m | ||
| 16:29 | 一起來練八段錦 搖頭擺尾去心火 | 9m | ||
| 16:38 | 健康熱度詞 發呆 | 7m | ||
| 16:45 | 健康熱度詞 精準放療 | 9m | ||
| 16:54 | 古為今用 養生有方 薄荷綠豆湯 | 7m | ||
| 17:01 | 生活圈(20260624) | 42m | ||
| 17:43 | 名醫大家話健康 調汗護心 | 7m | ||
| 17:50 | 一起來練八段錦 兩手攀足固腎腰 | 10m | ||
| 18:00 | 健康熱度詞 睡眠癲癇 | 6m | ||
| 18:06 | 名醫大家話健康 寧心靜氣 | 7m | ||
| 18:13 | 古為今用 養生有方 芭樂 | 8m | ||
| 18:21 | 生活圈(20260625) | 41m | ||
| 19:02 | 健康熱度詞 胸悶 | 9m | ||
| 19:11 | 名醫大家話健康 祛溼安心 | 9m | ||
| 19:20 | 健康熱度詞 「高碳水」 | 9m | ||
| 19:29 | 古為今用 養生有方 杜仲 | 8m | ||
| 19:37 | 一起來練八段錦 攢拳怒目增氣力 | 9m | ||
| 19:46 | 健康熱度詞 尿路感染 | 5m | ||
| 19:51 | 一起來練八段錦 背後七顛百病消 | 8m | ||
| 19:59 | 生活圈(20260626) | 42m | ||
| 20:41 | 看懂眼信號 護好心靈窗 | 40m | ||
| 21:21 | 「世界白癜風日」 警惕異常的白斑 | 15m | ||
| 21:36 | 古為今用 養生有方 桑葚 | 9m | ||
| 21:45 | 名醫大家話健康 熬夜觀賽 護心有招 | 8m | ||
| 21:53 | 生活圈(20260627) | 41m | ||
| 22:34 | 生活圈(20260628) | 42m | ||
| 23:16 | 生活圈(20260629) | 42m | ||
| 23:58 | 生活圈(20260630) | 41m |
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_6ygkn2ty/schedule?date=2026-10-18&tz=Asia/Hong_Kong" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_6ygkn2ty/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_6ygkn2ty/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_6ygkn2ty/schedule?date=2026-10-18&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_6ygkn2ty/schedule?date=2026-10-18&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_6ygkn2ty/schedule", params={"date": "2026-10-18", "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_6ygkn2ty/schedule?date=2026-10-18, the first programme { "data": [ { "id": "ls_mn0df14j", "channel": "ch_6ygkn2ty", "start": "2026-10-17T16:00:00Z", "stop": "2026-10-17T19:00:00Z", "title": "頻道尚未提供當日節目表", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 69, "date": "2026-10-18", "tz": "Asia/Hong_Kong" } }
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.