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_nd82rz41/schedule?date=2026-10-13&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:59 | 최고다 이순신 39회스캔들 기사를 본 순신은 촬영장에서 사람들의 축하인사를 받는 연아를 보며 더 속상해하고, 이런 모습을 본 준호는 변명하려 하지만 순신은 그냥 가버린다. ... | 1h 8m | ||
| 00:07 | 최고다 이순신 40회찬우와 유신의 결혼식날, 길자는 배가 아파 결혼식을 제대로 보지도 못하고, 정애는 창훈의 빈자리가 맘 아프다. 한편, 순신은 미령에게 조금씩 마음을 열기 ... | 1h 8m | ||
| 01:16 | 최고다 이순신 41회연아가 준호와 계속 만나는 것처럼 인터뷰하자 준호는 화를 낸다. 순신의 첫 방송에 가족들은 감동하고, 순신과 준호도 기분 좋게 데이트한다. 박기자는 미령... | 1h 7m | ||
| 02:23 | 최고다 이순신 42회연아는 창훈의 죽음에 대한 조사를 시작한다. 혜신을 두고 싸움이 붙은 재형과 진욱은 경찰서까지 간다. 수정은 순신에게 준호와 헤어지라고 하고, 연아는 미... | 1h 7m | ||
| 03:30 | 최고다 이순신 43회연아가 준호와 계속 만나는 것처럼 인터뷰하자 준호는 화를 낸다. 순신의 첫 방송에 가족들은 감동하고, 순신과 준호도 기분 좋게 데이트한다. 박기자는 미령... | 1h 8m | ||
| 04:38 | 최고다 이순신 44회순신과 박기자가 만났다는 사실에 불안해진 미령은 준호에게 순신과 헤어져달라 부탁한다. 혜신과 진욱의 관계를 의심한 막례는 진욱에게 방을 빼달라고 한다... | 1h 8m | ||
| 05:46 | 최고다 이순신 45회 On now순신 가족들은 창훈의 묘를 찾아간다. 순신은 준호를 그리워하며 마음 아파하고 이에 미령이 위로해주며, 두 사람은 한층 더 가까워진다. 한편, 박기자는 동... | 1h 8m | ||
| 06:54 | 최고다 이순신 46회준호는 동혁이 뺑소니 사고 목격자이며 순신도 알게 되었다는 사실을 듣고 순신을 찾는다. 정애는 재수사가 시작됐단 연락을 받고, 미령은 순신집을 찾아가 ... | 1h 8m | ||
| 08:03 | 최고다 이순신 47회미령이 창훈의 죽음과 미령의 관련사실을 안 막례는 쓰러진다. 우주는 재형을 만나 마지막 인사를 한다. 막례는 미령을 찾아가 한풀이를 하다 순신이 창훈의 ... | 1h 7m |
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_nd82rz41/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_nd82rz41/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_nd82rz41/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_nd82rz41/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_nd82rz41/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_nd82rz41/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_nd82rz41/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_g3qm8v7c", "channel": "ch_nd82rz41", "start": "2026-10-12T13:59:41Z", "stop": "2026-10-12T15:07:59Z", "title": "최고다 이순신 39회", "sub_title": null, "description": "스캔들 기사를 본 순신은 촬영장에서 사람들의 축하인사를 받는 연아를 보며 더 속...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 9, "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.