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_pgptct3s/schedule?date=2026-10-12&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:16 | HeartlandOlivia complicates Amy's plans to help Georgie with an impending departure. | Heartland | 50m | |
| 00:06 | HeartlandAmy and Ty try to find out why Caleb's horse is ill. | Heartland | 50m | |
| 00:56 | HeartlandWhile the family looks for Georgie, she questions her decision to run away. | Heartland | 50m | |
| 01:46 | HeartlandWhen Ty helps Jack and Tim on a cattle drive, an accident jeopardizes their plans. | Heartland | 50m | |
| 02:36 | HeartlandTim asks Amy and Georgie for help to discourage Jade from accepting a suspicious sponsorship deal. | Heartland | 50m | |
| 03:26 | HeartlandAmy and Cass try to save a racehorse with a career-ending condition. | Heartland | 50m | |
| 04:16 | HeartlandGeorgie is inspired by her school project to take a risk with Adam. | Heartland | 48m | |
| 05:04 | HeartlandLou must contend with the new ranch hand and a threatening food truck. | Heartland | 56m | |
| 06:00 | HeartlandLou is trapped at the ranch with the new ranch hand, Mitch. | Heartland | 46m | |
| 06:46 | HeartlandWhen Amy helps Cass handle a spirited horse, a lot rides on their success. | Heartland | 50m | |
| 07:36 | HeartlandAmy and Ty celebrate their anniversary. | Heartland | 50m | |
| 08:26 | HeartlandAmy and Ty work to resolve a dangerous pregnancy issue. | Heartland | 50m | |
| 09:16 | HeartlandTy performs surgery on a mare, while Amy and the family work to bottle-feed its twin foals. | Heartland | 49m | |
| 10:05 | HeartlandTim gets caught in the middle of Jade's feud with a new bronco rider. | Heartland | 20m | |
| 10:25 | HeartlandThe Heartland family must deal with Amy and Ty's decision about their future. | Heartland | 50m | |
| 11:15 | HeartlandWhen one of Tim’s team-building events turns competitive, Georgie gets stuck partnering with Jade’s rival. | Heartland | 50m | |
| 12:05 | HeartlandWhile helping a mounted archer, Amy reveals the mystery behind Spartan's behavior. | Heartland | 50m | |
| 12:55 | HeartlandAmy helps her sister connect with a new horse. | Heartland | 50m | |
| 13:45 | HeartlandJack discovers the true reason for his friend's visit. | Heartland | 51m | |
| 14:36 | HeartlandThings turn dangerous for Amy, Tim and Georgie at a horse clinic. | Heartland | 50m | |
| 15:26 | HeartlandAmy tries to free a horse from a trailer; Georgie searches for Tim. | Heartland | 50m | |
| 16:16 | HeartlandAmy steps in to help Georgie with a new challenge. | Heartland | 50m | |
| 17:06 | HeartlandAmy and Georgie work to help a traumatized barrel-racing horse. | Heartland | 50m | |
| 17:56 | HeartlandAn unexpected guest arrives which makes Amy and Jack question the reason behind the visit. | Heartland | 50m | |
| 18:46 | HeartlandMallory is forced to admit the real reason she returned to Heartland. | Heartland | 50m | |
| 19:36 | Heartland On nowAmy has the feeling that something isn't right with Ty; Jack and Amy try to help the ghost horse. | Heartland | 50m | |
| 20:26 | HeartlandJack's secret could change his relationship with the family. | Heartland | 50m | |
| 21:16 | HeartlandWhen Ty is admitted to the hospital, Amy and the family come together. | Heartland | 50m | |
| 22:06 | HeartlandThe Heartland family welcomes a new member. | Heartland | 50m | |
| 22:56 | HeartlandTy struggles when his mom makes an unexpected visit in hopes of bonding with her granddaughter. | Heartland | 50m | |
| 23:46 | HeartlandThe family supports Georgie as she decides whether to face a ghost from her past. | Heartland | 50m |
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_pgptct3s/schedule?date=2026-10-12&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_pgptct3s/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_pgptct3s/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_pgptct3s/schedule?date=2026-10-12&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_pgptct3s/schedule?date=2026-10-12&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_pgptct3s/schedule", params={"date": "2026-10-12", "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_pgptct3s/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_1r109adq", "channel": "ch_pgptct3s", "start": "2026-10-12T03:16:00Z", "stop": "2026-10-12T04:06:00Z", "title": "Heartland", "sub_title": "Heartland", "description": "Olivia complicates Amy's plans to help Georgie with an impending departure.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 31, "date": "2026-10-12", "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.