76.4M 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-16&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:20 | HeartlandAfter Georgie receives devastating news from Lou and Peter, the family attempts to support her. | Heartland | 50m | |
| 00:10 | HeartlandLou takes charge of the preparations for the big day; Amy attempts to domesticate a rescue horse. | Heartland | 50m | |
| 01:00 | HeartlandLou deals with last minute obstacles in an attempt to give Amy and Ty the perfect wedding. | Heartland | 52m | |
| 01:52 | HeartlandA bear lurks near Heartland; Amy and Georgie rescue an injured horse. | Heartland | 50m | |
| 02:42 | HeartlandTy prepares to celebrate a milestone; Ty and Amy treat an abandoned horse. | Heartland | 50m | |
| 03:32 | HeartlandGeorgie gets help performing a trick for the rodeo from Amy, but gets pulled away by Lou and Peter. | Heartland | 51m | |
| 04:23 | HeartlandJack struggles with the imminent loss of a friend. | Heartland | 50m | |
| 05:13 | HeartlandAmy and Georgie prepare for a cowboy competition and Jack is convinced to help Georgie train. | Heartland | 50m | |
| 06:03 | HeartlandTy and Amy try to rescue an injured eagle in the mountains. | Heartland | 50m | |
| 06:53 | HeartlandAmy helps a medieval jouster regain his confidence to compete again. | Heartland | 40m | |
| 07:33 | HeartlandOlivia complicates Amy's plans to help Georgie with an impending departure. | Heartland | 50m | |
| 08:23 | HeartlandAmy and Ty try to find out why Caleb's horse is ill. | Heartland | 50m | |
| 09:13 | HeartlandWhile the family looks for Georgie, she questions her decision to run away. | Heartland | 50m | |
| 10:03 | HeartlandWhen Ty helps Jack and Tim on a cattle drive, an accident jeopardizes their plans. | Heartland | 50m | |
| 10:53 | HeartlandTim asks Amy and Georgie for help to discourage Jade from accepting a suspicious sponsorship deal. | Heartland | 50m | |
| 11:43 | HeartlandAmy and Cass try to save a racehorse with a career-ending condition. | Heartland | 50m | |
| 12:33 | HeartlandGeorgie is inspired by her school project to take a risk with Adam. | Heartland | 47m | |
| 13:20 | HeartlandLou must contend with the new ranch hand and a threatening food truck. | Heartland | 52m | |
| 14:12 | HeartlandLou is trapped at the ranch with the new ranch hand, Mitch. | Heartland | 51m | |
| 15:03 | HeartlandWhen Amy helps Cass handle a spirited horse, a lot rides on their success. | Heartland | 50m | |
| 15:53 | HeartlandAmy and Ty celebrate their anniversary. | Heartland | 50m | |
| 16:43 | HeartlandAmy and Ty work to resolve a dangerous pregnancy issue. | Heartland | 50m | |
| 17:33 | HeartlandTy performs surgery on a mare, while Amy and the family work to bottle-feed its twin foals. | Heartland | 49m | |
| 18:22 | HeartlandTim gets caught in the middle of Jade's feud with a new bronco rider. | Heartland | 20m | |
| 18:42 | HeartlandThe Heartland family must deal with Amy and Ty's decision about their future. | Heartland | 50m | |
| 19:32 | HeartlandWhen one of Tim’s team-building events turns competitive, Georgie gets stuck partnering with Jade’s rival. | Heartland | 50m | |
| 20:22 | HeartlandWhile helping a mounted archer, Amy reveals the mystery behind Spartan's behavior. | Heartland | 50m | |
| 21:12 | HeartlandAmy helps her sister connect with a new horse. | 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-16&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-07T00:00:00Z&to=2026-10-08T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_pgptct3s/schedule?date=2026-10-16&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-16&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-16", "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-16, the first programme { "data": [ { "id": "ls_22vyw5az", "channel": "ch_pgptct3s", "start": "2026-10-16T03:20:00Z", "stop": "2026-10-16T04:10:00Z", "title": "Heartland", "sub_title": "Heartland", "description": "After Georgie receives devastating news from Lou and Peter, the family attemp...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 28, "date": "2026-10-16", "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 150 countries.