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_qh7mmv66/schedule?date=2026-10-13&tz=Europe/Stockholm
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:59 | BeckerMargaret tells John that a letter for a medical conference has arrived, but John scoffs, saying it's just an excuse for doctors to have a weekend i... | A First Class Fight | Series, Comedy | 27m |
| 00:27 | BeckerChris, Jake, Hector, and Linda are at the diner. Chris serves Linda her breakfast as John walks in and tells Linda that she needs to get to the off... | S6 E10, Margaret Sings the Blues | Series, Comedy | 27m |
| 00:54 | BeckerAt the diner, Chris and Jake complain about the cold weather when John walks in, happy because it's cold and flu season, which means more patients. | S6 E11, Snow Means Snow | Series, Comedy | 27m |
| 01:21 | BeckerAt the diner, Jake is looking for someone to go downtown and pick up Stevie Wonder concert tickets for him with no luck. | S6 E12, Subway Story | Series, Comedy | 27m |
| 01:48 | BeckerChris fears that John is going to break up with her after he invites her to dinner at a nice restaurant with no explanation. | S6 E13, D.N.R. | Series, Comedy | 27m |
| 02:15 | BeckerAn enraged and irascible Dr. John Becker (Ted Danson) enters the diner in his typical bad mood and sends the patrons fleeing. | S1 E1, Pilot | Series, Comedy | 27m |
| 02:42 | BeckerBecker enters the diner to find Reggie in a rotten mood. After some prodding, she reveals that her ballplayer boyfriend just dumped her. | S1 E2, Take These Pills and Shove 'Em | Series, Comedy | 27m |
| 03:09 | Becker On nowBecker is bombarded by sexual overtones throughout the day, beginning with a sensual dream that is interrupted by a neighbor's blaring music. | S1 E3, Sex in the Inner City | Series, Comedy | 27m |
| 03:36 | BeckerBecker arrives at the diner to find Reggie and Jake discussing their plans to take a sculpting class. | S1 E4, Tell Me Lies | Series, Comedy | 27m |
| 04:02 | BeckerWhile Becker is at the diner with Jake and Reggie, an odd little man named Bob enters. | S1 E5, My Dinner with Becker | Series, Comedy | 27m |
| 04:29 | BeckerWhile railing on the evils of Beanie Babies, Becker gets annoyed when an overly friendly delivery guy named Todd stops by the diner. | S1 E6, Man Plans, God Laughs | Series, Comedy | 27m |
| 04:56 | BeckerWhen Becker arrives at the diner on Valentine’s Day, he is displeased to find wall-to-wall make-out sessions. | S1 E7, City Lights | Series, Comedy | 27m |
| 05:22 | BeckerBecker is livid when he is awakened by a brightly flickering streetlight outside his window. | S1 E8, Physician, Heal Thyself | Series, Comedy | 27m |
| 05:49 | BeckerBecker throws his back out at home while trying to close a stuck window. | S1 E9, Choose Me | Series, Comedy | 27m |
| 06:16 | BeckerAlready in a bad mood, Becker vents his frustration to a man on his cell phone, whose wife is in labor. | S1 E10, P.C. World | Series, Comedy | 27m |
| 06:43 | BeckerBecker has a fear that midgets bring him bad luck and is spooked by the new water guy, who happens to be vertically challenged. | S1 E11, Scriptus Interruptus | Series, Comedy | 27m |
| 07:09 | BeckerBecker is upset when he learns that his ex-wife has written a pop-psychology book starring him as "Angry Man." | S1 E12, Love! Lies! Bleeding! | Series, Comedy | 27m |
| 07:36 | BeckerA reporter makes trouble for Becker when he writes an article depicting Becker's "non-politically correct" behavior. | S1 E13, Becker the Elder | Series, Comedy | 27m |
| 08:03 | BeckerBecker promises a friend that he will write a medical article for him, but gets frustrated with numerous distractions. | S1 E14, Larry Spoke | Series, Comedy | 27m |
| 08:29 | BeckerBecker learns that an elderly patient, Mr. Fowler, has suffered from a heart attack and calls his daughter to tell her the bad news. | S1 E15, Activate Your Choices | Series, Comedy | 27m |
| 08:56 | BeckerBecker yells at a woman for letting her child cry uncontrollably, then rants about her bad parenting skills. | S1 E16, Limits and Boundaries | Series, Comedy | 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_qh7mmv66/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_qh7mmv66/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_qh7mmv66/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_qh7mmv66/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_qh7mmv66/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_qh7mmv66/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_qh7mmv66/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_bg1yksxf", "channel": "ch_qh7mmv66", "start": "2026-10-12T21:59:45Z", "stop": "2026-10-12T22:27:01Z", "title": "Becker", "sub_title": "A First Class Fight", "description": "Margaret tells John that a letter for a medical conference has arrived, but J...", "category": [ "series", "comedy" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 21, "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.