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_cj11py7k/schedule?date=2026-10-15&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:46 | FelicityA drunken Felicity wakens in a strange place while an unknowing Ben plans her 20th-birthday party. | S3 E5, Surprise | 51m | |
| 00:37 | FelicityNoel is captivated by a gorgeous woman, whom he meets over a defective computer. | S3 E6, One Ball, Two Strikes | 51m | |
| 01:28 | FelicityMr. Covington (John Ritter) turns to Felicity when he realizes Ben will not see him. | S3 E7, Kissing Mr. Covington | 52m | |
| 02:20 | FelicityNoel considers telling Jane about his reading her private e-mail. | S3 E8, A Good Egg | 52m | |
| 03:12 | FelicityMolly's drug-dealing boyfriend (Eddie Cahill) moves in with the girls. | S3 E9, James and the Giant Piece | 51m | |
| 04:03 | FelicityFelicity must absorb a semester's worth of philosophy in three days. | S3 E10, Final Touches (a.k.a. Let's Get It On) | 51m | |
| 04:54 | FelicityBen desperately tries to impress Felicity's mother during a holiday visit. | S3 E11, And to All a Good Night | 50m | |
| 05:44 | FelicityGun shots derail the holiday party, forever affecting the lives of Felicity, Ben and Noel. | S3 E12, Girlfight | 50m | |
| 06:34 | FelicityAn old love and a compelling stranger stir sensibilities in the shadows of a Manhattan blackout. | S3 E13, Blackout | 50m | |
| 07:24 | FelicityBeing secretly wooed by others softens the blow of breaking up for Felicity. | S3 E14, The Break-Up Kit | 51m | |
| 08:15 | FelicityNoel seethes with the knowledge that Ben cheated on Felicity. | S3 E15, Senioritis | 48m | |
| 09:03 | FelicityFelicity begins her senior year feeling directionless, while Ben sets the goal of becoming a doctor. | S4 E1, The Declaration | 50m | |
| 09:53 | FelicityFelicity has doubts when she is asked to perform the nuptial ceremony for two of her friends. | S4 E2, My Best Friend's Wedding | 50m | |
| 10:43 | FelicityFelicity runs into money woes when financial aid will not cover her tuition. | S4 E3, Your Money or Your Wife | 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_cj11py7k/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_cj11py7k/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_cj11py7k/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_cj11py7k/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_cj11py7k/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_cj11py7k/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_cj11py7k/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_gd6x00xk", "channel": "ch_cj11py7k", "start": "2026-10-15T03:46:00Z", "stop": "2026-10-15T04:37:00Z", "title": "Felicity", "sub_title": "Felicity", "description": "A drunken Felicity wakens in a strange place while an unknowing Ben plans her...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 14, "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 155 countries.