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/Kolkata time, what is on now and next, and the same data in your app with one call.
All times Asia/Kolkata. The same day from the API: GET /v1/channels/ch_ha2mvxzc/schedule?date=2026-10-13&tz=Asia/Kolkata
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:17 | Moon embracing the sun Ep.14Late at night, Hwon visits Wol in her prison cell and coldly orders her to distance herself from him. Yet as Wol is being transferred to the Bureau... | 1h 10m | ||
| 00:27 | Moon embracing the sun Ep.15With all her memories restored, Yeonwoo meets Seol and asks about what truly happened the day she underwent the shamanic initiation rite. Meanwhile... | 1h 9m | ||
| 01:37 | Moon embracing the sun Ep.16Upon seeing Wol, Bogyeong panics, convinced that the supposedly dead Yeonwoo has returned. Although Yeonwoo comes face to face with Hwon, she choos... | 1h 9m | ||
| 02:45 | Moon embracing the sun Ep.17With the mystery finally unraveled, Hwon rushes to the Bureau of Beneficence to find Yeonwoo—only for assassins to suddenly appear. In the chaos, Y... | 1h 9m | ||
| 03:54 | Moon embracing the sun Ep.18Hwon learns from Hong Gyu-tae that Princess Minhwa was involved in the death of the Crown Princess. Meanwhile, Yeonwoo, who remains by Hwon's side,... | 1h 9m | ||
| 05:03 | Moon embracing the sun Ep.19On her way to warn Hwon of an impending rebellion, Bogyeong witnesses him sharing a tender moment with Yeonwoo. Driven by jealousy and fear, Bogyeo... | 1h 9m | ||
| 06:12 | Moon embracing the sun Ep.20 On nowAs Hwon heads toward the Royal Ancestral Shrine, he is surrounded by Yoon Daehyeong's private soldiers. Leading the rebel forces, Yangmyung raises ... | 1h 8m | ||
| 07:20 | Golden Time Ep.1While seeing off Jaein—the girlfriend of his senior colleague— Minwoo witnesses the aftermath of a massive ten-car pileup. Though Minwoo is a docto... | 1h 11m | ||
| 08:31 | Golden Time Ep.2Jaein comforts Minwoo as he struggles with guilt over a patient's death, and Minwoo decides to apply for an internship at the hospital. On their ve... | 1h 11m | ||
| 09:42 | Golden Time Ep.3Just as the team breathes a sigh of relief after stabilizing a critically ill VIP patient's bleeding, an offhand question from Minwoo prompts Inhyu... | 1h 11m |
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_ha2mvxzc/schedule?date=2026-10-13&tz=Asia/Kolkata" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_ha2mvxzc/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_ha2mvxzc/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_ha2mvxzc/schedule?date=2026-10-13&tz=Asia/Kolkata"); 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_ha2mvxzc/schedule?date=2026-10-13&tz=Asia/Kolkata", { 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_ha2mvxzc/schedule", params={"date": "2026-10-13", "tz": "Asia/Kolkata"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_ha2mvxzc/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_t7sd3dpn", "channel": "ch_ha2mvxzc", "start": "2026-10-12T17:47:55Z", "stop": "2026-10-12T18:57:54Z", "title": "Moon embracing the sun Ep.14", "sub_title": null, "description": "Late at night, Hwon visits Wol in her prison cell and coldly orders her to di...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 10, "date": "2026-10-13", "tz": "Asia/Kolkata" } }
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.