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/Kyiv time, what is on now and next, and the same data in your app with one call.
All times Europe/Kyiv. The same day from the API: GET /v1/channels/ch_txxkf493/schedule?date=2026-10-12&tz=Europe/Kyiv
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Точка отсчёта | 20m | ||
| 00:20 | Политическая Россия | 10m | ||
| 00:30 | Итоговый обзор мировых событий | 30m | ||
| 01:00 | Правда жизни | 20m | ||
| 01:20 | Политическая Россия | 10m | ||
| 01:30 | Продюсерский Центр | 30m | ||
| 02:00 | Риэлторский вестник | 30m | ||
| 02:30 | Улица Спортивная | 30m | ||
| 03:00 | Общее дело | 30m | ||
| 03:30 | Итоговый обзор мировых событий | 30m | ||
| 04:00 | Резонанс | 30m | ||
| 04:30 | "Не новости" с Мариной Курзиной | 10m | ||
| 04:40 | Полит. Эфир | 20m | ||
| 05:00 | Путеводитель по Израилю | 30m | ||
| 05:30 | Политподкаст | 30m | ||
| 06:00 | Проект "Вне зоны" | 15m | ||
| 06:15 | "Не новости" с Мариной Курзиной | 15m | ||
| 06:30 | Клуб охотников и рыболовов | 10m | ||
| 06:40 | Политическая Россия | 20m | ||
| 07:00 | Между башнями Кремля | 30m | ||
| 07:30 | Доска позора | 15m | ||
| 07:45 | Дознание | 15m | ||
| 08:00 | Точка отсчёта | 20m | ||
| 08:20 | Политическая Россия | 10m | ||
| 08:30 | Итоговый обзор мировых событий | 30m | ||
| 09:00 | Правда жизни | 20m | ||
| 09:20 | "Не новости" с Мариной Курзиной | 10m | ||
| 09:30 | Продюсерский Центр | 30m | ||
| 10:00 | Риэлторский вестник | 30m | ||
| 10:30 | Улица Спортивная | 30m | ||
| 11:00 | Общее дело | 30m | ||
| 11:30 | Итоговый обзор мировых событий | 30m | ||
| 12:00 | Резонанс | 30m | ||
| 12:30 | Политическая Россия | 10m | ||
| 12:40 | Полит. Эфир | 20m | ||
| 13:00 | Путеводитель по Израилю | 30m | ||
| 13:30 | Политподкаст | 30m | ||
| 14:00 | Проект "Вне зоны" | 15m | ||
| 14:15 | "Не новости" с Мариной Курзиной | 15m | ||
| 14:30 | Клуб охотников и рыболовов | 10m | ||
| 14:40 | Политическая Россия | 20m | ||
| 15:00 | Новости Сахалинской области. Южно-Сахалинск | 10m | ||
| 15:10 | Новости Саратовской области. Саратов | 10m | ||
| 15:20 | Новости Приднестровья. Тирасполь | 10m | ||
| 15:30 | Новости Республики Хакасия. Абакан | 10m | ||
| 15:40 | Новости Ставропольского края | 10m | ||
| 15:50 | Новости 31 канала. Челябинск | 10m | ||
| 16:00 | Новости Ярославской области. Ярославль | 10m | ||
| 16:10 | Новости Мурманской области. Мурманск | 10m | ||
| 16:20 | Новости Омской области. Омск | 10m | ||
| 16:30 | Новости Пензенской области. Пенза | 10m | ||
| 16:40 | Новости Оренбургской области. Орск | 10m | ||
| 16:50 | Новости Московской области. Балашиха | 10m | ||
| 17:00 | Обзор мировых событий | 15m | ||
| 17:15 | Новости Ивановской области. Иваново | 15m | ||
| 17:30 | Новости Республики Удмуртия. Ижевск | 10m | ||
| 17:40 | Новости Владимирской области. Владимир | 10m | ||
| 17:50 | Новости Липецкой области. Липецк | 10m | ||
| 18:00 | Новости Ульяновской области. Ульяновск | 10m | ||
| 18:10 | Новости Волгоградской области. Волгоград | 10m | ||
| 18:20 | Новости Республики Башкортостан. Уфа | 10m | ||
| 18:30 | Новости Ненецкого автономного округа. Нарьян-Мар | 10m | ||
| 18:40 | Новости ХМАО. Сургут | 10m | ||
| 18:50 | Новости Карачаево-Черкесии. Архыз | 10m | ||
| 19:00 | Новости Краснодарского края. Анапа | 10m | ||
| 19:10 | Новости Алтайского края. Барнаул | 10m | ||
| 19:20 | Новости Тульской области. Тула | 10m | ||
| 19:30 | Новости Рязанской области. Рязань | 10m | ||
| 19:40 | Новости Тверской области. Тверь | 10m | ||
| 19:50 | Новости Республики Бурятия. Улан-Удэ | 10m | ||
| 20:00 | Новости Орловской области. Орёл | 15m | ||
| 20:15 | Новости Хабаровского края | 15m | ||
| 20:30 | Новости Иннокентия Шеремета 9 1/2. ТАУ ТВ | 30m | ||
| 21:00 | Новости Новосибирской области. Новосибирск | 10m | ||
| 21:10 | Новости Томской области. Томск | 10m | ||
| 21:20 | Новости Республики Крым. Севастополь | 10m | ||
| 21:30 | Новости Луганской Народной Республики. Луганск | 10m | ||
| 21:40 | Новости Донецкой Народной Республики. Донецк | 10m | ||
| 21:50 | Новости Республики Беларусь | 10m | ||
| 22:00 | Новости Забайкальского края. Чита | 10m | ||
| 22:10 | Новости Магаданской области. Магадан | 10m | ||
| 22:20 | Новости Брянской области. Брянск | 10m | ||
| 22:30 | Новости Самарской области. Сызрань | 10m | ||
| 22:40 | Патрульный участок | 20m | ||
| 23:00 | Общее дело | 30m | ||
| 23:30 | Дознание | 10m | ||
| 23:40 | Доска позора | 20m |
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_txxkf493/schedule?date=2026-10-12&tz=Europe/Kyiv" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_txxkf493/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_txxkf493/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_txxkf493/schedule?date=2026-10-12&tz=Europe/Kyiv"); 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_txxkf493/schedule?date=2026-10-12&tz=Europe/Kyiv", { 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_txxkf493/schedule", params={"date": "2026-10-12", "tz": "Europe/Kyiv"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_txxkf493/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_yw0dwmyk", "channel": "ch_txxkf493", "start": "2026-10-11T21:00:00Z", "stop": "2026-10-11T21:20:00Z", "title": "Точка отсчёта", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 87, "date": "2026-10-12", "tz": "Europe/Kyiv" } }
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.