72.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.
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_bjt43pxn/schedule?date=2026-10-11&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:51 | Asfur S01E27 | 29m | ||
| 00:20 | Asfur S01E28 | 31m | ||
| 00:51 | Asfur S01E29 | 34m | ||
| 01:25 | Asfur S01E30 | 30m | ||
| 01:55 | Asfur S01E31 | 30m | ||
| 02:25 | Asfur S01E32 | 31m | ||
| 02:56 | Asfur S01E33 | 31m | ||
| 03:27 | Asfur S01E34 | 32m | ||
| 03:59 | Asfur S01E35 | 33m | ||
| 04:32 | Asfur S01E36 | 32m | ||
| 05:04 | Asfur S01E37 | 32m | ||
| 05:36 | Asfur S01E38 | 34m | ||
| 06:10 | Asfur S01E39 | 33m | ||
| 06:43 | Asfur S01E40 | 33m | ||
| 07:16 | Asfur S01E41 | 34m | ||
| 07:50 | Asfur S01E42 | 33m | ||
| 08:23 | Asfur S01E43 | 33m | ||
| 08:56 | Asfur S01E44 | 34m | ||
| 09:30 | Asfur S01E45 | 33m | ||
| 10:03 | Asfur S01E46 | 35m | ||
| 10:38 | Asfur S01E47 | 33m | ||
| 11:11 | Asfur S01E48 | 37m | ||
| 11:48 | Asfur S01E49 | 48m | ||
| 12:36 | Asfur S01E50 | 50m | ||
| 13:26 | Red Lines S02E01 | 41m | ||
| 14:07 | Red Lines S02E02 | 46m | ||
| 14:53 | Red Lines S02E03 | 44m | ||
| 15:37 | Red Lines S02E04 | 40m | ||
| 16:17 | Red Lines S02E05 | 43m | ||
| 17:00 | Red Lines S02E06 | 43m | ||
| 17:43 | Red Lines S02E07 | 42m | ||
| 18:25 | Red Lines S02E08 | 45m | ||
| 19:10 | SUSPECT S01E01 Murder or suicide | 37m | ||
| 19:47 | SUSPECT S01E02 Adulteress | 36m | ||
| 20:23 | SUSPECT S01E03 Premiere | 35m | ||
| 20:58 | SUSPECT S01E04 The rise of the soul | 36m | ||
| 21:34 | SUSPECT S01E05 Self – defense | 33m | ||
| 22:07 | Asfur S01E26 | 33m | ||
| 22:40 | Asfur S01E27 | 29m | ||
| 23:09 | Asfur S01E28 | 31m | ||
| 23:40 | Asfur S01E29 | 34m |
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_bjt43pxn/schedule?date=2026-10-11&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bjt43pxn/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bjt43pxn/history?from=2026-10-05T00:00:00Z&to=2026-10-06T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_bjt43pxn/schedule?date=2026-10-11&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_bjt43pxn/schedule?date=2026-10-11&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_bjt43pxn/schedule", params={"date": "2026-10-11", "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_bjt43pxn/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_1xrc9zrd", "channel": "ch_bjt43pxn", "start": "2026-10-10T20:51:00Z", "stop": "2026-10-10T21:20:00Z", "title": "Asfur S01E27", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 41, "date": "2026-10-11", "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 155 countries.