90.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. On the Live plan; the free key reads yesterday.
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.
All times UTC. The same day from the API: GET /v1/channels/ch_na5p0y86/schedule?date=2026-10-19&tz=UTC
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:40 | Hermanas gitanasUn reino recién nacido Hermanas gitanas. | 48m | ||
| 01:28 | Hermanas gitanasUn día en el parque Hermanas gitanas. | 48m | ||
| 02:16 | 90 dias para casar a última chanceEl último caballero en pie 90 dias para casar a última chance. | 48m | ||
| 03:04 | 90 dias para casar a última chanceLos últimos fantasmas que quedan 90 dias para casar a última chance. | 48m | ||
| 03:52 | Todo en 90 días Reino UnidoEstoy enamorado pero nunca nos hemos conocido Todo en 90 días Reino Unido. | 55m | ||
| 04:47 | Mi gran boda gitanaNo hagan ruido en el nido Mi gran boda gitana. | 48m | ||
| 05:35 | Hermanas gitanasUn reino recién nacido Hermanas gitanas. | 45m | ||
| 06:20 | Hermanas gitanasUn día en el parque Hermanas gitanas. | 45m | ||
| 07:05 | 90 dias para casar a última chanceEl último caballero en pie 90 dias para casar a última chance. | 45m | ||
| 07:50 | 90 dias para casar a última chanceLos últimos fantasmas que quedan 90 dias para casar a última chance. | 45m | ||
| 08:35 | Todo en 90 días Reino UnidoEstoy enamorado pero nunca nos hemos conocido Todo en 90 días Reino Unido. | 55m | ||
| 09:30 | Regreso al mundo AmishTe encuentro allá, Rosanna Regreso al mundo Amish. | 45m | ||
| 10:15 | Regreso al mundo AmishOperación Ada Regreso al mundo Amish. | 45m | ||
| 11:00 | Mi gran boda gitanaEnfrentarse al altar Mi gran boda gitana. | 49m | ||
| 11:49 | Una Gran FamiliaUn asiento vacío en la mesa Una Gran Familia. | 48m | ||
| 12:37 | Los BusbyLas quintillizas van a la escuela Los Busby. | 49m | ||
| 13:26 | Un gran mundo pequeñoEl niño tiene más cosas que nosotros Un gran mundo pequeño. | 49m | ||
| 14:15 | Un gran mundo pequeñoLa primera Navidad de los nietos Un gran mundo pequeño. | 49m | ||
| 15:04 | De tal madre, tal astillaConfesiones De tal madre, tal astilla. | 49m | ||
| 15:53 | De tal madre, tal astillaPerder al mejor amigo De tal madre, tal astilla. | 49m | ||
| 16:42 | De tal madre, tal astillaElijo a mi mamá De tal madre, tal astilla. | 48m | ||
| 17:30 | Vestido de noviaCreo en las señales Vestido de novia. | 25m | ||
| 17:55 | Vestido de noviaRandy, creo que yo puedo Vestido de novia. | 24m | ||
| 18:19 | Un gran mundo pequeñoDios no se equivoca Un gran mundo pequeño. | 49m | ||
| 19:08 | Un gran mundo pequeño¿De quién es esta granja Un gran mundo pequeño. | 49m | ||
| 19:57 | Una Gran Familia¿Qué demonios Una Gran Familia. | 48m | ||
| 20:45 | Mi gran boda gitanaAtrapado en un triángulo amoroso gitano Mi gran boda gitana. | 49m | ||
| 21:34 | Todo en 90 días casados en el extranjeroVirtudes selectivas Todo en 90 días casados en el extranjero. | 49m | ||
| 22:23 | Todo en 90 días casados en el extranjeroFortunas de cuento de hadas Todo en 90 días casados en el extranjero. | 48m | ||
| 23:11 | Todo en 90 días casados en el extranjeroNo pienses de más Todo en 90 días casados en el extranjero. | 49m |
Copy, add your key, run. The free key reads yesterday on every channel, 500 calls a day; today and ahead are on Live.
curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_na5p0y86/schedule?date=2026-10-19&tz=UTC" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_na5p0y86/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_na5p0y86/history?from=2026-10-13T00:00:00Z&to=2026-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_na5p0y86/schedule?date=2026-10-19&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_na5p0y86/schedule?date=2026-10-19&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_na5p0y86/schedule", params={"date": "2026-10-19", "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_na5p0y86/schedule?date=2026-10-19, the first programme { "data": [ { "id": "ls_cj4hvvmk", "channel": "ch_na5p0y86", "start": "2026-10-19T00:40:00Z", "stop": "2026-10-19T01:28:00Z", "title": "Hermanas gitanas", "sub_title": null, "description": "Un reino recién nacido\nHermanas gitanas.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 30, "date": "2026-10-19", "tz": "UTC" } }
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's listings on every channel in 176 countries.