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 Europe/Paris time, what is on now and next, and the same data in your app with one call.
All times Europe/Paris. The same day from the API: GET /v1/channels/ch_gtxf43ye/schedule?date=2026-10-13&tz=Europe/Paris
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:41 | FeedbackLors d'une émission en direct, un célèbre animateur radio est pris en otage par des hommes armés déterminés à révéler un secret compromettant. Une ... | 1h 50m | ||
| 00:31 | AccidentsUn petit garçon disparaît dans une ville américaine. Cet évènement va rapprocher trois personnes aux vies très différentes. | 1h 59m | ||
| 02:30 | IcemanL'officier Greg Harper vit un moment compliqué. Sa femme l'a trompé, son fils lui fait la tête, et la disparition d'un jeune garçon rappelle une af... | 1h 54m | ||
| 04:24 | Diamonds WarUn ancien combattant de MMA et ses frères doivent sauver leur famille kidnappée d'un dangereux syndicat du crime après le vol de 50 millions de dol... | 1h 52m | ||
| 06:16 | City of LiesÀ la fin des années 1990, deux grands noms du rap sont assassinés : 2Pac et Notorious B.I.G. Histoire de gangs, compétition musicale ? L'inspecteur... | 2h 7m | ||
| 08:23 | Alana : Déesse de Justice On nowSéparée de ses parents à la naissance suite à une éruption volcanique, puis ayant grandi dans une société très injuste, Alana tente de comprendre l... | 2h 30m | ||
| 10:54 | King of KillersMarcus Garan, un ancien tueur à gages, souhaite percer le mystère d'un incident. Lorsqu'on lui propose un contrat de 10 millions de dollars pour él... | 1h 43m |
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_gtxf43ye/schedule?date=2026-10-13&tz=Europe/Paris" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_gtxf43ye/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_gtxf43ye/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_gtxf43ye/schedule?date=2026-10-13&tz=Europe/Paris"); 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_gtxf43ye/schedule?date=2026-10-13&tz=Europe/Paris", { 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_gtxf43ye/schedule", params={"date": "2026-10-13", "tz": "Europe/Paris"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_gtxf43ye/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_n0ekaxjd", "channel": "ch_gtxf43ye", "start": "2026-10-12T20:41:08Z", "stop": "2026-10-12T22:31:32Z", "title": "Feedback", "sub_title": null, "description": "Lors d'une émission en direct, un célèbre animateur radio est pris en otage p...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 7, "date": "2026-10-13", "tz": "Europe/Paris" } }
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.