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_181j7fek/schedule?date=2026-10-11&tz=Europe/Kyiv
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:44 | Створення ОУН | 23m | ||
| 00:07 | росія намагається стерти історію та нищить музеї. Чому окупанти бояться Шухевича | 22m | ||
| 00:29 | Чим хворів Іван Франко | 20m | ||
| 00:49 | Це ж було вже! Скільки разів рф порушувала договори. Чому б їм не зробити це ще раз | 22m | ||
| 01:11 | Чому киримли викликали у імперії страх. Справжні причини депортації цілого народу | 20m | ||
| 01:31 | Степан Бандера у концтаборі Заксенгаузен | 20m | ||
| 01:51 | Це стало початком кінця ГУЛАГу. Норильське повстання. Спогади Євгена Грицяка | 22m | ||
| 02:13 | Як росія відібрала в українців етнічні території, 1 еп | 18m | ||
| 02:31 | УПА vs третій райх. Зять гітлера | 21m | ||
| 02:52 | Антифашизм! Денацифікація росії та Німеччини | 20m | ||
| 03:12 | Ганебні поразки московії!, 2 еп | 23m | ||
| 03:35 | Успіх "Щедрика" і таємниця вбивства Леонтовича | 23m | ||
| 03:58 | Україна доби Мазепи. Коли насправді почалася російсько-українська війна, 4 еп | 24m | ||
| 04:22 | Здригається земля! Чути вибухи! Що насправді сталося на ЧАЕС | 19m | ||
| 04:41 | "священна війна" рпц - ракова пухлина релігії | 23m | ||
| 05:04 | Кубань - це Україна! Як землі, заселені українцями, опинились у складі росії | 21m | ||
| 05:25 | Не росія. Як з'явилась Слобідська Україна. Чому окупантам Слобожанщина поперек горла | 22m | ||
| 05:47 | Історія українсько-польських стосунків. Війна та мир | 21m | ||
| 06:08 | Не лише Кубань! Розповідаємо про історичні землі України | 22m | ||
| 06:30 | Козаки та бандитизм. Шахтарі за українську. Партизани проти СРСР. Усе, що ви не знали про Донбас | 1h 24m | ||
| 07:54 | Іван Франко. Не лише письменник, а й політичний діяч | 25m | ||
| 08:19 | Кінець Центральної Ради та проголошення Конституції УНР | 19m | ||
| 08:38 | Іван Франко проти москалефілів, 1 ч | 22m | ||
| 09:00 | Хвилина мовчання | 1m | ||
| 09:01 | Іван Франко проти москалефілів, 2 ч | 1m | ||
| 09:02 | Історик дисидентського руху. Пам'яті Василя Овсієнка | 23m | ||
| 09:25 | Закордонні частини ОУН та вбивство Бандери | 20m | ||
| 09:45 | Заплутана, але цікава історія українців у Французькому іноземному легіоні | 23m | ||
| 10:08 | Друга світова війна | 20m | ||
| 10:28 | Діти у козацькій армії. Ким насправді були джури | 20m | ||
| 10:48 | Війна пам'ятників. Монументальна сталініана | 22m | ||
| 11:10 | Вкрадене Різдво. Репресований св. Миколай. Кому заважало свято і до чого тут Дід Мороз | 19m | ||
| 11:29 | В'ячеслав Чорновіл. Життя та смерть. Цікаві факти, які ви могли не знати | 24m | ||
| 11:53 | Війна пам'ятників. Монументальна пропаганда на кр@ві | 21m | ||
| 12:14 | Коли почалася російсько-українська війна, 2 еп | 23m | ||
| 12:37 | Акція "Вісла". Гуманна операція чи етнічна чистка. Що замовчує Польща | 23m | ||
| 13:00 | Розкол в ОУН. Бандера VS Мельник | 21m | ||
| 13:21 | Від Кірова до Навального | 23m | ||
| 13:44 | путін таки допився. Не зміг знайти Україну на карті XVII століття | 19m | ||
| 14:03 | Мирний договір з росією | 21m | ||
| 14:24 | Найгучніші авіакатастрофи. Фатальна помилка чи свідомий злочин | 18m | ||
| 14:42 | Трикутник смерті. Союз Пілсудський-Петлюра. Варшавський договір | 21m | ||
| 15:03 | Як росія відібрала в українців етнічні території, 1 еп | 18m | ||
| 15:21 | Здригається земля! Чути вибухи! Що насправді сталося на ЧАЕС | 19m | ||
| 15:40 | Незалежність 30 років, 7 еп | 20m | ||
| 16:00 | Херсон - це Україна | 22m | ||
| 16:22 | Незалежність 30 років, 8 еп | 19m | ||
| 16:41 | Кордон, 1 еп | 17m | ||
| 16:58 | Крим та москалі | 19m | ||
| 17:17 | Кордон, 2 еп | 21m | ||
| 17:38 | Гітлер та Єва Браун, 1 еп | 16m | ||
| 17:54 | Гітлер та Єва Браун, 2 еп | 20m | ||
| 18:14 | Афганістан, 1 еп | 17m | ||
| 18:31 | Афганістан, 2 еп | 19m | ||
| 18:50 | Незалежність 30 років, 10 еп | 12m | ||
| 19:02 | Розпад СРСР | 21m | ||
| 19:23 | Василь Овсієнко | 22m | ||
| 19:45 | Мирослав Симчич | 22m | ||
| 20:07 | Створення ОУН, 2 еп | 22m | ||
| 20:29 | московська церква | 22m | ||
| 20:51 | Мюнхенська змова | 21m | ||
| 21:12 | Як ленін створив Україну | 20m | ||
| 21:32 | "Вагнер" та СС "Дірлеванґер" | 18m | ||
| 21:50 | УПА проти третього рейху | 21m | ||
| 22:11 | Україна на картах | 20m | ||
| 22:31 | "супер зброя" путіна | 18m | ||
| 22:49 | Народження УПА, 1 еп | 21m | ||
| 23:10 | Народження УПА, 2 еп | 22m | ||
| 23:32 | Слобожанщина | 22m | ||
| 23:54 | Річниця УНР, 2 еп | 18m |
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_181j7fek/schedule?date=2026-10-11&tz=Europe/Kyiv" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_181j7fek/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_181j7fek/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_181j7fek/schedule?date=2026-10-11&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_181j7fek/schedule?date=2026-10-11&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_181j7fek/schedule", params={"date": "2026-10-11", "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_181j7fek/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_nhhf6am4", "channel": "ch_181j7fek", "start": "2026-10-10T20:44:00Z", "stop": "2026-10-10T21:07:00Z", "title": "Створення ОУН", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 70, "date": "2026-10-11", "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.