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_2nmb1ka7/schedule?date=2026-10-13&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:34 | 신서유기8 4회안 절.거.웠.던(?) ‘훈민정음 윷놀이'를 보내고 안 반.가.운 <인물 퀴즈>가 돌아왔다! “심봤다!” 150만 원을 호가하는 지리산 특산품에 관심 폭발! 대한민국 ... | 1h 49m | ||
| 00:23 | 신서유기8 5회하늘은 높고 호동이(?)는 살찌는 풍요로운 가을~ 여덟 시즌 만에 드디어 <제1회 신서유기 단합대회> 개최! ‘made by 마.멋' 레전드 짤 담긴 단체복부터 평등... | 1h 37m | ||
| 02:00 | 신서유기8 6회서로를 더 알아가고자 열린 '사장님과의 간담회‘ 사우들의 최애 게임으로 간담회 분위기 UP! 생각지도 못한(?) 버저로 돌아온 <제2회 음악 장학퀴즈> 어김없... | 1h 46m | ||
| 03:46 | 신서유기8 7회단합도 식후경, 떡볶이 앞에 장사 없다! <줄줄이 말해요>에 성공하면 꿀맛 토핑 GET! 하지만 오답을 외치면 극악의 ‘빨간 맛' 4종 투입! 호불호 토핑 총집합... | 1h 37m | ||
| 05:23 | 신서유기8 8회 On now투어를 마치고 집으로 행차한 용왕님과 친구들! ‘팔딱팔딱' 추자산 해산물 한 상으로 저녁식사 시... 작! 하기 전에 <훈민정음 2종 놀이> 먼저 가실게요~ 손... | 1h 38m | ||
| 07:01 | 신서유기8 9회신묘한 오감(五感) 게임 보고서 제1감각 시각: <잡아라 고깔 쥐돌이> 특) 추자도에 쥐돌이 6마리 등장 (보 NEW 고깔 쓰고 ‘귀여움 한도 초과' (❁´◡`❁) 대신 ... | 1h 40m |
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_2nmb1ka7/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_2nmb1ka7/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_2nmb1ka7/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_2nmb1ka7/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_2nmb1ka7/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_2nmb1ka7/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_2nmb1ka7/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_y5k8rw1f", "channel": "ch_2nmb1ka7", "start": "2026-10-12T13:34:21Z", "stop": "2026-10-12T15:23:43Z", "title": "신서유기8 4회", "sub_title": null, "description": "안 절.거.웠.던(?) ‘훈민정음 윷놀이'를 보내고 안 반.가.운 <인물 퀴즈>가 돌아왔...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 6, "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.