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/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_n0tdf10d/schedule?date=2026-10-18&tz=Asia/Shanghai
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:55 | 实况录像(奥林匹克)-2026年亚运会 男篮1/4决赛 | 1h 25m | ||
| 01:20 | 赛事集锦(奥林匹克)-2026年亚运会 亚运典藏5 | 15m | ||
| 01:35 | 实况录像(奥林匹克)-2026年亚运会 举重比赛1 | 1h | ||
| 02:35 | 实况录像(奥林匹克)-WTT中国大满贯2026 比赛4 | 1h | ||
| 03:35 | 艺术里的奥林匹克2026-64 | 20m | ||
| 03:55 | 2026中国足球超级联赛-第28轮 山东泰山-浙江俱乐部绿城 | 2h 15m | ||
| 06:10 | 奥林匹克典藏-东京奥运会举重男子67公斤级决赛 | 50m | ||
| 07:00 | 2026国际足联U17女足世界杯-小组赛A组 第1轮 德国队-阿根廷队 | 2h 5m | ||
| 09:05 | 实况录像(奥林匹克)-2026年世界艺术体操锦标赛 25分钟版 | 30m | ||
| 09:35 | 2026年全国举重冠军赛-女子比赛2 | 1h | ||
| 10:35 | 2026年美国网球公开赛-女单决赛 | 1h 25m | ||
| 12:00 | 2027年国际篮联世界杯预选赛-中国队—中国台北队 | 1h 30m | ||
| 13:30 | 实况录像(奥林匹克)-2026年米兰科尔蒂纳冬奥会 女子钢架雪车 | 30m | ||
| 14:00 | 艺术里的奥林匹克2026-61 | 20m | ||
| 14:20 | 实况录像(奥林匹克)-2026年亚运会 体操女子团体决赛 | 1h 30m | ||
| 15:50 | 实况录像(奥林匹克)-2026年世界田联钻石联赛 尤金站 | 1h 25m | ||
| 17:15 | 实况录像(奥林匹克)-2026年中国网球公开赛 女单决赛 | 1h 25m | ||
| 18:40 | 实况录像(奥林匹克)-2026年亚运会 女排决赛 | 1h 20m | ||
| 20:00 | 艺术里的奥林匹克2026-62 | 20m | ||
| 20:20 | 实况录像(奥林匹克)-2026年亚运会 举重比赛248分钟版 | 55m | ||
| 21:15 | 实况录像(奥林匹克)-2026/2027赛季中国男子篮球职业联赛 揭幕战 上海久事—深圳马可波罗 | 1h 30m | ||
| 22:45 | 奥林匹克典藏-巴黎奥运会 乒乓球混双决赛 | 1h | ||
| 23:45 | 艺术里的奥林匹克2026-63 | 20m |
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_n0tdf10d/schedule?date=2026-10-18&tz=Asia/Shanghai" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_n0tdf10d/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_n0tdf10d/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_n0tdf10d/schedule?date=2026-10-18&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_n0tdf10d/schedule?date=2026-10-18&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_n0tdf10d/schedule", params={"date": "2026-10-18", "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_n0tdf10d/schedule?date=2026-10-18, the first programme { "data": [ { "id": "ls_jhzcnxxb", "channel": "ch_n0tdf10d", "start": "2026-10-17T15:55:00Z", "stop": "2026-10-17T17:20:00Z", "title": "实况录像(奥林匹克)-2026年亚运会 男篮1/4决赛", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 23, "date": "2026-10-18", "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 150 countries.