73.8M 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. Search any past day on the Archive plan.
All times Asia/Seoul. The same day from the API: GET /v1/channels/ch_drmymbj9/schedule?date=2026-10-18&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:00 | SUMBAKKOKJIL 2 | 연예/오락, 일반 | 1h 20m | |
| 00:20 | 무쇠소녀단2 | 연예/오락, 일반 | 2h | |
| 02:20 | EVNNE Hour | 연예/오락, 일반 | 1h 10m | |
| 03:30 | Music Express음악매니아들을 위해 새벽시간대 VJ멘트 없이 최신 가요부터 2,3년전 가요까지 다양한 뮤직비디오 방영 | 음악, 대중가요 | 50m | |
| 04:20 | 빌드업 : 보컬 보이그룹 서바이벌 | 연예/오락, 선발대회 | 1h 50m | |
| 06:10 | KickFlip COMEBACK STAGE : KICK OFF THE WALL Pt.1 | 음악, 일반 | 50m | |
| 07:00 | M COUNTDOWN전 세계가 함께하는 World No.1 K-POP Chart Show 가요 트렌드를 이끄는 대한민국 대표 가수들을 만날 수 있는 K-POP Chart Show 엠카운트다운! Mnet... | 음악, 가요순위쇼 | 1h 50m | |
| 08:50 | 스트릿 월드 파이터 : 디렉터스 워 | 연예/오락, 일반 | 2h 20m | |
| 11:10 | 스트릿 월드 파이터 : 디렉터스 워 | 연예/오락, 일반 | 3h | |
| 14:10 | 스트릿 월드 파이터 : 디렉터스 워 | 연예/오락, 일반 | 2h 10m | |
| 16:20 | 뿅뿅 지구오락실 3지구로 재 탈출한 토롱이를 잡기 위해 경력직 지구 용사 4인방이 다시 한번 뭉쳤다! 겨울왕국 '핀란드'와 신들의 섬 '발리'에서 펼쳐지는 지구 용사즈의 예측... | 연예/오락, 버라이어티 | 2h 10m | |
| 18:30 | 놀라운 토요일토요일 저녁! 가족이 모여 함께 즐길 수 있는 예능 프로그램 | 연예/오락, 일반 | 1h 40m | |
| 20:10 | IDOL'S TABLE | 연예/오락, 토크쇼 | 1h | |
| 21:10 | 스트릿 월드 파이터 : 디렉터스 워 스테이지.zip | 연예/오락, 일반 | 1h 10m | |
| 22:20 | 요리는 괴로워 | 연예/오락, 일반 | 1h 30m | |
| 23:50 | SUMBAKKOKJIL 2 | 연예/오락, 일반 | 1h 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_drmymbj9/schedule?date=2026-10-18&tz=Asia/Seoul" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_drmymbj9/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_drmymbj9/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_drmymbj9/schedule?date=2026-10-18&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_drmymbj9/schedule?date=2026-10-18&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_drmymbj9/schedule", params={"date": "2026-10-18", "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_drmymbj9/schedule?date=2026-10-18, the first programme { "data": [ { "id": "ls_acyrt85j", "channel": "ch_drmymbj9", "start": "2026-10-17T14:00:00Z", "stop": "2026-10-17T15:20:00Z", "title": "SUMBAKKOKJIL 2", "sub_title": null, "description": null, "category": [ "연예/오락", "일반" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 16, "date": "2026-10-18", "tz": "Asia/Seoul" } }
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 |
|---|---|---|
| 22:00 | BOYS II PLANET | 연예/오락, 선발대회 |
| 01:00 | BOYS II PLANET | 연예/오락, 선발대회 |
| 03:00 | Music Express | 음악, 대중가요 |
| 17 more programmes that day, on Archive | ||
8 calls cover a channel from its details to its past. Each one opens in the documentation with Try it.