74.3M 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/Santo_Domingo time, what is on now and next, and the same data in your app with one call.
All times America/Santo_Domingo. The same day from the API: GET /v1/channels/ch_f6kbhmgn/schedule?date=2026-10-16&tz=America/Santo_Domingo
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | HunterPart 2 - Overcome with guilt over a recent suicide, McCall quits the force only to be kidnapped. | 1h | ||
| 01:00 | Sanford & SonFred's fighting mad to find that his new neighbor is a Puerto Rican man with a goat. | Sanford & Son | 30m | |
| 01:30 | Sanford & Son#N/A | Sanford & Son | 30m | |
| 02:00 | Sanford & SonLamont seeks employment elsewhere, forcing Fred to find a new partner for the junkyard. | Sanford & Son | 30m | |
| 02:30 | Sanford & SonJuanita returns with a shocking revelation about her daughter, who has sparked a passion in Lamont's heart. | Sanford & Son | 30m | |
| 03:00 | Good TimesIt's the BIG DAY - Thelma walks down the aisle to marry handsome All American football star Keith Anderson. | 30m | ||
| 03:30 | Good TimesThelma's new husband stands to lose his lucrative football contract and J.J. faces the jaws of a loan shark. | 30m | ||
| 04:00 | Catch 21Contestants answer questions in order to build playing card amounts as close as possible to 21. | 30m | ||
| 04:30 | Catch 21Players answer trivia questions to build a hand of cards closest to 21. | 30m | ||
| 05:00 | Catch 21Guests Brandon Barash, Jacklyn Zeman, Melody Thomas Scott and Mikki Padilla. | 30m | ||
| 05:30 | Catch 21Contestants answer questions in order to build playing card amounts as close as possible to 21. | 30m | ||
| 06:00 | Fantasy IslandA man wishes to be king for a day; a grad student is put to the test when she baby-sits her mentor's kids. | 1h | ||
| 07:00 | Fantasy IslandA new lawyer defends himself in a criminal court case; a man wins a date with two gorgeous twin sisters. | 1h | ||
| 08:00 | Fantasy IslandA woman wants to be a famous 1920's torch singer; a gambler's dreams of winning big could cost him his son. | 1h | ||
| 09:00 | DOC - In Your HandsClint suspects a teenager of abusing his father; Crane seeks an appointment to a prestigious editorial board. | DOC - In Your Hands | 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_f6kbhmgn/schedule?date=2026-10-16&tz=America/Santo_Domingo" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_f6kbhmgn/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_f6kbhmgn/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_f6kbhmgn/schedule?date=2026-10-16&tz=America/Santo_Domingo"); 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_f6kbhmgn/schedule?date=2026-10-16&tz=America/Santo_Domingo", { 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_f6kbhmgn/schedule", params={"date": "2026-10-16", "tz": "America/Santo_Domingo"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_f6kbhmgn/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_m8dndpbg", "channel": "ch_f6kbhmgn", "start": "2026-10-16T04:00:00Z", "stop": "2026-10-16T05:00:00Z", "title": "Hunter", "sub_title": null, "description": "Part 2 - Overcome with guilt over a recent suicide, McCall quits the force on...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 15, "date": "2026-10-16", "tz": "America/Santo_Domingo" } }
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.