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_1sfx1a2h/schedule?date=2026-10-13&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 02:10 | 명물인생각자만의 분야에서 오랜 시간과 노력을 기울여 달인의 경지에 오른 우리네 이웃들을 만나 이들의 땀방울과 삶을 들여다본다. | 30m | ||
| 02:40 | 명물인생각자만의 분야에서 오랜 시간과 노력을 기울여 달인의 경지에 오른 우리네 이웃들을 만나 이들의 땀방울과 삶을 들여다본다. | 30m | ||
| 03:10 | 특집아름다운 정읍의 월봉산에 올라가 습지를 거닐며 사람들을 만나보고, 월영습지가 품고 있는 물의 신비를 알아본다. | 신비로운 산책, 월영습지 1부 | 30m | |
| 03:40 | 뽕기충만 전국노래교실연예인 전문 노래 지도 강사로 유명한 박미현과 함께 대한민국을 대표하는 트로트 가수들의 히트곡 부르는 법을 배워본다. | 1h | ||
| 04:40 | 나는 고인물이다1세대부터 MZ세대까지 외국인 방송인들이 참여해 자신의 한국 경험담으로 1위를 겨루며 오디션 프로그램에 우승하기 위해 경쟁을 한다. | 40m | ||
| 05:20 | 나는 고인물이다1세대부터 MZ세대까지 외국인 방송인들이 참여해 자신의 한국 경험담으로 1위를 겨루며 오디션 프로그램에 우승하기 위해 경쟁을 한다. | 40m | ||
| 06:00 | 팔도밥상 플러스전라남도 영암군의 특산물인 고구마와 무화과를 활용해 맛있는 요리를 만들어본다. | 1h | ||
| 07:00 | 눈에 띄는 그녀들 On now눈에 띄는 그녀들 | 1h | ||
| 08:00 | 어디든 간대호아름다운 섬진강의 풍경을 즐길 수 있는 곳, 광양으로 향한다. 광양에서 푸른 자연을 온몸으로 느낄 수 있는 특별한 명소를 방문한다. | 1h 10m |
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_1sfx1a2h/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_1sfx1a2h/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_1sfx1a2h/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_1sfx1a2h/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_1sfx1a2h/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_1sfx1a2h/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_1sfx1a2h/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_njyka5sd", "channel": "ch_1sfx1a2h", "start": "2026-10-12T17:10:00Z", "stop": "2026-10-12T17:40:00Z", "title": "명물인생", "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.