74.3M 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_zb3vp6d6/schedule?date=2026-10-12&tz=Asia/Hong_Kong
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:30 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 01:00 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 02:30 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 24m | ||
| 03:54 | 精彩節目即將送上請留意下一個精彩節目 | 36m | ||
| 04:30 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 06:00 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 24m | ||
| 07:24 | 精彩節目即將送上請留意下一個精彩節目 | 36m | ||
| 08:00 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 09:30 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 11:00 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 12:30 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 14:00 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 15:30 | 賽馬結果賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑或表現失準呢? 透過重溫, 大家可以看清楚! 主持更會從中發掘潛質馬匹, 推介... | 1h 30m | ||
| 17:00 | 賽事檔案一週賽事重溫, 各駒陣上成績一目了然。 | 1h 30m | ||
| 18:30 | 賽事檔案一週賽事重溫, 各駒陣上成績一目了然。 | 1h 30m | ||
| 20:00 | 排位焦點從不同賽馬數據, 尋找賽事重心; 並會分析馬房形勢, 看清哪個馬房, 佈下強陣, 準備大舉出撃的「進擊馬房」; 以及哪些騎師手上坐騎, 具備實力成就佳績的「強駒... | 15m | ||
| 20:15 | 睇排位 做功課與觀眾一同為賽日做準備, 看清排位形勢、人馬配搭、馬匹配備變動, 並同時參考馬匹過去陣上走勢或近期試閘表現, 以掌握馬匹實力、了解賽事, 助計算馬匹的勝算... | 1h 15m | ||
| 21:30 | 排位焦點從不同賽馬數據, 尋找賽事重心; 並會分析馬房形勢, 看清哪個馬房, 佈下強陣, 準備大舉出撃的「進擊馬房」; 以及哪些騎師手上坐騎, 具備實力成就佳績的「強駒... | 15m | ||
| 21:45 | 睇排位 做功課與觀眾一同為賽日做準備, 看清排位形勢、人馬配搭、馬匹配備變動, 並同時參考馬匹過去陣上走勢或近期試閘表現, 以掌握馬匹實力、了解賽事, 助計算馬匹的勝算... | 1h 15m | ||
| 23:00 | 排位焦點從不同賽馬數據, 尋找賽事重心; 並會分析馬房形勢, 看清哪個馬房, 佈下強陣, 準備大舉出撃的「進擊馬房」; 以及哪些騎師手上坐騎, 具備實力成就佳績的「強駒... | 15m | ||
| 23:15 | 睇排位 做功課與觀眾一同為賽日做準備, 看清排位形勢、人馬配搭、馬匹配備變動, 並同時參考馬匹過去陣上走勢或近期試閘表現, 以掌握馬匹實力、了解賽事, 助計算馬匹的勝算... | 1h 15m |
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_zb3vp6d6/schedule?date=2026-10-12&tz=Asia/Hong_Kong" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zb3vp6d6/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zb3vp6d6/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_zb3vp6d6/schedule?date=2026-10-12&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_zb3vp6d6/schedule?date=2026-10-12&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_zb3vp6d6/schedule", params={"date": "2026-10-12", "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_zb3vp6d6/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_y1s1s4by", "channel": "ch_zb3vp6d6", "start": "2026-10-11T15:30:00Z", "stop": "2026-10-11T17:00:00Z", "title": "賽馬結果", "sub_title": null, "description": "賽事結束後, 與大家一同重溫賽事過程, 檢討騎師和馬匹的表現。到底是水準之作、抑...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 21, "date": "2026-10-12", "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.