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_ddy8d4x2/schedule?date=2026-10-12&tz=Asia/Seoul
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:49 | SBS 뉴스토리새로운 정통 시사보도 프로그램이다.SBS뉴스토리는 뉴스의 속 얘기를 스토리텔링 방식으로 전하는 | 34m | ||
| 00:24 | SBS 뉴스토리 580회새로운 정통 시사보도 프로그램이다.SBS뉴스토리는 뉴스의 속 얘기를 스토리텔링 방식으로 전하는 | 25m | ||
| 00:48 | SBS 뉴스토리 579회새로운 정통 시사보도 프로그램이다.SBS뉴스토리는 뉴스의 속 얘기를 스토리텔링 방식으로 전하는 | 25m | ||
| 01:13 | SBS 뉴스토리 578회새로운 정통 시사보도 프로그램이다.SBS뉴스토리는 뉴스의 속 얘기를 스토리텔링 방식으로 전하는 | 31m | ||
| 01:44 | 이슈라이브- 반도체 인력 유출이슈라이브- 반도체 인력 유출 | 22m | ||
| 02:05 | 이슈라이브- 오물 테러이슈라이브- 오물 테러 | 38m | ||
| 02:43 | 이슈라이브-AI 탈옥이슈라이브-AI 탈옥 | 33m | ||
| 03:16 | 이슈라이브-흑사병 균 누출이슈라이브-흑사병 균 누출 | 20m | ||
| 03:35 | 이슈라이브-부캉이 자경단이슈라이브-부캉이 자경단 | 19m | ||
| 03:54 | 이슈라이브-길막 마라톤족이슈라이브-길막 마라톤족 | 33m | ||
| 04:27 | 이슈라이브-프랑스 학생 시위이슈라이브-프랑스 학생 시위 | 8m | ||
| 04:35 | 이슈라이브-초코파이 절도 사건이슈라이브-초코파이 절도 사건 | 14m | ||
| 04:49 | SBS 뉴스토리새로운 정통 시사보도 프로그램이다.SBS뉴스토리는 뉴스의 속 얘기를 스토리텔링 방식으로 전하는 | 34m | ||
| 06:00 | 모닝와이드 (1부)명확하게, 깊이 있게, 치우침 없이"매일 아침을 열겠습니다. SBS 모닝와이드" | 25m | ||
| 06:25 | 모닝와이드 (2부)명확하게, 깊이 있게, 치우침 없이"매일 아침을 열겠습니다. SBS 모닝와이드" | 1h 15m | ||
| 07:40 | 모닝와이드 (3부)흥미로운 화제와 알찬 정보가 있는 곳. 모닝와이드많은 시청 부탁 드립니다당신이 알고 싶어하는 모든 정보가 모닝 와이드 안에 있습니다.아침 종합 정보 매... | 1h | ||
| 08:40 | fivegraphfivegraph | 11m | ||
| 08:50 | [비디오머그] 레드 디젤[비디오머그] 레드 디젤 | 4m | ||
| 08:55 | [지식의 발견] 단호한 대응-전인범 전 특전사령관[지식의 발견] 단호한 대응-전인범 전 특전사령관 | 16m | ||
| 09:10 | [비디오머그] 체육계 병역특례[비디오머그] 체육계 병역특례 | 6m | ||
| 09:17 | 뉴스브리핑 인터뷰-신동욱 국민의힘 최고위원뉴스브리핑 인터뷰-신동욱 국민의힘 최고위원 | 15m | ||
| 09:32 | [비디오머그] 궁 입장료[비디오머그] 궁 입장료 | 5m | ||
| 09:37 | 권영인의 문제적 유럽권영인의 문제적 유럽 | 7m | ||
| 09:44 | [지식의 발견] 지뢰 폭발[지식의 발견] 지뢰 폭발 | 10m | ||
| 09:55 | SBS 10 뉴스명확하게, 깊이 있게, 치우침 없이 여러분을 찾아가겠습니다 | 35m | ||
| 10:30 | 모닝와이드 1부(재)명확하게, 깊이 있게, 치우침 없이"매일 아침을 열겠습니다. SBS 모닝와이드" | 25m | ||
| 10:55 | 모닝와이드 2부(재)명확하게, 깊이 있게, 치우침 없이"매일 아침을 열겠습니다. SBS 모닝와이드" | 1h 5m | ||
| 12:00 | SBS 12뉴스명확하게, 깊이 있게, 치우침 없이 여러분을 찾아가겠습니다 | 45m | ||
| 13:20 | SBS 뉴스(1010)(재)명확하게, 깊이 있게, 치우침 없이 여러분을 찾아가겠습니다 | 35m | ||
| 13:55 | SBS 뉴스(1010)(재)명확하게, 깊이 있게, 치우침 없이 여러분을 찾아가겠습니다 | 5m | ||
| 14:00 | 뉴스브리핑명확하게, 깊이 있게, 치우침 없이"깊이있는 뉴스, SBS 뉴스브리핑이 함께합니다" | 1h 30m | ||
| 15:30 | SBS 12뉴스(재)명확하게, 깊이 있게, 치우침 없이 여러분을 찾아가겠습니다 | 45m | ||
| 16:15 | SBS 12뉴스(재)명확하게, 깊이 있게, 치우침 없이 여러분을 찾아가겠습니다 | 45m | ||
| 17:00 | SBS 오뉴스"매일 오후 5시, 여러분을 찾아가겠습니다"명확하게, 깊이 있게, 치우침 없이 | 10m | ||
| 17:10 | 뉴스브리핑(재)명확하게, 깊이 있게, 치우침 없이"깊이있는 뉴스, SBS 뉴스브리핑이 함께합니다" | 1h 30m | ||
| 18:40 | 뉴스브리핑(재)명확하게, 깊이 있게, 치우침 없이"깊이있는 뉴스, SBS 뉴스브리핑이 함께합니다" | 1h 10m | ||
| 19:50 | SBS 8 뉴스"참신한 시선으로 깊이 있는 뉴스를 전하겠습니다"명확하게, 깊이 있게, 치우침 없이 | 1h 10m | ||
| 21:00 | [AFTER 8NEWS] 부캉이[AFTER 8NEWS] 부캉이 | 6m | ||
| 21:05 | [AFTER 8 SPECIAL] 뉴욕 유튜브[AFTER 8 SPECIAL] 뉴욕 유튜브 | 7m | ||
| 21:12 | [AFTER 8 SPECIAL] 히잡 금지[AFTER 8 SPECIAL] 히잡 금지 | 7m | ||
| 21:19 | [AFTER 8 SPECIAL] 수학 난제[AFTER 8 SPECIAL] 수학 난제 | 9m | ||
| 21:28 | [AFTER 8 SPECIAL] 인신매매[AFTER 8 SPECIAL] 인신매매 | 7m | ||
| 21:35 | [AFTER 8NEWS] 뉴욕 유튜브 금지 추진[AFTER 8NEWS] 뉴욕 유튜브 금지 추진 | 7m | ||
| 21:42 | [AFTER 8NEWS] 인신매매 브로커[AFTER 8NEWS] 인신매매 브로커 | 7m | ||
| 21:49 | [AFTER 8NEWS] 미국 중간선거[AFTER 8NEWS] 미국 중간선거 | 7m | ||
| 21:56 | [AFTER 8NEWS][AFTER 8NEWS] | 6m | ||
| 22:02 | [AFTER 8NEWS] 용혜인[AFTER 8NEWS] 용혜인 | 6m | ||
| 22:08 | [AFTER 8NEWS] 부캉이[AFTER 8NEWS] 부캉이 | 6m | ||
| 22:14 | [AFTER 8 SPECIAL] 뉴욕 유튜브[AFTER 8 SPECIAL] 뉴욕 유튜브 | 7m | ||
| 22:21 | [AFTER 8 SPECIAL] 히잡 금지[AFTER 8 SPECIAL] 히잡 금지 | 7m | ||
| 22:27 | [AFTER 8 SPECIAL] 수학 난제[AFTER 8 SPECIAL] 수학 난제 | 9m | ||
| 22:37 | [AFTER 8 SPECIAL] 인신매매[AFTER 8 SPECIAL] 인신매매 | 7m | ||
| 22:44 | [AFTER 8NEWS] 뉴욕 유튜브 금지 추진[AFTER 8NEWS] 뉴욕 유튜브 금지 추진 | 7m | ||
| 22:51 | [AFTER 8NEWS] 인신매매 브로커[AFTER 8NEWS] 인신매매 브로커 | 7m | ||
| 22:58 | [AFTER 8NEWS] 미국 중간선거[AFTER 8NEWS] 미국 중간선거 | 7m | ||
| 23:05 | [AFTER 8NEWS][AFTER 8NEWS] | 6m | ||
| 23:10 | [AFTER 8NEWS] 용혜인[AFTER 8NEWS] 용혜인 | 6m | ||
| 23:17 | [AFTER 8NEWS] 부캉이[AFTER 8NEWS] 부캉이 | 6m | ||
| 23:22 | [AFTER 8 SPECIAL] 뉴욕 유튜브[AFTER 8 SPECIAL] 뉴욕 유튜브 | 7m | ||
| 23:29 | [AFTER 8 SPECIAL] 히잡 금지[AFTER 8 SPECIAL] 히잡 금지 | 7m | ||
| 23:36 | [AFTER 8 SPECIAL] 수학 난제[AFTER 8 SPECIAL] 수학 난제 | 9m | ||
| 23:45 | [AFTER 8 SPECIAL] 인신매매[AFTER 8 SPECIAL] 인신매매 | 7m | ||
| 23:52 | [AFTER 8NEWS] 뉴욕 유튜브 금지 추진[AFTER 8NEWS] 뉴욕 유튜브 금지 추진 | 7m | ||
| 23:59 | [AFTER 8NEWS] 인신매매 브로커[AFTER 8NEWS] 인신매매 브로커 | 7m |
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_ddy8d4x2/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_ddy8d4x2/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_ddy8d4x2/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_ddy8d4x2/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_ddy8d4x2/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_ddy8d4x2/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_ddy8d4x2/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_hthdx4cc", "channel": "ch_ddy8d4x2", "start": "2026-10-11T14:49:54Z", "stop": "2026-10-11T15:24:01Z", "title": "SBS 뉴스토리", "sub_title": null, "description": "새로운 정통 시사보도 프로그램이다.SBS뉴스토리는 뉴스의 속 얘기를 스토리텔링 ...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 64, "date": "2026-10-12", "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.