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 America/New_York time, what is on now and next, and the same data in your app with one call.
All times America/New_York. The same day from the API: GET /v1/channels/ch_5vkp8p9h/schedule?date=2026-10-13&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:39 | It Lives AgainA couple discover the baby they're expecting may be born a bloodthirsty monster. | 1h 47m | ||
| 00:26 | Altered StatesThe most terrifying experiment in the history of science is out of control... and the subject is himself. | 1h 51m | ||
| 02:17 | Deadly FriendWhen a teenage genius implants computer chips into a comatose girl's brain, she goes on a revenge spree. | 1h 46m | ||
| 04:03 | The FollowingRyan seeks out an old enemy in the hopes of defeating a greater one. | 52m | ||
| 04:55 | The FollowingIn a thrilling episode, Michael Ealy joins the cast. | 50m | ||
| 05:45 | The FollowingWith only a few days before Joe Carroll's execution, Ryan and Mike focus on a new threat. | 50m | ||
| 06:34 | The FollowingRyan Hardy takes matters into his own hands. | 50m | ||
| 07:24 | The FollowingRyan finds himself being tracked by the new killer. | 50m | ||
| 08:14 | The FollowingWith Joe Carroll's execution day upon them, a hostage situation at the prison forces Ryan to go in alone. | 50m | ||
| 09:04 | The FollowingThe investigation narrows in on someone from Theo's past. | 51m | ||
| 09:56 | The FollowingMark and Daisy close in on Mike Weston. | 50m | ||
| 10:46 | The FollowingA deadly deal is made, but things don't go as planned, while Ryan makes a decision for his future. | 50m | ||
| 11:36 | The FollowingThe FBI hunt for Theo continues, as some of the bureau's agents are attacked. | 49m | ||
| 12:24 | The FollowingSuspicions grow, alliances break, and no one is safe in the harrowing, heart-stopping moments of the finale. | 52m | ||
| 13:16 | Max HeadroomWhile investigating the side effects of blipverts on viewers, Edison has an accident and meets Max Headroom. | 54m | ||
| 14:10 | Max HeadroomTheora's brother joins an illegal sport called raking, which Network 23 wants to include in its schedule. | 55m | ||
| 15:05 | Max HeadroomA girl with a rare blood type is captured by a body bank that provides parts for surgery. | 55m | ||
| 16:00 | Max HeadroomEdison investigates who's buying so much of the Security Systems Inc. stock and gets accused of credit fraud. | 56m | ||
| 16:57 | Max HeadroomEdison investigates acts of terrorism being utilized to boost the ratings of a rival network's news program. | 54m | ||
| 17:51 | Max HeadroomWhen a group of people with no computer records are arrested, they take over the city's computer control. | 54m | ||
| 18:45 | Dead LastThree failed rock musicians being their strangest gig - helping spirits resolve unfinished business on earth. | 50m | ||
| 19:35 | Dead LastIn New York City, countless ghosts need the bandmates' help - including a spirit who once mugged Dennis. | 49m |
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_5vkp8p9h/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_5vkp8p9h/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_5vkp8p9h/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_5vkp8p9h/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_5vkp8p9h/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_5vkp8p9h/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_5vkp8p9h/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_fw5nczmw", "channel": "ch_5vkp8p9h", "start": "2026-10-13T02:39:55Z", "stop": "2026-10-13T04:26:36Z", "title": "It Lives Again", "sub_title": null, "description": "A couple discover the baby they're expecting may be born a bloodthirsty monster.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 22, "date": "2026-10-13", "tz": "America/New_York" } }
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.