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_dz9q6dj1/schedule?date=2026-10-16&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | 붕어낚시의 저력 | 취미/레저, 낚시 | 30m | |
| 00:30 | 일격 나이트호크 | 취미/레저, 낚시 | 30m | |
| 01:00 | 힐링, 낚시 그리고 음악 | 취미/레저, 낚시 | 30m | |
| 01:30 | 자이언트 랍스터 헌터 | 시사/다큐, 일반 | 30m | |
| 02:00 | 조우 | 취미/레저, 낚시 | 30m | |
| 02:30 | 수초와 수초 사이 | 취미/레저, 낚시 | 30m | |
| 03:00 | 파인드 | 취미/레저, 낚시 | 30m | |
| 03:30 | 와노와2 | 취미/레저, 낚시 | 30m | |
| 04:00 | 민물낚시실록 | 취미/레저, 낚시 | 1h | |
| 05:00 | 팔도입질여행기 | 취미/레저, 낚시 | 1h | |
| 06:00 | 풍경이 있는 낚시터 | 취미/레저, 낚시 | 30m | |
| 06:30 | 낚시한마당 | 취미/레저, 낚시 | 1h | |
| 07:30 | 수초와 수초 사이 | 취미/레저, 낚시 | 30m | |
| 08:00 | 월척수배25시 the Live | 취미/레저, 낚시 | 30m | |
| 08:30 | 어장관리 | 취미/레저, 낚시 | 30m | |
| 09:00 | 생활의 달인수십년간 한 분야에 종사하며 부단한 열정과 노력으로 달인의 경지에 이르게 된 사람들. 삶의 스토리와 리얼리티가 담겨 있는 ‘생활 달인’은 그 자체가 다큐... | 교양/정보, 일반 | 1h | |
| 10:00 | DRAG2 | 취미/레저, 낚시 | 30m | |
| 10:30 | 버킷리스트 | 취미/레저, 낚시 | 30m | |
| 11:00 | THE FACT | 취미/레저, 낚시 | 30m | |
| 11:30 | 장어 사냥꾼 | 취미/레저, 낚시 | 30m | |
| 12:00 | 테크니션즈 | 취미/레저, 낚시 | 30m | |
| 12:30 | 오늘의 한판승부 | 취미/레저, 낚시 | 30m | |
| 13:00 | 선 굵은 낚시 | 취미/레저, 낚시 | 30m | |
| 13:30 | 대마도에 산다 3 | 취미/레저, 낚시 | 30m | |
| 14:00 | 집 나오면 고생 | 취미/레저, 낚시 | 1h | |
| 14:30 | 대포붕어 | 취미/레저, 낚시 | 30m | |
| 15:00 | 생활의 달인수십년간 한 분야에 종사하며 부단한 열정과 노력으로 달인의 경지에 이르게 된 사람들. 삶의 스토리와 리얼리티가 담겨 있는 ‘생활 달인’은 그 자체가 다큐... | 교양/정보, 일반 | 1h | |
| 16:00 | 오늘의 키포인트 | 취미/레저, 낚시 | 1h | |
| 17:00 | 블랙캐스트 | 취미/레저, 낚시 | 30m | |
| 17:30 | 대포붕어 | 취미/레저, 낚시 | 30m | |
| 18:00 | 어나더 | 취미/레저, 낚시 | 30m | |
| 18:30 | 낚시가 좋다 | 취미/레저, 낚시 | 30m | |
| 19:00 | 붕어낚시의 미야 | 취미/레저, 낚시 | 30m | |
| 19:30 | 붕어낚시의 저력 | 취미/레저, 낚시 | 30m | |
| 20:00 | 생활의 달인수십년간 한 분야에 종사하며 부단한 열정과 노력으로 달인의 경지에 이르게 된 사람들. 삶의 스토리와 리얼리티가 담겨 있는 ‘생활 달인’은 그 자체가 다큐... | 교양/정보, 일반 | 1h | |
| 21:00 | 외바늘 시즌2 | 취미/레저, 낚시 | 30m | |
| 21:30 | 팀뻐니피싱 | 취미/레저, 낚시 | 30m | |
| 22:00 | 미스터손 | 취미/레저, 낚시 | 30m | |
| 22:30 | 꼬리에 꼬리를 무는 그날 이야기눈길을 사로잡는 그 날, 그 사건으로부터 한 사람의 소시민으로서 '내'가 느낀 바를, 온전히 '나'의 시점에서 주관적으로 전달한다. '너' 에게 꼭 들려주고 ... | 교양/정보, 일반 | 1h 30m |
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_dz9q6dj1/schedule?date=2026-10-16&tz=Asia/Seoul" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_dz9q6dj1/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_dz9q6dj1/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_dz9q6dj1/schedule?date=2026-10-16&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_dz9q6dj1/schedule?date=2026-10-16&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_dz9q6dj1/schedule", params={"date": "2026-10-16", "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_dz9q6dj1/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_3x8ez71n", "channel": "ch_dz9q6dj1", "start": "2026-10-15T15:00:00Z", "stop": "2026-10-15T15:30:00Z", "title": "붕어낚시의 저력", "sub_title": null, "description": null, "category": [ "취미/레저", "낚시" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 39, "date": "2026-10-16", "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 |
|---|---|---|
| 23:49 | 타이밍 | 취미/레저, 낚시 |
| 00:15 | 수초와 수초 사이 | 취미/레저, 낚시 |
| 00:43 | 수초 사이로 | 취미/레저, 낚시 |
| 34 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.
A free key in a minute, with Google. No card. Yesterday and today on every channel in 150 countries.