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 Europe/Stockholm time, what is on now and next, and the same data in your app with one call.
All times Europe/Stockholm. The same day from the API: GET /v1/channels/ch_rp8pypf4/schedule?date=2026-10-13&tz=Europe/Stockholm
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:12 | Star Trek: Deep Space Nine: Shadows And SymbolsSisko's quest to find a mythical Bajoran orb leads him to unlock the truth about his own existence. | Shadows And Symbols | Science fiction, Series | 53m |
| 00:05 | Star Trek: Deep Space Nine: DuetKira discovers that a Cardassian visiting the station could actually be a notorious war criminal. | Duet | Science fiction, Series | 51m |
| 00:56 | Star Trek: Deep Space Nine: CrossoverA mishap in the wormhole sends Kira and Bashir into an alternate universe where Bajor is a tyrannical power and humans are slaves. | Crossover | Science fiction, Series | 51m |
| 01:47 | Star Trek: Deep Space Nine: Second SkinKira is kidnapped by the Cardassians, who try to convince her that she is really one of their people. | Second Skin | Science fiction, Series | 51m |
| 02:38 | Star Trek: Deep Space Nine: Defiant On nowWil Riker's renegade duplicate steals the Defiant and attacks Cardassian territory, forcing Sisko to assist Gul Dukat in stopping him. | Defiant | Science fiction, Series | 51m |
| 03:29 | Star Trek: Deep Space Nine: Life SupportBashir must use questionable methods in order to keep Vedek Bareil alive long enough to help bring about a Bajoran peace treaty with Cardassia. | Life Support | Science fiction, Series | 51m |
| 04:20 | Star Trek: Deep Space Nine: Ties Of Blood And WaterThe imminent death of Kira's Cardassian "father" rekindles painful memories of losing her real father | Ties Of Blood And Water | Science fiction, Series | 51m |
| 05:11 | Star Trek: Deep Space Nine: Rocks And ShoalsSisko and his crew are stranded on a remote planet with a dying Vorta and a small group of Jem'Hadar. | Rocks And Shoals | Science fiction, Series | 51m |
| 06:02 | Star Trek: Deep Space Nine: His WayOdo receives lessons in romancing Kira from a holographic 1960's lounge singer. | His Way | Science fiction, Series | 51m |
| 06:53 | Star Trek: Deep Space Nine: Shadows And SymbolsSisko's quest to find a mythical Bajoran orb leads him to unlock the truth about his own existence. | Shadows And Symbols | Science fiction, Series | 53m |
| 07:46 | Star Trek: Deep Space Nine: DuetKira discovers that a Cardassian visiting the station could actually be a notorious war criminal. | Duet | Science fiction, Series | 51m |
| 08:37 | Star Trek: Deep Space Nine: CrossoverA mishap in the wormhole sends Kira and Bashir into an alternate universe where Bajor is a tyrannical power and humans are slaves. | Crossover | Science fiction, Series | 51m |
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_rp8pypf4/schedule?date=2026-10-13&tz=Europe/Stockholm" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_rp8pypf4/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_rp8pypf4/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_rp8pypf4/schedule?date=2026-10-13&tz=Europe/Stockholm"); 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_rp8pypf4/schedule?date=2026-10-13&tz=Europe/Stockholm", { 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_rp8pypf4/schedule", params={"date": "2026-10-13", "tz": "Europe/Stockholm"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_rp8pypf4/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_k2ht20ac", "channel": "ch_rp8pypf4", "start": "2026-10-12T21:12:16Z", "stop": "2026-10-12T22:05:16Z", "title": "Star Trek: Deep Space Nine: Shadows And Symbols", "sub_title": "Shadows And Symbols", "description": "Sisko's quest to find a mythical Bajoran orb leads him to unlock the truth ab...", "category": [ "science fiction", "series", "classic sci-fi & fantasy" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 12, "date": "2026-10-13", "tz": "Europe/Stockholm" } }
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.