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