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-11&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:37 | 신서유기7 8회글로벌 셀럽들의 (한국 속) 해외 투어 레-고! 2층 투어 버스를 타고 세계 곳곳을 누비는데... ※속보※ 강판다, 지구촌 도심 한복판에 낙오되다?! '프랑스 대사... | 1h 37m | ||
| 00:15 | 신서유기7 9회웰컴 투 이태리 '마피아 게임 2차전' 지난주, 허무하게 발각된 마피아 지원! 참아왔던 구美의 본성을 분출하며 마‘피오'와 함께 판을 뒤흔드는데...! 의심과 ... | 1h 37m | ||
| 01:52 | 신서유기7 10회신서유기 깐나 영화제 개최★ 세계적인 영화 배우들, 전격 내한! 느그 서장 친구 강익현, 최단신 외계인 수바타 달나라 라이더 Eun.T., 발차기 전문 조커 캐리... | 1h 43m | ||
| 03:35 | 신서유기7 11회 (최종회)영화의 도시, 밀양에 떨어진 용볼을 찾으러 왔다! 할리우드급 스릴甲 스케일甲 '용볼 대방출' 규현, 시즌 첫 단독 용볼 미션에 도전하다! 창녕 조커의 손에 ... | 1h 32m | ||
| 05:07 | 신서유기8 1회서기 이천이십년, 여섯 요괴들은 영험한 ‘지리산' 자락에서 ‘용볼'의 신묘한 기운이 느껴진다는 소문을 듣게 된다. 더불어 그곳엔 옛날 옛적부터 전해져 온 ... | 1h 46m | ||
| 06:53 | 신서유기8 2회달걀과 하모니카로 떠거운 밤을 보낸 흥부네 다음 날 아침, 의문의 문자 한 통이 전송되는데... 그렇게 시작된 (두둥) <기.상.미.션> (두둥) ‘전생 부부' 수... | 1h 47m | ||
| 08:40 | 신서유기8 3회아직 끝나지 않은 ‘산청 흑돼지' 배 <음악 장학퀴즈> 2탄! ※성급한 투자는 점수 떡락을 불러옵니다※ 큰손 ‘여의도초' 지원의 투자로 성급해진 개미 투자자들!... | 1h 50m | ||
| 10:30 | 신서유기8 4회안 절.거.웠.던(?) ‘훈민정음 윷놀이'를 보내고 안 반.가.운 <인물 퀴즈>가 돌아왔다! “심봤다!” 150만 원을 호가하는 지리산 특산품에 관심 폭발! 대한민국 ... | 1h 49m | ||
| 12:19 | 신서유기8 5회하늘은 높고 호동이(?)는 살찌는 풍요로운 가을~ 여덟 시즌 만에 드디어 <제1회 신서유기 단합대회> 개최! ‘made by 마.멋' 레전드 짤 담긴 단체복부터 평등... | 1h 37m | ||
| 13:56 | 신서유기8 6회서로를 더 알아가고자 열린 '사장님과의 간담회‘ 사우들의 최애 게임으로 간담회 분위기 UP! 생각지도 못한(?) 버저로 돌아온 <제2회 음악 장학퀴즈> 어김없... | 1h 46m | ||
| 15:42 | 신서유기8 7회단합도 식후경, 떡볶이 앞에 장사 없다! <줄줄이 말해요>에 성공하면 꿀맛 토핑 GET! 하지만 오답을 외치면 극악의 ‘빨간 맛' 4종 투입! 호불호 토핑 총집합... | 1h 37m | ||
| 17:19 | 신서유기8 8회투어를 마치고 집으로 행차한 용왕님과 친구들! ‘팔딱팔딱' 추자산 해산물 한 상으로 저녁식사 시... 작! 하기 전에 <훈민정음 2종 놀이> 먼저 가실게요~ 손... | 1h 38m | ||
| 18:57 | 신서유기8 9회신묘한 오감(五感) 게임 보고서 제1감각 시각: <잡아라 고깔 쥐돌이> 특) 추자도에 쥐돌이 6마리 등장 (보 NEW 고깔 쓰고 ‘귀여움 한도 초과' (❁´◡`❁) 대신 ... | 1h 40m | ||
| 20:37 | 신서유기8 10회新별주부전의 최종 목적지, 제주도 도착! 짜장&짬뽕에 서비스 군만두까지 아는 맛 총출동! <이어 말하기>로 단합되면 ALL-IN! 나PD의 “스톱”에 맞서 방구석 ... | 1h 33m | ||
| 22:10 | 신서유기8 11회 (최종회)지리산, 영월, 추자도 그리고 제주도를 지나 <2020 송년의 밤>을 위해 상암에 모인 요괴들! 소소한 근황과 방송 비하인드, 차마 말 못 했던 ‘갬성 자극 속마... | 1h 33m | ||
| 23:43 | 신서유기7 1회서기 이천십구년 가을, '도사들의 성지'라 불리는 '계룡산'에서 '전설의 용볼'이 신묘한 기운을 뿜어내기 시작한다. 어느새 소문은 계룡산을 넘어 세계 각지... | 1h 34m |
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-11&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-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_2nmb1ka7/schedule?date=2026-10-11&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-11&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-11", "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-11, the first programme { "data": [ { "id": "ls_jmgrne45", "channel": "ch_2nmb1ka7", "start": "2026-10-10T13:37:50Z", "stop": "2026-10-10T15:15:04Z", "title": "신서유기7 8회", "sub_title": null, "description": "글로벌 셀럽들의 (한국 속) 해외 투어 레-고! 2층 투어 버스를 타고 세계 곳곳을 ...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 16, "date": "2026-10-11", "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.