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. Search any past day on the Archive plan.
All times Asia/Seoul. The same day from the API: GET /v1/channels/ch_2n2aywz6/schedule?date=2026-10-12&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:20 | 금의위:14검의 비밀 | 영화, 액션 | 1h 10m | |
| 00:30 | 라 메종 : 욕망의 늪 | 영화, 드라마 | 50m | |
| 01:20 | 라 메종 : 욕망의 늪 | 영화, 드라마 | 50m | |
| 02:10 | 밤에 피는 그녀 | 영화, 멜로 | 1h 30m | |
| 03:40 | 욕심쟁이 나나 | 영화, 멜로 | 1h 20m | |
| 05:00 | 사랑본섹 | 영화, 멜로 | 1h | |
| 06:00 | 사랑본섹 | 영화, 멜로 | 1h | |
| 07:00 | 하이킥 시즌1하이킥으로 쌈질을 잘하고 모토싸이클 마니아며 학업을 혐오하는 동생 이윤호(정일우)와, 프라모델과 싸이를 즐기는 공부1등 형 이민호(김혜성)는 한살 터울... | 드라마, 시트콤 | 30m | |
| 07:30 | 하이킥 시즌1하이킥으로 쌈질을 잘하고 모토싸이클 마니아며 학업을 혐오하는 동생 이윤호(정일우)와, 프라모델과 싸이를 즐기는 공부1등 형 이민호(김혜성)는 한살 터울... | 드라마, 시트콤 | 30m | |
| 08:00 | 사노라면서민들의 소소하지만 위대한 일상을 통해 삶의 비법을 풀어가는 보통 사람들의 특별한 이야기. 서민들의 소소하지만 위대한 일상을 통해 삶의 비법을 풀어가... | 시사/다큐, 라이프/휴먼 | 1h | |
| 09:00 | 나는 자연인이다자신들만의 방식으로 자연속에서 살아가는 자연인을 찾아가서 그들의 삶을 직접 체험해보는 리얼휴먼스토리. 자신들만의 방식으로 자연속에서 살아가는 자연... | 교양/정보, 일반 | 1h | |
| 10:00 | 나는 자연인이다자신들만의 방식으로 자연속에서 살아가는 자연인을 찾아가서 그들의 삶을 직접 체험해보는 리얼휴먼스토리. 자신들만의 방식으로 자연속에서 살아가는 자연... | 교양/정보, 일반 | 1h | |
| 11:00 | 나는 자연인이다자신들만의 방식으로 자연속에서 살아가는 자연인을 찾아가서 그들의 삶을 직접 체험해보는 리얼휴먼스토리. 자신들만의 방식으로 자연속에서 살아가는 자연... | 교양/정보, 일반 | 1h | |
| 12:00 | 논스톱 | 영화, 액션 | 1h | |
| 13:00 | 논스톱 | 영화, 액션 | 1h | |
| 14:00 | 악인의 최후1967년 작. 1967년 작. | 영화, 드라마 | 50m | |
| 14:50 | 악인의 최후1967년 작. 1967년 작. | 영화, 드라마 | 1h | |
| 15:50 | 특종세상세상곳곳의 놀라운 이야기, 소문 속의 진실, 휴먼 스토리 등 살아 숨쉬는 특종 현장을 보여준다. 세상곳곳의 놀라운 이야기, 소문 속의 진실, 휴먼 스토리 등... | 교양/정보, 일반 | 1h | |
| 16:50 | 특종세상세상곳곳의 놀라운 이야기, 소문 속의 진실, 휴먼 스토리 등 살아 숨쉬는 특종 현장을 보여준다. 세상곳곳의 놀라운 이야기, 소문 속의 진실, 휴먼 스토리 등... | 교양/정보, 일반 | 1h | |
| 17:50 | 스티븐 시걸의 작전명 고스트 | 영화, 액션 | 50m | |
| 18:40 | 스티븐 시걸의 작전명 고스트 | 영화, 액션 | 1h | |
| 19:40 | 호텔 뭄바이모든 것이 완벽한 호텔!사상 최악의 테러가 시작된다! 모든 것이 완벽한 호텔!사상 최악의 테러가 시작된다! | 영화, 미스터리/스릴러 | 1h 10m | |
| 20:50 | 호텔 뭄바이모든 것이 완벽한 호텔!사상 최악의 테러가 시작된다! 모든 것이 완벽한 호텔!사상 최악의 테러가 시작된다! | 영화, 미스터리/스릴러 | 1h 10m | |
| 22:00 | 디어 헌터수상 : 아카데미 작품상 및 감독상, 남우조연상, 음향상, 편집상 철강 노동자였던 젊은이들이 베트남전에 징집되면서 겪는 삶의 파란을 형상화한 대작 전... | 영화, 액션 | 1h | |
| 23:00 | 디어 헌터수상 : 아카데미 작품상 및 감독상, 남우조연상, 음향상, 편집상 철강 노동자였던 젊은이들이 베트남전에 징집되면서 겪는 삶의 파란을 형상화한 대작 전... | 영화, 액션 | 1h |
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_2n2aywz6/schedule?date=2026-10-12&tz=Asia/Seoul" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_2n2aywz6/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_2n2aywz6/history?from=2025-10-12T00:00:00Z&to=2025-10-13T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_2n2aywz6/schedule?date=2026-10-12&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_2n2aywz6/schedule?date=2026-10-12&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_2n2aywz6/schedule", params={"date": "2026-10-12", "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_2n2aywz6/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_rjgqah2c", "channel": "ch_2n2aywz6", "start": "2026-10-11T14:20:00Z", "stop": "2026-10-11T15:30:00Z", "title": "금의위:14검의 비밀", "sub_title": null, "description": null, "category": [ "영화", "액션" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 25, "date": "2026-10-12", "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 | Sunday 12 October 2025 | Category |
|---|---|---|
| Nothing held for that day. Try another date. | ||
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.