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.
All times America/New_York. The same day from the API: GET /v1/channels/ch_xqxvnnw7/schedule?date=2026-10-15&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:37 | LassieOperator Jenny forgets messages. | Lassie | 28m | |
| 00:05 | LassieJeff wants a motor for his bike. | Lassie | 28m | |
| 00:33 | LassieGramps is reluctant to use a new tractor. | Lassie | 28m | |
| 01:01 | LassieGramps may hold the deciding vote in a local election. | Lassie | 28m | |
| 01:29 | LassieThe dog of friends mourns for its owners. | Lassie | 28m | |
| 01:57 | LassieGramps must save Lassie from a wolf. | Lassie | 28m | |
| 02:25 | LassieJeff bets that he and Porky can survive in the woods. | Lassie | 27m | |
| 02:52 | LassiePorky runs away to escape unjust punishment. | Lassie | 28m | |
| 03:20 | LassieLassie and a chimp save Gramps' life. | Lassie | 28m | |
| 03:48 | LassieBirds nest in Gramps' mower. | Lassie | 28m | |
| 04:16 | LassieJeff is ashamed of his family. | Lassie | 28m | |
| 04:44 | LassieTimmy and Lassie find ducks mired in a marsh. | Lassie | 28m | |
| 05:12 | LassieA migrant child wants to learn. | Lassie | 28m | |
| 05:40 | LassieGramps' "poor talk" backfires. | Lassie | 28m | |
| 06:08 | LassieJeff and Ellen each think the other is lonely. | Lassie | 28m | |
| 06:36 | LassieJeff and Porky play matchmaker for Gramps. | Lassie | 28m | |
| 07:04 | LassieThe boys and Lassie are trapped in a haunted house. | Lassie | 27m | |
| 07:31 | LassieJeff persuades Gramps to keep the farm after rabbits destroy half the orchard. | Lassie | 28m | |
| 07:59 | LassieLassie misunderstands her watchdog role. | Lassie | 28m | |
| 08:27 | LassieBoys' Day constable Jeff chases bank robbers. | Lassie | 28m | |
| 08:55 | LassieThe Millers take in a runaway (John Provost). | Lassie | 28m | |
| 09:23 | LassieNear death, Timmy refuses to complain. | Lassie | 27m | |
| 09:50 | LassieTimmy loses a tooth and has a bad dream about Lassie. | Lassie | 24m | |
| 10:14 | LassieOn returning from a zoo, the Millers find a chimp in the car. | Lassie | 24m | |
| 10:38 | LassieLassie and Timmy find an abandoned burro. | Lassie | 26m | |
| 11:04 | LassieTimmy eats poison berries. | Lassie | 28m | |
| 11:32 | LassieTimmy blames Lassie for his torn suit. | Lassie | 26m | |
| 11:58 | LassieTimmy raises money to buy a baby elephant for the Capital City Zoo. | Lassie | 27m | |
| 12:25 | LassieLassie befriends a greyhound. | Lassie | 23m | |
| 12:48 | LassieTimmy, Jeff and Lassie bring home a raccoon. | Lassie | 27m | |
| 13:15 | LassieTimmy and Scotty disagree. | Lassie | 24m | |
| 13:39 | LassieThe Martins save Timmy from drowning. | Lassie | 28m | |
| 14:07 | LassieJeff falls for a girl when he sees her dance. | Lassie | 26m | |
| 14:33 | LassieA bike Timmy has borrowed is stolen. | Lassie | 24m | |
| 14:57 | LassieTaking a shortcut, Paul's car runs out of gas. | Lassie | 24m | |
| 15:21 | LassieTimmy hides in a cave to avoid a polio shot. | Lassie | 24m | |
| 15:45 | LassieTimmy thinks he doesn't need a babysitter. | Lassie | 24m | |
| 16:09 | LassieWhen Timmy concocts tales of fairy ponies, Paul blames Uncle Petrie. | Lassie | 26m | |
| 16:35 | LassieTimmy and Scotty enter Sinbad in a parrot contest. | Lassie | 27m | |
| 17:02 | LassieThinking it's a dog, Timmy brings home a wolf cub. | Lassie | 26m | |
| 17:28 | LassieLassie adopts a litter of orphaned puppies. | Lassie | 27m | |
| 17:55 | LassieTimmy is forced to part with Lassie when her original owner claims her. | Lassie | 27m | |
| 18:22 | LassieTimmy wants to protect deer from hunters. | Lassie | 26m | |
| 18:48 | LassieA family of sparrows nests in Timmy's birdhouse. | Lassie | 27m | |
| 19:15 | LassieTimmy refuses to go to a square dance with his family. | Lassie | 26m | |
| 19:41 | LassieLassie finds an injured Seeing Eye dog. | Lassie | 27m |
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_xqxvnnw7/schedule?date=2026-10-15&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_xqxvnnw7/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_xqxvnnw7/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_xqxvnnw7/schedule?date=2026-10-15&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_xqxvnnw7/schedule?date=2026-10-15&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_xqxvnnw7/schedule", params={"date": "2026-10-15", "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_xqxvnnw7/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_br8158gj", "channel": "ch_xqxvnnw7", "start": "2026-10-15T03:37:00Z", "stop": "2026-10-15T04:05:00Z", "title": "Lassie", "sub_title": "Lassie", "description": "Operator Jenny forgets messages.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 46, "date": "2026-10-15", "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 150 countries.