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. Search any past day on the Archive plan.
All times America/New_York. The same day from the API: GET /v1/channels/ch_y0xqt264/schedule?date=2026-10-11&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Quantum LeapOn Christmas Eve, Sam has the opportunity to save a center for the homeless from demolition. | 1h | ||
| 01:00 | Quantum LeapSam leaps into the body of a 13 year old, who must keep his mother from running out on her family. | 1h | ||
| 02:00 | RenegadeReno's vacation in Las Vegas is derailed when Bobby enlists him to track down a bail jumper. | 1h | ||
| 03:00 | RenegadeFor Reno Raines, taking refuge in a small-town saloon becomes hazerdous. | 1h | ||
| 04:00 | America Says"Sorority Sisters vs. The Monteses" Two teams guess how America filled in the blanks on survey questions. | 30m | ||
| 04:30 | America Says"The Lady Wrestlers vs. Faculty Lounge" Two teams guess how America filled in the blanks on survey questions. | 30m | ||
| 05:00 | Common Knowledge"Choral Singers vs. Parent Teachers" Two teams compete to answer questions that everyone should know. | 30m | ||
| 05:30 | Common Knowledge"Freed Family vs. Pickle Ball Crew" Two teams compete to answer practical questions that everyone should know. | 30m | ||
| 06:00 | Hart to HartA suspicious invitation to the wedding of Jonathan's former girlfriend exposes an extortion scheme. | 1h | ||
| 07:00 | Hart to HartThe death of a local importer draws the Harts into the battle over a valuable Chinese artifact. | 1h | ||
| 08:00 | Hart to HartAn artist's premature death exposes a collector's scheme to increase the value of his own collection. | 1h | ||
| 09:00 | Good TimesWhile food shopping, Florida is chosen to become a spokesperson for Vita Brite, a new health tonic. | 30m | ||
| 09:30 | Good TimesThe kids fear their father's suffering from hypertension, but struggle to convince him to see a doctor. | 30m | ||
| 10:00 | Good TimesThe Evans women are suspicious of J.J.'s new girlfriend, but he's oblivious to her ulterior motives. | 30m | ||
| 10:30 | Good TimesFlorida goes to a woman's support group because she wants more than just taking care of the house and family. | 30m | ||
| 11:00 | Sanford and SonLamont's headache drives him to the psychologist's couch, the cause is the pain in the neck he lives with. | 30m | ||
| 11:30 | Sanford and SonFred and his professional gambler friend play a prank on Lamont and his poker pals. | 30m | ||
| 12:00 | Sanford and SonFred and Grady don disguises to discover the cougar who has her claws in Lamont's heart. | 30m | ||
| 12:30 | Sanford and SonLamont misunderstands the doctor and believes Fred has only six months to live and lavishes kindness upon him. | 30m | ||
| 13:00 | 21 Jump StreetHanson, Penhall, and Ioki investigate a rash of brutal assaults on gay men. | 1h | ||
| 14:00 | 21 Jump StreetOfficer Hanson is kidnapped endangering his life and that of a Hollywood heartthrob he was sent to protect. | 1h | ||
| 15:00 | HunterHunter & McCall post a fictitious conclusion to the infamous Black Dahlia murder case. | 1h | ||
| 16:00 | HunterHunter and McCall investigate the death of a movie star and encounter a sibling hungry for the inheritance. | 1h | ||
| 17:00 | The Rockford FilesRockford investigates after his father, Rocky, vacationing in Hawaii, receives huge sums of money in the mail. | 1h | ||
| 18:00 | The Rockford FilesRockford returns from vacation and discovers someone has assumed his identity. | 1h | ||
| 19:00 | Walker, Texas RangerPart 1 - Walker and Trivette protect a Mexican presidential candidate from an assassin hired by a drug-lord. | 1h | ||
| 20:00 | Walker, Texas RangerPart 2 - After the assassin kidnaps the presidential candidate, Walker must disregard orders to save the day. | 1h | ||
| 21:00 | Walker, Texas RangerAn escaped convict turns mad bomber to take his revenge on those responsible for sending him to prison. | 1h | ||
| 22:00 | Walker, Texas RangerPosing as a cocaine dealer, Walker teams with an undercover Miami police officer to catch a drug kingpin. | 1h | ||
| 23:00 | Quantum LeapSam becomes an unwed pregnant 16 year old who faces a difficult decision about her baby's future. | 1h |
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_y0xqt264/schedule?date=2026-10-11&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_y0xqt264/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_y0xqt264/history?from=2026-03-01T00:00:00Z&to=2026-03-02T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_y0xqt264/schedule?date=2026-10-11&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_y0xqt264/schedule?date=2026-10-11&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_y0xqt264/schedule", params={"date": "2026-10-11", "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_y0xqt264/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_wr3qbq46", "channel": "ch_y0xqt264", "start": "2026-10-11T04:00:00Z", "stop": "2026-10-11T05:00:00Z", "title": "Quantum Leap", "sub_title": null, "description": "On Christmas Eve, Sam has the opportunity to save a center for the homeless f...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 30, "date": "2026-10-11", "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 | Sunday 1 March 2026 | Category |
|---|---|---|
| 01:00 | Quantum Leap | Series, Drama |
| 02:00 | Quantum Leap | Series, Drama |
| 03:00 | Quincy, M.E. | Series, Crime drama |
| 24 more programmes that day, on Archive | ||
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.