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. Search any past day on the Archive plan.
All times Asia/Hong_Kong. The same day from the API: GET /v1/channels/ch_g0m2z7hz/schedule?date=2026-10-16&tz=Asia/Hong_Kong
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | 故事販賣機故事販賣機由四個獨立單元組成,包括《馴兔記》馴服小孩變成兔子的童話故事;《鬼打牆》男子來到酒店約會,卻誤入鬼打牆走不出去的懸疑故事;《官能許願》超能力... | 1h 30m | ||
| 01:30 | 奇門暗刃宋遼太平時期,原本是秘密組織“鳳火軍培養的特工唐紫煙被安插在京都皇城司任職。正當唐紫煙想悄悄退出,與丈夫過上平靜的餘生時,丈夫卻被鳳凰火軍帶走來威脅唐... | 1h 40m | ||
| 03:10 | 封神榜: 決戰萬仙陣商朝末年,紂王暴虐殘害百姓。與此同時,通天教的仙人們接二連三地因為出手阻撓薑子牙帶領的周軍而喪命。通天教主因此動怒,憤然與申公豹聯手,利用萬仙殺陣企圖... | 1h 35m | ||
| 04:45 | 封神演義之斬仙飛刀亂世末期,商朝遭到周武王的進攻,被周軍將領楊戩打得節節敗退。軍師申公豹向紂王建議招攬梅山七怪助商攻周,因為七怪之首袁洪與楊戩一樣精通八九玄功可七十二變... | 1h 15m | ||
| 06:00 | 封神演義之斬仙飛刀亂世末期,商朝遭到周武王的進攻,被周軍將領楊戩打得節節敗退。軍師申公豹向紂王建議招攬梅山七怪助商攻周,因為七怪之首袁洪與楊戩一樣精通八九玄功可七十二變... | 15m | ||
| 06:15 | 魅影狂花民國女學生林家英親眼目睹姐姐被軍閥馬世傑迫害致死而卻無能為力,並在隨後趕到的何美梓口中得知姐姐原來是秘密特工隊“魅影的一員。為替姐姐報仇,英加入魅影特... | 1h 25m | ||
| 07:40 | 大漠江湖年青鐵匠呂三思偶遇自己崇拜的大俠百里無憂。他幫助大俠押送西廠走狗何清纓,但何卻對他說了另一個版本的故事,說她是被西廠迫害,而百里才是出賣義士的走狗!事... | 1h 30m | ||
| 09:10 | 沙海怪獸民國初年,生物研究所得知在沙海有異變生物,於是派出探索小隊前往調查,但前去的隊員幾乎全部被滅,剩下劉夢西和夏萱帶著生物樣本逃離,過程非常危險,幸得獲沙丘... | 1h 20m | ||
| 10:30 | 津沽奇譚1: 暗城殺機民國時期,津沽城命案接連發生,警局束手無策。一向以風水破案的段宇豪和祁威被要求調查此案以戴罪立功,免除之前的懲罰,但在找線索的同時,二人卻被一步步地推向... | 1h 40m | ||
| 12:10 | 再戰江湖多年前九龍黑幫頭目章山河因與人火拼而入獄,此時妻子亦因難產而亡,留下女兒。章出獄後,決定放棄黑幫舊業,獨自撫養女兒。然而章為救昔日兄弟,卻導致黑幫老大塔... | 1h 25m | ||
| 13:35 | 大明奇將之荊楚劍義明朝嘉靖年間,倭寇入侵、海賊橫行,沿海地區的百姓苦不堪言。青年時期的俞大猷識破倭寇與海賊的詭計,保衛了民眾和大明疆土。而年少時的俞只想做一名大俠,其後... | 1h 25m | ||
| 15:00 | 致命少女姬未來世界,人工智慧高速發展,由程非掌控的地下科研組織,為牟取暴利研製激發異能人的晶片。由於一次變故,程下令清除所有實驗者,導致千鶴母親犧牲,而逃出生天的... | 1h 30m | ||
| 16:30 | 唐伯虎之偷天換日江南才子唐伯虎在宴會中為心儀女子桃寶一擲千金,卻被神秘男子出重金羞辱。唐氣憤出手打人,不料那人正是皇上,因此他被通緝。為了躲避追捕,唐偽裝成太監潛入宮... | 1h 25m | ||
| 17:55 | 陳情令之生魂以前的扶風城晚上花燈特別閃耀,尤如白天,然而現在卻被黑暗籠罩,更流傳著“點燈殺人的傳說,以致城中百姓晚上也不敢點燈。溫寧到城後,發現了很多反常之處,後來更... | 1h 30m | ||
| 19:25 | 封神·紂滅女媧諸神啟動“封神計畫顛覆商朝統治,安排了九尾妖狐上身妲己前來迷惑紂王。而紂王日漸傾心妲己對她專寵無度,更不服神旨逆天而行,建摘星樓登天問道與神對抗,並... | 1h 35m | ||
| 21:00 | 大蟲災一列載著淘金夢開往上海的列車突然脫軌墜崖。吳天等一行人倖免於難,卻遭到蜈蚣攻擊。隨後他們逃進了一個怪異村莊,而古怪的村長對這幫各懷鬼胎的倖存者起了殺... | 1h 15m | ||
| 22:15 | 真假濟公濟公即將在突破最後一層成為降龍羅漢的關鍵時刻,感應到白水鎮村民有難,於是他放棄修行前往白水鎮解救百姓。在這裡他遇到了假扮濟公的黃元蠱惑百姓,差點把濟公... | 1h 25m | ||
| 23:40 | 怒海狂蛛海上救難隊員阿傑為了生計及克服之前同伴遇難的陰影,再次乘坐漁船出海謀生,卻再次遭遇巨大的危機。在船上的人不僅要面對惡劣的暴雨天氣,還有海底未知生物正對... | 1h 50m |
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_g0m2z7hz/schedule?date=2026-10-16&tz=Asia/Hong_Kong" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_g0m2z7hz/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_g0m2z7hz/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_g0m2z7hz/schedule?date=2026-10-16&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_g0m2z7hz/schedule?date=2026-10-16&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_g0m2z7hz/schedule", params={"date": "2026-10-16", "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_g0m2z7hz/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_crpgsh9s", "channel": "ch_g0m2z7hz", "start": "2026-10-15T16:00:00Z", "stop": "2026-10-15T17:30:00Z", "title": "故事販賣機", "sub_title": null, "description": "故事販賣機由四個獨立單元組成,包括《馴兔記》馴服小孩變成兔子的童話故事;《鬼打...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 18, "date": "2026-10-16", "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 155 countries.