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/Shanghai 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/Shanghai. The same day from the API: GET /v1/channels/ch_112mhktv/schedule?date=2026-10-12&tz=Asia/Shanghai
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:15 | 家庭剧场 | 2h 25m | ||
| 00:40 | 最美公路 | 50m | ||
| 01:30 | 宝岛,报到! | 35m | ||
| 02:05 | 精品纪录片 | 26m | ||
| 02:31 | 舌尖之福 | 11m | ||
| 02:42 | 青春剧场 | 2h 18m | ||
| 05:00 | 今日海峡 | 42m | ||
| 05:42 | 海峡拼经济 | 31m | ||
| 06:13 | 大地私宴 | 30m | ||
| 06:43 | 精品纪录片 | 27m | ||
| 07:10 | 海峡剧场 | 22m | ||
| 07:32 | 海峡剧场:淬火年代 第6集 | 28m | ||
| 08:25 | 重播今日海峡 | 42m | ||
| 09:07 | 重播朋友别见外 | 25m | ||
| 09:32 | 重播精品纪录片 | 27m | ||
| 09:59 | 重播向海图强 | 15m | ||
| 10:14 | 重播早餐中国第四季 | 7m | ||
| 10:21 | 重播青春剧场:归队 第6集 | 46m | ||
| 11:07 | 重播青春剧场:归队 第7集 | 46m | ||
| 11:53 | 重播青春剧场:归队 第8集 | 47m | ||
| 12:40 | 重播精品纪录片 | 25m | ||
| 13:05 | 重播今日海峡 | 42m | ||
| 13:47 | 重播朋友别见外 | 27m | ||
| 14:14 | 重播早餐中国第四季 | 7m | ||
| 14:21 | 重播精品纪录片 | 52m | ||
| 15:13 | 重播向海图强 | 15m | ||
| 15:28 | 重播今日海峡 | 44m | ||
| 16:12 | 重播朋友别见外 | 25m | ||
| 16:37 | 重播早餐中国第四季 | 8m | ||
| 16:45 | 时代剧场:浴血荣光 第8集 | 47m | ||
| 17:32 | 时代剧场:浴血荣光 第9集 | 46m | ||
| 18:18 | 时代剧场:浴血荣光 第10集 | 47m | ||
| 19:05 | 重播朋友别见外 | 25m | ||
| 19:30 | 文化闽江-开讲:5 | 30m | ||
| 20:00 | 海峡午报 | 30m | ||
| 20:30 | 重播朋友别见外 | 25m | ||
| 20:55 | 重播精品纪录片 | 27m | ||
| 21:22 | 家庭剧场:好好的时光 第13集 | 44m | ||
| 22:06 | 家庭剧场:好好的时光 第14集 | 44m | ||
| 22:50 | 家庭剧场:好好的时光 第15集 | 44m | ||
| 23:34 | 重播精品纪录片 | 25m | ||
| 23:59 | 重播早餐中国第四季 | 7m |
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_112mhktv/schedule?date=2026-10-12&tz=Asia/Shanghai" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_112mhktv/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_112mhktv/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_112mhktv/schedule?date=2026-10-12&tz=Asia/Shanghai"); 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_112mhktv/schedule?date=2026-10-12&tz=Asia/Shanghai", { 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_112mhktv/schedule", params={"date": "2026-10-12", "tz": "Asia/Shanghai"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_112mhktv/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_0t17xxjb", "channel": "ch_112mhktv", "start": "2026-10-11T14:15:00Z", "stop": "2026-10-11T16:40:00Z", "title": "家庭剧场", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 42, "date": "2026-10-12", "tz": "Asia/Shanghai" } }
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 152 countries.