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/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_15e703ym/schedule?date=2026-10-16&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:10 | т/с Мандалорец 3 | 3 – Глава 19: Новообращенный | 56m | ||
| 00:06 | т/с Мандалорец 3 | 4 – Глава 20: Найдёныш | 31m | ||
| 00:37 | т/с Мандалорец 3 | 5 – Глава 21: Пират | 41m | ||
| 01:18 | т/с Мандалорец 3 | 6 – Глава 22: Наемники | 45m | ||
| 02:03 | т/с Мандалорец 3 | 7 – Глава 23: Шпионы | 51m | ||
| 02:54 | т/с Мандалорец 3 | 8 – Глава 24: Возвращение | 39m | ||
| 03:33 | т/с Книга Бобы Фетта | 1 – Глава первая: Чужак в чужом краю | 37m | ||
| 04:10 | т/с Книга Бобы Фетта | 2 – Глава вторая: Племена Татуина | 52m | ||
| 05:02 | т/с Книга Бобы Фетта | 3 – Глава третья: Улицы Мос-Эспы | 37m | ||
| 05:39 | т/с Книга Бобы Фетта | 4 – Глава четвёртая: Приближение бури | 47m | ||
| 06:26 | т/с Книга Бобы Фетта | 5 – Глава пятая: Возвращение Мандалорца | 51m | ||
| 07:17 | т/с Книга Бобы Фетта | 6 – Глава шестая: Незнакомец из пустыни | 46m | ||
| 08:03 | т/с Книга Бобы Фетта | 7 – Глава седьмая: Во имя чести | 58m | ||
| 09:01 | т/с Асока | 1 – Часть первая: Мастер и ученик | 55m | ||
| 09:56 | т/с Асока | 2 – Часть вторая: Труды и заботы | 43m | ||
| 10:39 | т/с Асока | 3 – Часть третья: Время летать | 35m | ||
| 11:14 | т/с Асока | 4 – Часть четвёртая: Падшие джедаи | 38m | ||
| 11:52 | т/с Асока | 5 – Часть пятая: Воин тени | 50m | ||
| 12:42 | т/с Асока | 6 – Часть шестая: В далекой-далекой галактике | 47m | ||
| 13:29 | т/с Асока | 7 – Часть седьмая: Мечты и безумие | 43m | ||
| 14:12 | т/с Асока | 8 – Часть восьмая: Джедай, ведьма и военачальник | 47m | ||
| 14:59 | т/с Звёздные Войны: Опорная Команда | 1 – Это может быть настоящее приключение | 47m | ||
| 15:46 | т/с Звёздные Войны: Опорная Команда | 2 – Путь, выход за барьер | 29m | ||
| 16:15 | т/с Звёздные Войны: Опорная Команда | 3 – Очень интересно, как задача астронавигации | 37m | ||
| 16:52 | т/с Звёздные Войны: Опорная Команда | 4 – Не могу сказать, что помню Ат Аттин | 37m | ||
| 17:29 | т/с Звёздные Войны: Опорная Команда | 5 – Вам ещё многое предстоит узнать о пиратах | 43m | ||
| 18:12 | т/с Звёздные Войны: Опорная Команда | 6 – Снова нет друзей | 32m | ||
| 18:44 | т/с Звёздные Войны: Опорная Команда | 7 – У нас будет много неприятностей | 34m | ||
| 19:18 | т/с Звёздные Войны: Опорная Команда | 8 – Хорошие ребята | 39m | ||
| 19:57 | т/с Мандалорец и Грогу (2026) | 2h 12m | ||
| 22:09 | т/с Звёздные войны: Пробуждение силы (2015) | 2h 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_15e703ym/schedule?date=2026-10-16&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_15e703ym/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_15e703ym/history?from=2025-11-13T00:00:00Z&to=2025-11-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_15e703ym/schedule?date=2026-10-16&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_15e703ym/schedule?date=2026-10-16&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_15e703ym/schedule", params={"date": "2026-10-16", "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_15e703ym/schedule?date=2026-10-16, the first programme { "data": [ { "id": "ls_y1kfyt7m", "channel": "ch_15e703ym", "start": "2026-10-15T20:10:00Z", "stop": "2026-10-15T21:06:00Z", "title": "т/с Мандалорец 3 | 3 – Глава 19: Новообращенный", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 31, "date": "2026-10-16", "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 | Thursday 13 November 2025 | Category |
|---|---|---|
| 03:10 | т/с Star Wars: Skeleton Crew – сезон 1, с. 7 – У нас будет много неприятностей | |
| 03:44 | т/с Star Wars: Skeleton Crew – сезон 1, с. 8 – Хорошие ребята | |
| 04:23 | т/с Звёздные войны: Пробуждение силы | |
| 20 more programmes that day, on Archive | ||
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.