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_bjfvj42t/schedule?date=2026-10-13&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:36 | 나의 해리에게자신의 위태로운 정오뉴스 자리를 위해 현오가 9시 메인 뉴스 앵커 자리를 포기했다는 사실을 알게 된 은호는 현오에게 찾아가 왜 아무 사이도 아닌 구여친을... | 6회 | 1h 14m | |
| 00:50 | 나의 해리에게미디어N서울 체육대회에 간식 지원을 나갔다 주연과 짝피구를 하게 된 혜리! 체육대회에서 그만 실수로 손을 다치게 되는데... 며칠 뒤, 주연은 3사 통합 캠... | 7회 | 1h 6m | |
| 01:56 | 나의 해리에게생방송 전 들은 현오에 대한 소문으로 충격에 휩싸인 은호. 결국 뉴스 진행 중 어처구니 없는 실수를 저지르게 되고, 급기야 모든 방송에서 하차할 위기에 처... | 8회 | 1h 6m | |
| 03:02 | 나의 해리에게그동안 아껴둔 연차를 모두 몰아서 쓰겠다는 말만 남기고 흔적도 없이 사라져 버린 은호! 하염없이 기다려도 더 이상 나타나지 않는 혜리의 부재에 주연은 답... | 9회 | 1h 12m | |
| 04:14 | 나의 해리에게한편, 은호이면서 동시에 혜리인 한 여자를 두고 얽힌 세 남자. 현오, 주연, 지온이 한자리에 모여 각자 자기가 은호의 보호자가 되어야 한다고 옥신각신 다... | 10회 | 1h 23m | |
| 05:37 | 나의 해리에게은호와 현오는 각자의 상처를 품어주며 서로의 진심을 확인한다. 방송국에 복귀한 은호는 어 은호도 현오의 진짜 모습에 다가간다. 과거의 트라우마와 정체성... | 11회 | 1h 15m | |
| 06:52 | 나의 해리에게지하주차장에서 현오를 대신해 피습을 당한 재용은 중환자실로 옮겨지고… 졸지에 공석이 된 PPS 9시 뉴스 메인 앵커 자리! 결국 9시 뉴스 진행에 차질이 생기... | 12회 | 1h 26m | |
| 08:18 | 나의 해리에게 On now14년 차 무명 아나운서 은호와 PPS 간판 아나운서 현오는 8년을 뜨겁게 사내 연애하다 헤어진 사이다. 이별한 지 3년이 지난 지금, 은호와 현오는 회사에서 ... | 1회 | 1h 12m |
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_bjfvj42t/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_bjfvj42t/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bjfvj42t/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_bjfvj42t/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_bjfvj42t/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_bjfvj42t/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_bjfvj42t/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_25y1j7t9", "channel": "ch_bjfvj42t", "start": "2026-10-12T14:36:44Z", "stop": "2026-10-12T15:50:19Z", "title": "나의 해리에게", "sub_title": "6회", "description": "자신의 위태로운 정오뉴스 자리를 위해 현오가 9시 메인 뉴스 앵커 자리를 포기했...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 8, "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.