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. Search any past day on the Archive plan.
All times Europe/Moscow. The same day from the API: GET /v1/channels/ch_0knh7k4m/schedule?date=2026-10-12&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:30 | Святыни России. Курская область | 50m | ||
| 00:20 | Афиша Лайф | 30m | ||
| 00:50 | Погода | 5m | ||
| 00:55 | Афиша Лайф | 28m | ||
| 01:23 | Погода | 2m | ||
| 01:25 | ЕДНС | 2h 8m | ||
| 03:33 | Погода | 2m | ||
| 03:35 | Заповедники РФ. Тайны Северо-Осетинского заповедника | 25m | ||
| 04:00 | Новости. Итоги недели | 13m | ||
| 04:13 | Погода | 2m | ||
| 04:15 | Афиша | 15m | ||
| 04:30 | м/с Дракоша Тоша | 15m | ||
| 04:45 | м/с Спорт Тоша | 10m | ||
| 04:55 | Бодрое утро | 5m | ||
| 05:00 | Новости. Итоги недели | 10m | ||
| 05:10 | Погода | 5m | ||
| 05:15 | Хочу и буду | 20m | ||
| 05:35 | д/с Рассекреченная история. Дело советских адмиралов | 30m | ||
| 06:05 | Новости. Итоги недели | 13m | ||
| 06:18 | Погода | 2m | ||
| 06:20 | д/с Настоящая история | 25m | ||
| 06:45 | д/с Настоящая история | 25m | ||
| 07:10 | Погода | 5m | ||
| 07:15 | х/ф Расписание на послезавтра | 1h 20m | ||
| 08:35 | Погода | 5m | ||
| 08:40 | д/с Советские мафии. Бандитский Ленинград | 40m | ||
| 09:20 | д/с Рассекреченная история | 30m | ||
| 09:50 | Инет | 10m | ||
| 10:00 | Новости. Итоги недели | 13m | ||
| 10:13 | Погода | 2m | ||
| 10:15 | Афиша | 15m | ||
| 10:30 | т/с Следствие любви | 1h 10m | ||
| 11:40 | Новости на минуту | 5m | ||
| 11:45 | Погода | 5m | ||
| 11:50 | д/с Дело №. Николай Клеточников: «народоволец под прикрытием» | 30m | ||
| 12:20 | Музбатл | 15m | ||
| 12:35 | Инет | 20m | ||
| 12:55 | Новости. Итоги недели | 10m | ||
| 13:05 | Погода | 5m | ||
| 13:10 | м/с Дракоша Тоша | 25m | ||
| 13:35 | м/с Живой гараж | 23m | ||
| 13:58 | Новости на минуту | 2m | ||
| 14:00 | Погода | 5m | ||
| 14:05 | д/ф Татьяна Конюхова. Я не простила предательства | 40m | ||
| 14:45 | д/ф Георгий Вицин. Не надо смеяться | 35m | ||
| 15:20 | Новости на минуту | 5m | ||
| 15:25 | Погода | 5m | ||
| 15:30 | т/с В лесах и на горах. 9 c | 45m | ||
| 16:15 | т/с В лесах и на горах. 10 c | 45m | ||
| 17:00 | Новости Первоуральска | 13m | ||
| 17:13 | Погода | 2m | ||
| 17:15 | Территория здоровья | 5m | ||
| 17:20 | Инет | 10m | ||
| 17:30 | т/с Бедные родственники. 9 c | 1h 30m | ||
| 19:00 | Новости Первоуральска | 13m | ||
| 19:13 | Погода | 2m | ||
| 19:15 | т/с Следствие любви. 29 c | 37m | ||
| 19:52 | т/с Следствие любви. 30 c | 38m | ||
| 20:30 | Погода | 5m | ||
| 20:35 | д/с Советские мафии | 40m | ||
| 21:15 | Инет | 15m | ||
| 21:30 | Новости Первоуральска | 10m | ||
| 21:40 | Погода | 5m | ||
| 21:45 | Территория здоровья | 5m | ||
| 21:50 | Инет | 10m | ||
| 22:00 | т/с В лесах и на горах. 9 c | 42m | ||
| 22:42 | т/с В лесах и на горах. 10 c | 43m | ||
| 23:25 | Погода | 5m | ||
| 23:30 | Заповедники РФ | 30m |
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_0knh7k4m/schedule?date=2026-10-12&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_0knh7k4m/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_0knh7k4m/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_0knh7k4m/schedule?date=2026-10-12&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_0knh7k4m/schedule?date=2026-10-12&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_0knh7k4m/schedule", params={"date": "2026-10-12", "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_0knh7k4m/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_d24v4knk", "channel": "ch_0knh7k4m", "start": "2026-10-11T20:30:00Z", "stop": "2026-10-11T21:20:00Z", "title": "Святыни России. Курская область", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 69, "date": "2026-10-12", "tz": "Europe/Moscow" } }
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.