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_t40jtzyb/schedule?date=2026-10-14&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:20 | 20/2005/06/22: Anthony Harris speaks out about why he confessed to a crime. | 20/20 | 1h 42m | |
| 00:02 | 20/2005/13/22: Serial killer targets women he knows; insight from a profiler. | 20/20 | 1h 43m | |
| 01:45 | 20/2005/20/22: A couple is killed in their home, possibly to hide a secret double life. | 20/20 | 1h 42m | |
| 03:27 | 20/2006/03/22: An interview with a Texas stepmother whose picture-perfect life masked a criminal past. | 20/20 | 1h 41m | |
| 05:08 | 20/2009/16/22: Two go on safari, one returns; an exclusive interview. | 20/20 | 1h 42m | |
| 06:50 | 20/2009/23/22: A man is imprisoned for his wife's murder, but may not be the killer. | 20/20 | 1h 39m | |
| 08:29 | 20/2009/30/22: Never-before-seen police tapes from inside the Sherri Papini case. | 20/20 | 1h 42m | |
| 10:11 | 20/2010/07/22: A teacher disappears, and her 3-year-old is the only eyewitness. | 20/20 | 1h 42m | |
| 11:53 | 20/2010/21/22: An international search for a millionaire suspected in wife's murder. | 20/20 | 1h 42m | |
| 13:35 | 20/2010/28/22: Video evidence leads police to the killer of an Arkansas senator. | 20/20 | 1h 40m | |
| 15:15 | 20/2011/04/22: Decades after Girl Scouts are murdered, police revisit the case. | 20/20 | 1h 43m | |
| 16:58 | 20/2011/11/22: A bible holds the clues in the case of a murdered farmer. | 20/20 | 1h 42m | |
| 18:40 | 20/2011/18/22: When a husband is murdered, his wife and her lover become suspects. | 20/20 | 1h 41m | |
| 20:21 | 20/2011/29/22: A mysterious overdose kills a new mom. Did she leave behind clues? | 20/20 | 54m | |
| 21:15 | 20/2012/02/22: Police launch a nationwide search after a teacher takes a student. | 20/20 | 1h 42m | |
| 22:57 | 20/2012/09/22: An exclusive interview with a fake doctor who hid a deadly secret. | 20/20 | 1h 42m |
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_t40jtzyb/schedule?date=2026-10-14&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_t40jtzyb/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_t40jtzyb/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_t40jtzyb/schedule?date=2026-10-14&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_t40jtzyb/schedule?date=2026-10-14&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_t40jtzyb/schedule", params={"date": "2026-10-14", "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_t40jtzyb/schedule?date=2026-10-14, the first programme { "data": [ { "id": "ls_6pqgy0cw", "channel": "ch_t40jtzyb", "start": "2026-10-14T02:20:00Z", "stop": "2026-10-14T04:02:00Z", "title": "20/20", "sub_title": "20/20", "description": "05/06/22: Anthony Harris speaks out about why he confessed to a crime.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 16, "date": "2026-10-14", "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.