73.8M 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 America/New_York 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 America/New_York. The same day from the API: GET /v1/channels/ch_ybmp4568/schedule?date=2026-10-13&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | No SurrenderAn Egyptian police officer named General Yousef al-Masri lives in Karamouz neighborhood in Alexandria. The film dates back to the reign of King Far... | Action, Movie | 2h 15m | |
| 02:15 | Abduction On nowQuinn, a member of a SWAT unit, steps out of a park fountain in an Asian city with no recollection of who he is or where he came from. As he pieces... | Action, Movie | 2h | |
| 04:15 | Triple ThreatThis breakneck thriller teams over half a dozen of the world’s biggest action stars for the martial arts event film of the year. When a hit is take... | Action, Movie | 2h | |
| 06:15 | AvengementWhile released on furlough from prison, a lowly criminal evades his guards and returns to his old haunts to take revenge on the people that made hi... | Action, Movie | 2h | |
| 08:15 | IP Man 4: The FinaleSet during the Korean War, a band of prisoners at a POW camp find distraction from the hardships of war and a new sense of freedom in dancing. | Action, Movie | 2h 15m | |
| 10:30 | RecklessA former convict on parole must outwit the police to get his share of an old heist. | Action, Movie | 2h |
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_ybmp4568/schedule?date=2026-10-13&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_ybmp4568/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_ybmp4568/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_ybmp4568/schedule?date=2026-10-13&tz=America/New_York"); 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_ybmp4568/schedule?date=2026-10-13&tz=America/New_York", { 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_ybmp4568/schedule", params={"date": "2026-10-13", "tz": "America/New_York"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_ybmp4568/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_1crpnd0d", "channel": "ch_ybmp4568", "start": "2026-10-13T04:00:00Z", "stop": "2026-10-13T06:15:00Z", "title": "No Surrender", "sub_title": null, "description": "An Egyptian police officer named General Yousef al-Masri lives in Karamouz ne...", "category": [ "action", "movie" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 6, "date": "2026-10-13", "tz": "America/New_York" } }
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 10 October 2022 | 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 150 countries.