73.8M 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. Search any past day on the Archive plan.
All times America/New_York. The same day from the API: GET /v1/channels/ch_pdgcdm5z/schedule?date=2026-10-15&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:13 | Midsomer MurdersEl arte llega al pintoresco pueblo de Midsomer con la apertura de un nuevo parque de esculturas. | S18 E4, A Dying Art | 1h 46m | |
| 00:00 | Midsomer MurdersEl descubrimiento de los huesos de un santo en una excavación arqueológica causa un gran revuelo. | S18 E5, Saints and Sinners | 1h 44m | |
| 01:44 | Midsomer MurdersEl propietario de un centro ecuestre es pisoteado por su caballo. | S18 E6, Harvest of Souls | 1h 44m | |
| 03:27 | Midsomer MurdersEl DCI Barnaby y el DS Winter deben desentrañar una siniestra red de mentiras del pasado. | S19 E1, The Village That Rose from the Dead | 1h 44m | |
| 05:11 | Midsomer MurdersBarnaby investiga la muerte de un miembro de un grupo de vigilancia. | 1h 44m | ||
| 06:55 | Midsomer MurdersBarnaby y Winter investigan la muerte de un jugador de críquet durante un torneo. | 1h 44m | ||
| 08:39 | Midsomer MurdersBarnaby y Winter se cruzan con un descubrimiento tras encontrar un cuerpo envuelto en conejos vivos. | 1h 42m | ||
| 10:21 | Midsomer MurdersUna joven huye de un fin de semana de Jane Austen vestida de época y aparece apuñalada en el bosque. | S19 E5, Death by Persuasion | 1h 44m | |
| 12:04 | Midsomer MurdersCauston bulle con la apertura de una nueva fábrica de cerveza en el sitio de una abadía maldita. | S20 E1, The Ghost of Causton Abbey | 1h 42m | |
| 13:46 | Midsomer MurdersBarnaby y Winter solicitan la ayuda de un amigo para investigar el asesinato de un coleccionista. | S20 E2, Death of the Small Coppers | 1h 42m | |
| 15:28 | Midsomer MurdersBarnaby y Winter se ven obligados a separar la realidad de la ficción. | S20 E3, Drawing Dead | 1h 44m | |
| 17:12 | Midsomer MurdersBarnaby y Winter sacan a relucir viejos rencores, asuntos íntimos y chocolates artesanales. | S20 E4, The Lions of Causton | 1h 42m | |
| 18:54 | Midsomer MurdersBarnaby no está feliz cuando Sarah lo arrastra a la boda de un amigo de la familia. | S20 E5, Till Death Do Us Part | 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_pdgcdm5z/schedule?date=2026-10-15&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_pdgcdm5z/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_pdgcdm5z/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_pdgcdm5z/schedule?date=2026-10-15&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_pdgcdm5z/schedule?date=2026-10-15&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_pdgcdm5z/schedule", params={"date": "2026-10-15", "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_pdgcdm5z/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_qqhv0pq5", "channel": "ch_pdgcdm5z", "start": "2026-10-15T02:13:59Z", "stop": "2026-10-15T04:00:06Z", "title": "Midsomer Murders", "sub_title": null, "description": "El arte llega al pintoresco pueblo de Midsomer con la apertura de un nuevo pa...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 13, "date": "2026-10-15", "tz": "America/New_York" } }
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 | Monday 13 October 2025 | Category |
|---|---|---|
| Nothing held for that day. Try another date. | ||
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.