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/Tokyo 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/Tokyo. The same day from the API: GET /v1/channels/ch_x7sk8g7q/schedule?date=2026-10-18&tz=Asia/Tokyo
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:00 | オックスフォードミステリー ルイス警部 シーズン2#2(全4話)【過去との決別】コリン・デクスター原作「主任警部モース」のスピンオフとして制作された大人気英国ミステリー。 | 2h | ||
| 01:00 | 総合診療医 ドクターG 背中が痛む総合診療医が病名を探り当てるまでの謎解きの面白さをスタジオで展開する、新感覚!病名推理エンターテインメント番組。 | 1h | ||
| 02:00 | 花吹雪美人スリ三姉妹#3 砂風呂の指ワザもよろしおすぇ!魅せます指宿湯けむり艶姿京都の美人スリ三姉妹が事件解決へと導いていく大人気シリーズ続編! | 2h | ||
| 04:00 | テレビショッピングおうちでショッピング!毎日選りすぐりの商品をご紹介します。 | 30m | ||
| 04:30 | リマーカブル・リビング 「台湾 伝統と緑にふれて癒される」ほか台湾 伝統と緑にふれて癒される/どの部屋からも絶景が望める家/シンガポールのケーキ専門店 新しい味に挑戦 | 20h 30m |
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_x7sk8g7q/schedule?date=2026-10-18&tz=Asia/Tokyo" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_x7sk8g7q/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_x7sk8g7q/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_x7sk8g7q/schedule?date=2026-10-18&tz=Asia/Tokyo"); 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_x7sk8g7q/schedule?date=2026-10-18&tz=Asia/Tokyo", { 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_x7sk8g7q/schedule", params={"date": "2026-10-18", "tz": "Asia/Tokyo"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_x7sk8g7q/schedule?date=2026-10-18, the first programme { "data": [ { "id": "ls_dj0t7hbt", "channel": "ch_x7sk8g7q", "start": "2026-10-17T14:00:00Z", "stop": "2026-10-17T16:00:00Z", "title": "オックスフォードミステリー ルイス警部 シーズン2#2(全4話)", "sub_title": null, "description": "【過去との決別】コリン・デクスター原作「主任警部モース」のスピンオフとして制...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 5, "date": "2026-10-18", "tz": "Asia/Tokyo" } }
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 |
|---|---|---|
| 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.