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_mqt1t7rb/schedule?date=2026-10-17&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:12 | т/с Звёздный путь: Странные новые миры 4 | 1 – Долины Маринер | 57m | ||
| 00:09 | т/с Звёздный путь: Странные новые миры 4 | 2 – Инцидент на «Грифоне» | 57m | ||
| 01:06 | т/с Звёздный путь: Странные новые миры 4 | 3 – Лучший друг-человек | 46m | ||
| 01:52 | т/с Звёздный путь: Странные новые миры 4 | 4 – Опыт светотени | 49m | ||
| 02:41 | т/с Звёздный путь: Странные новые миры 4 | 5 – Транспортаторная авария пятого уровня | 53m | ||
| 03:34 | т/с Звёздный путь: Странные новые миры 4 | 6 – Выходной | 54m | ||
| 04:28 | т/с Звёздный путь: Странные новые миры 4 | 7 – Как хронитоны сквозь песочные часы | 44m | ||
| 05:12 | т/с Звёздный путь: Странные новые миры 4 | 8 – Важные приказы | 1h | ||
| 06:12 | т/с Звёздный путь: Странные новые миры 4 | 9 – Жила-была Лаан | 47m | ||
| 06:59 | т/с Звёздный путь: Странные новые миры 4 | 10 – «Энтерпрайз» завтрашнего дня | 59m | ||
| 07:58 | т/с Звездный путь | 1 – Ловушка для человека | 1h 4m | ||
| 09:02 | т/с Звездный путь | 2 – Закон Чарли | 50m | ||
| 09:52 | т/с Звездный путь | 3 – Куда не ступала нога человека | 51m | ||
| 10:43 | т/с Звездный путь | 4 – Время обнажиться | 51m | ||
| 11:34 | т/с Звездный путь | 5 – Враг изнутри | 51m | ||
| 12:25 | т/с Звездный путь | 6 – Женщины Мадда | 50m | ||
| 13:15 | т/с Звездный путь | 7 – Из чего сделаны девочки? | 51m | ||
| 14:06 | т/с Звездный путь | 8 – Мири | 51m | ||
| 14:57 | т/с Звездный путь | 9 – Кинжал разума | 50m | ||
| 15:47 | т/с Звездный путь | 10 – Корбомитный манёвр | 51m | ||
| 16:38 | т/с Звездный путь | 11 – Зверинец, Часть I | 51m | ||
| 17:29 | т/с Звездный путь | 12 – Зверинец, Часть II | 49m | ||
| 18:18 | т/с Звездный путь | 13 – Совесть короля | 51m | ||
| 19:09 | т/с Звездный путь | 14 – Равновесие страха | 51m | ||
| 20:00 | т/с Звездный путь | 15 – Увольнение на берег | 50m | ||
| 20:50 | т/с Звездный путь | 16 – Галилей-VII | 51m | ||
| 21:41 | т/с Звездный путь | 17 – Готосский Сквайр | 51m | ||
| 22:32 | т/с Звездный путь | 18 – Арена | 50m | ||
| 23:22 | т/с Звездный путь | 19 – Завтра – это вчера | 51m |
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_mqt1t7rb/schedule?date=2026-10-17&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_mqt1t7rb/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_mqt1t7rb/history?from=2025-11-12T00:00:00Z&to=2025-11-13T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_mqt1t7rb/schedule?date=2026-10-17&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_mqt1t7rb/schedule?date=2026-10-17&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_mqt1t7rb/schedule", params={"date": "2026-10-17", "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_mqt1t7rb/schedule?date=2026-10-17, the first programme { "data": [ { "id": "ls_ryw3nam6", "channel": "ch_mqt1t7rb", "start": "2026-10-16T20:12:00Z", "stop": "2026-10-16T21:09:00Z", "title": "т/с Звёздный путь: Странные новые миры 4 | 1 – Долины Маринер", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 29, "date": "2026-10-17", "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 | Wednesday 12 November 2025 | Category |
|---|---|---|
| 19:04 | т/с Star Trek: The Original Series – сезон 1, с. 1 – Ловушка для человека | |
| 20:08 | т/с Star Trek: The Original Series – сезон 1, с. 2 – Закон Чарли | |
| 20:59 | т/с Star Trek: The Original Series – сезон 1, с. 3 – Куда не ступала нога человека | |
| 3 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.