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/Moscow time, what is on now and next, and the same data in your app with one call.
All times Europe/Moscow. The same day from the API: GET /v1/channels/ch_k3cyskeq/schedule?date=2026-10-15&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:45 | Asfur S01E18 | 32m | ||
| 00:17 | Asfur S01E19 | 32m | ||
| 00:49 | Asfur S01E20 | 34m | ||
| 01:23 | Asfur S01E21 | 31m | ||
| 01:54 | Asfur S01E22 | 33m | ||
| 02:27 | Asfur S01E23 | 32m | ||
| 02:59 | Asfur S01E24 | 34m | ||
| 03:33 | Asfur S01E25 | 30m | ||
| 04:03 | Red Lines S01E01 The arraignment | 44m | ||
| 04:47 | Red Lines S01E02 Classified evidence | 40m | ||
| 05:27 | Red Lines S01E03 Monkeys | 36m | ||
| 06:03 | Red Lines S01E04 Corroborating evidence | 35m | ||
| 06:38 | Red Lines S01E05 Extradition | 36m | ||
| 07:14 | Red Lines S01E06 Abuse of power | 39m | ||
| 07:53 | Red Lines S01E07 Established fact | 38m | ||
| 08:31 | Red Lines S01E08 Conflict of interest | 38m | ||
| 09:09 | Red Lines S01E09 House arrest | 35m | ||
| 09:44 | Red Lines S01E10 Self – representation | 37m | ||
| 10:21 | Red Lines S01E11 Classified | 39m | ||
| 11:00 | Red Lines S01E12 Reasonable doubt | 37m | ||
| 11:37 | Red Lines S01E13 Season 1 – – the burden of proof | 43m | ||
| 12:20 | Asfur S01E01 | 37m | ||
| 12:57 | Asfur S01E02 | 31m | ||
| 13:28 | Asfur S01E03 | 31m | ||
| 13:59 | Asfur S01E04 | 29m | ||
| 14:28 | Asfur S01E05 | 30m | ||
| 14:58 | Asfur S01E06 | 28m | ||
| 15:26 | Asfur S01E07 | 32m | ||
| 15:58 | Asfur S01E08 | 32m | ||
| 16:30 | Asfur S01E09 | 33m | ||
| 17:03 | Asfur S01E10 | 32m | ||
| 17:35 | Asfur S01E11 | 32m | ||
| 18:07 | Asfur S01E12 | 34m | ||
| 18:41 | Asfur S01E13 | 32m | ||
| 19:13 | Asfur S01E14 | 32m | ||
| 19:45 | Asfur S01E15 | 33m | ||
| 20:18 | Asfur S01E16 | 32m | ||
| 20:50 | Asfur S01E17 | 31m | ||
| 21:21 | Asfur S01E18 | 33m | ||
| 21:54 | Asfur S01E19 | 32m | ||
| 22:26 | Asfur S01E20 | 33m | ||
| 22:59 | Asfur S01E21 | 31m | ||
| 23:30 | Asfur S01E22 | 33m |
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_k3cyskeq/schedule?date=2026-10-15&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_k3cyskeq/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_k3cyskeq/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_k3cyskeq/schedule?date=2026-10-15&tz=Europe/Moscow"); 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_k3cyskeq/schedule?date=2026-10-15&tz=Europe/Moscow", { 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_k3cyskeq/schedule", params={"date": "2026-10-15", "tz": "Europe/Moscow"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_k3cyskeq/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_xmma37c4", "channel": "ch_k3cyskeq", "start": "2026-10-14T20:45:00Z", "stop": "2026-10-14T21:17:00Z", "title": "Asfur S01E18", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 43, "date": "2026-10-15", "tz": "Europe/Moscow" } }
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.