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 UTC time, what is on now and next, and the same data in your app with one call. Search any past day on the Archive plan.
All times UTC. The same day from the API: GET /v1/channels/ch_1be48jya/schedule?date=2026-10-16&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:35 | Series 25 Ep 9 with Chris Hemsworth | Entertainment | 44m | |
| 00:19 | Series 19 Ep 8 with Jennifer Lawrence | Entertainment | 39m | |
| 00:58 | Series 15 Ep 11 with Samuel L. Jackson | Entertainment | 35m | |
| 01:33 | Series 18 Ep 13 with Ralph Fiennes | Entertainment | 39m | |
| 02:12 | Series 14 Ep 12 with Olivia Coleman | Entertainment | 41m | |
| 02:53 | Series 19 Ep 2 with Chris Hemsworth | Entertainment | 42m | |
| 03:35 | Series 22 Ep 11 with Mark Hamill | Entertainment | 41m | |
| 04:16 | Series 20 Ep 11 with Nicole Kidman | Entertainment | 45m | |
| 05:01 | Series 18 Ep 9 with Benedict Cumberbatch | Entertainment | 42m | |
| 05:43 | Series 24 Ep 2 with Jamie Lee Curtis | Entertainment | 43m | |
| 06:26 | Series 23 Ep 9 with Toni Collette | Entertainment | 41m | |
| 07:07 | Series 22 Ep 13 with Tom Hanks | Entertainment | 45m | |
| 07:52 | Series 17 Ep 4 with Matt LeBlanc | Entertainment | 40m | |
| 08:32 | Series 20 Ep 5 with Benedict Cumberbatch | Entertainment | 45m | |
| 09:17 | Series 25 Ep 1 with Sally Field | Entertainment | 43m | |
| 10:00 | Series 19 Ep 14 with Jennifer Saunders | Entertainment | 44m | |
| 10:44 | Series 15 Ep 7 with Kirsten Dunst | Entertainment | 37m | |
| 11:21 | Series 25 Ep 11 with Lily James | Entertainment | 46m | |
| 12:07 | Series 14 Ep 10 with Julie Walters | Entertainment | 43m | |
| 12:50 | Series 16 Ep 16 with Dame Judi Dench | Entertainment | 40m | |
| 13:30 | Series 22 Ep 18 with Margot Robbie | Entertainment | 43m | |
| 14:13 | Series 14 Ep 2 with Katy Perry | Entertainment | 40m | |
| 14:53 | Series 17 Ep 10 with Mark Walhberg | Entertainment | 35m | |
| 15:28 | Series 23 Ep 10 with Channing Tatum | Entertainment | 45m | |
| 16:13 | Series 24 Ep 5 with Emma Stone | Entertainment | 46m | |
| 16:59 | Series 21 Ep 4 with Goldie Hawn | Entertainment | 44m | |
| 17:43 | Series 18 Ep 11 with Kurt Russell | Entertainment | 40m | |
| 18:23 | Series 15 Ep 5 with Hugh Jackman | Entertainment | 42m | |
| 19:05 | Series 18 Ep 2 with Robert De Niro | Entertainment | 42m | |
| 19:47 | Series 24 Ep 7 with Carey Mulligan | Entertainment | 44m | |
| 20:31 | Series 19 Ep 1 with Ben Affleck | Entertainment | 40m | |
| 21:11 | Series 14 Ep 14 with Matthew McConaughey | Entertainment | 42m | |
| 21:53 | Series 16 Ep 3 with Taylor Swift | Entertainment | 42m | |
| 22:35 | Series 21 Ep 3 with Brendan O'Carroll | Entertainment | 39m | |
| 23:14 | Series 16 Ep 12 with Ben Stiller | Entertainment | 46m |
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_1be48jya/schedule?date=2026-10-16&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_1be48jya/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_1be48jya/history?from=2026-02-07T00:00:00Z&to=2026-02-08T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_1be48jya/schedule?date=2026-10-16&tz=UTC"); 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_1be48jya/schedule?date=2026-10-16&tz=UTC", { 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_1be48jya/schedule", params={"date": "2026-10-16", "tz": "UTC"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_1be48jya/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_qry1zh68", "channel": "ch_1be48jya", "start": "2026-10-15T23:35:00Z", "stop": "2026-10-16T00:19:01Z", "title": "Series 25 Ep 9 with Chris Hemsworth", "sub_title": null, "description": null, "category": [ "entertainment" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 35, "date": "2026-10-16", "tz": "UTC" } }
What was on, on any date we hold: for research, catch-up, clip finding or proving a broadcast. Any window up to 31 days with /v1/channels/{id}/history on the Archive plan.
| Time | Saturday 7 February 2026 | Category |
|---|---|---|
| 00:07 | The Graham Norton Show | Entertainment |
| 00:48 | The Graham Norton Show | Entertainment |
| 01:32 | The Graham Norton Show | Entertainment |
| 30 more programmes that day, on Archive | ||
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.