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_g507481r/schedule?date=2026-10-18&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:30 | 타짜도박판에 전부를 건 전문도박꾼들, 일명 '타짜'들의 화려한 기술과 끝없는 욕망을 그려 선풍적 인기를 끌었던 허영만의 동명 만화를 영화화한 작품. | 영화, 드라마 | 1h 30m | |
| 01:00 | 둠 | 영화, 환상/sf | 1h 50m | |
| 02:50 | 스내치가이 리치 감독 특유의 무수한 캐릭터와 재치있는 대사, 계속 얽히게 되는 사건사고들이 재미를 더하는 작품. 86캐럿짜리 다이아몬드를 둘러싼 갱들간의 속고... | 영화, 코미디 | 1h 50m | |
| 04:40 | 더 폰 | 영화, 미스터리/스릴러 | 2h 10m | |
| 06:50 | 위험한 상견례 2경찰가문의 막내딸과 도둑집안의 외동아들의 결혼을 막기 위한 두 집안의 대대적인 결혼 결사반대 프로젝트를 그린 코미디 | 영화, 코미디 | 2h 10m | |
| 09:00 | 광해, 왕이 된 남자독살 위기에 놓인 광해를 대신해 왕 노릇을 하게 된 천민이 진정한 군주로 변모하는 모습을 유머와 감동으로 그려낸 명품 시대극 | 영화, 드라마 | 2h 30m | |
| 11:30 | 왕과 사는 남자 | 영화, 드라마 | 2h 20m | |
| 13:50 | 스즈메의 문단속:다녀왔어한 소녀가 우연히 만난 청년과 재난의 문을 닫는 모험에 뛰어들게 되는 이야기를 다룬 애니메이션 영화 | 영화, 애니메이션 | 2h 20m | |
| 16:10 | 1승 | 영화, 드라마 | 2h 10m | |
| 18:20 | 정보원 | 영화, 코미디 | 2h | |
| 20:20 | 마녀 Part2. The Other One모든 것의 시작, 더욱 거대하고 강력해진 마녀가 온다. | 영화, 액션 | 2h 40m | |
| 23:00 | 야당: 익스텐디드 컷 | 영화, 액션 | 4h 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_g507481r/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_g507481r/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_g507481r/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_g507481r/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_g507481r/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_g507481r/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_g507481r/schedule?date=2026-10-18, the first programme { "data": [ { "id": "ls_ttbxtt8c", "channel": "ch_g507481r", "start": "2026-10-17T14:30:00Z", "stop": "2026-10-17T16:00:00Z", "title": "타짜", "sub_title": null, "description": "도박판에 전부를 건 전문도박꾼들, 일명 '타짜'들의 화려한 기술과 끝없는 욕망을 ...", "category": [ "영화", "드라마" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 12, "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 |
|---|---|---|
| 23:00 | 야당 | 영화, 미스터리/스릴러 |
| 01:20 | 데스티네이션 | 영화, 공포 |
| 03:00 | 나쁜 녀석들:악의 도시 | 드라마, 액션 |
| 11 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 155 countries.