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/Seoul time, what is on now and next, and the same data in your app with one call.
All times Asia/Seoul. The same day from the API: GET /v1/channels/ch_4e00wn1b/schedule?date=2026-10-13&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:21 | 대제국의 침공! 드라마로 본 <고려거란전쟁>강력한 기마군단을 앞세워 동아시아를 호령한 大제국, 거란! 반면 거란에 비해 군사력이 열등했던 나라, 고려! 이 두 국가가 국운을 걸고 26년간 세 차례에 ... | 1h 40m | ||
| 00:01 | 노벨상만 6개?! 마리 퀴리 가문엔 특별한 것이 있다여성 최초의 노벨상 수상, 최초의 두 가지 과학 분야 노벨상 수상 등! 수많은 최초의 기록을 세운 위대한 여성, 방사능의 어머니 마리 퀴리! 본인뿐 아니라 ... | 1h 35m | ||
| 01:36 | 대환장 도굴 파티! 이집트 유물 수난사전 세계의 눈을 사로잡는 신비롭고 매혹적인 이집트의 유물들! 그.런.데! 주요 이집트의 유물이 정작 이집트에 없다!? 파라오의 석관부터 무덤 속 벽화, 신전... | 1h 38m | ||
| 03:14 | 세계사를 공포로 물들인 세균 감염병인간과 공존하며 치명적인 감염병을 무수히 일으켜온 세균! 그러나, 인류가 세균의 존재를 규명한 건 100년도 채 되지 않았으며 이전까지 세균 감염병은 ‘신... | 1h 42m | ||
| 04:56 | 북유럽의 침략자 바이킹은 어떻게 유럽을 휩쓸었나 On now해적을 다룬 인기 만화 <원피스>, 어벤져스의 매력적인 영웅! 영화 <토르> 시리즈, 게임 <어쌔신 크리드 : 발할라> 등! 전 세계 사람들의 가슴을 뛰게 한 이 ... | 1h 35m | ||
| 06:31 | 황제에서 전범으로! 청나라 마지막 황제 푸이3살에 황제에 올라 단 3년 만에 물러난 중국 최후의 왕조 청나라의 마지막 황제 ‘푸이' 하.지.만. 푸이는 이후 두 번이나 더 황제 자리에서 쫓겨났다? 권력을... | 1h 45m | ||
| 08:15 | 바람 잘 날 없는 영국 왕실의 금쪽이들한때 세계를 집어삼킨! 유럽 최고의 왕실, 영국 왕실! 대중에게 파격적으로 로열패밀리의 일상을 공개하며 전 세계의 관심을 받게 되는데! 그.런.데! 그로 인... | 1h 46m |
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_4e00wn1b/schedule?date=2026-10-13&tz=Asia/Seoul" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_4e00wn1b/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_4e00wn1b/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_4e00wn1b/schedule?date=2026-10-13&tz=Asia/Seoul"); 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_4e00wn1b/schedule?date=2026-10-13&tz=Asia/Seoul", { 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_4e00wn1b/schedule", params={"date": "2026-10-13", "tz": "Asia/Seoul"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_4e00wn1b/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_yp9fgv2e", "channel": "ch_4e00wn1b", "start": "2026-10-12T13:21:56Z", "stop": "2026-10-12T15:01:47Z", "title": "대제국의 침공! 드라마로 본 <고려거란전쟁>", "sub_title": null, "description": "강력한 기마군단을 앞세워 동아시아를 호령한 大제국, 거란! 반면 거란에 비해 군...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 7, "date": "2026-10-13", "tz": "Asia/Seoul" } }
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.