72.1M 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_bf5h1thn/schedule?date=2026-10-12&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:38 | м/ф Чёрный плащ 1-53 | 23m | ||
| 00:01 | м/ф Чёрный плащ 1-54 | 22m | ||
| 00:23 | м/ф Чёрный плащ 1-55 | 22m | ||
| 00:45 | м/ф Чёрный плащ 1-56 | 21m | ||
| 01:06 | м/ф Чёрный плащ 1-57 | 22m | ||
| 01:28 | м/ф Чёрный плащ 1-58 | 22m | ||
| 01:50 | м/ф Чёрный плащ 1-59 | 22m | ||
| 02:12 | м/ф Чёрный плащ 1-60 | 22m | ||
| 02:34 | м/ф Чёрный плащ 1-61 | 21m | ||
| 02:55 | м/ф Чёрный плащ 1-62 | 22m | ||
| 03:17 | м/ф Чёрный плащ 1-63 | 22m | ||
| 03:39 | м/ф Чёрный плащ 1-64 | 22m | ||
| 04:01 | м/ф Чёрный плащ 2-01 | 22m | ||
| 04:23 | м/ф Чёрный плащ 2-02 | 22m | ||
| 04:45 | м/ф Чёрный плащ 2-03 | 22m | ||
| 05:07 | м/ф Чёрный плащ 2-04 | 22m | ||
| 05:29 | м/ф Чёрный плащ 2-05 | 21m | ||
| 05:50 | м/ф Чёрный плащ 2-06 | 22m | ||
| 06:12 | м/ф Чёрный плащ 2-07 | 22m | ||
| 06:34 | м/ф Чёрный плащ 2-08 | 22m | ||
| 06:56 | м/ф Чёрный плащ 2-09 | 22m | ||
| 07:18 | м/ф Чёрный плащ 2-10 | 22m | ||
| 07:40 | м/ф Чёрный плащ 2-11 | 22m | ||
| 08:02 | м/ф Чёрный плащ 2-12 | 22m | ||
| 08:24 | м/ф Чёрный плащ 2-13 | 22m | ||
| 08:46 | м/ф Чёрный плащ 3-01 | 22m | ||
| 09:08 | м/ф Чёрный плащ 3-02 | 22m | ||
| 09:30 | м/ф Чёрный плащ 3-03 | 22m | ||
| 09:52 | м/ф Чип и Дейл Жизнь в парке – 01 | 22m | ||
| 10:14 | м/ф Чип и Дейл Жизнь в парке – 02 | 22m | ||
| 10:36 | м/ф Чип и Дейл Жизнь в парке – 03 | 23m | ||
| 10:59 | м/ф Чип и Дейл Жизнь в парке – 04 | 22m | ||
| 11:21 | м/ф Чип и Дейл Жизнь в парке – 05 | 22m | ||
| 11:43 | м/ф Чип и Дейл Жизнь в парке – 06 | 22m | ||
| 12:05 | м/ф Чип и Дейл Жизнь в парке – 07 | 23m | ||
| 12:28 | м/ф Чип и Дейл Жизнь в парке – 08 | 22m | ||
| 12:50 | м/ф Чип и Дейл Жизнь в парке – 09 | 22m | ||
| 13:12 | м/ф Чип и Дейл Жизнь в парке – 10 | 22m | ||
| 13:34 | м/ф Чип и Дейл Жизнь в парке – 11 | 23m | ||
| 13:57 | м/ф Чип и Дейл Жизнь в парке – 12 | 22m | ||
| 14:19 | м/ф Чип и Дейл спешат на помощь 01 – Похищенный рубин | 23m | ||
| 14:42 | м/ф Чип и Дейл спешат на помощь 02 – Как мы встретились с Рокфором | 23m | ||
| 15:05 | м/ф Чип и Дейл спешат на помощь 03 – История знакомства с Гайкой | 24m | ||
| 15:29 | м/ф Чип и Дейл спешат на помощь 04 – Итак, работаем вместе | 23m | ||
| 15:52 | м/ф Чип и Дейл спешат на помощь 05 – Конец истории с рубином | 24m | ||
| 16:16 | м/ф Чип и Дейл спешат на помощь 06 – Кошки не в счёт | 23m | ||
| 16:39 | м/ф Чип и Дейл спешат на помощь 07 – Приключения коралловой клуши | 22m | ||
| 17:01 | м/ф Чип и Дейл спешат на помощь 08 – Охотники за коврами | 23m | ||
| 17:24 | м/ф Чип и Дейл спешат на помощь 09 – Подводные пираты | 23m | ||
| 17:47 | м/ф Чип и Дейл спешат на помощь 10 – Как мы нянчились с бельчатами | 1h 13m |
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_bf5h1thn/schedule?date=2026-10-12&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bf5h1thn/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bf5h1thn/history?from=2026-07-01T00:00:00Z&to=2026-07-02T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_bf5h1thn/schedule?date=2026-10-12&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_bf5h1thn/schedule?date=2026-10-12&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_bf5h1thn/schedule", params={"date": "2026-10-12", "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_bf5h1thn/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_sh68vrr3", "channel": "ch_bf5h1thn", "start": "2026-10-11T20:38:00Z", "stop": "2026-10-11T21:01:00Z", "title": "м/ф Чёрный плащ 1-53", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 50, "date": "2026-10-12", "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 1 July 2026 | Category |
|---|---|---|
| 19:15 | Утиные истории 084 – Гигантомания | |
| 19:37 | Утиные истории 085 – Утки высокого полёта | |
| 20:00 | Утиные истории 086 – Cелезень в маске | |
| 10 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 155 countries.