74.3M 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.
All times Europe/Moscow. The same day from the API: GET /v1/channels/ch_t6j88m15/schedule?date=2026-10-12&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:32 | Asshole Fever Interior Design Behind | 40m | ||
| 00:12 | Asshole Fever As Long As I Can Watch | 37m | ||
| 00:49 | Asshole Fever Tempted By The Sitter's Ass | 41m | ||
| 01:30 | Asshole Fever Meating His Coworker | 36m | ||
| 02:06 | Asshole Fever From Workaholic To ASSaholic | 41m | ||
| 02:47 | Asshole Fever What He Gave Up | 38m | ||
| 03:25 | Asshole Fever Up His In-Law's Skirt | 37m | ||
| 04:02 | Asshole Fever Rained Out And Rear-Ended | 36m | ||
| 04:38 | Asshole Fever Unlocking Her Booty | 39m | ||
| 05:17 | Asshole Fever Wardrobe Malfucktion | 38m | ||
| 05:55 | Asshole Fever Stay A Little Longer… | 35m | ||
| 06:30 | Asshole Fever The Masseuse's Turn To Get Massaged | 41m | ||
| 07:11 | #START | 22m | ||
| 07:33 | Anal Teen Angels Lonely Days No More | 24m | ||
| 07:57 | Anal Teen Angels Tight Butt | 23m | ||
| 08:20 | Anal Teen Angels Hot In White | 27m | ||
| 08:47 | Anal Teen Angels Anal Fantasy | 26m | ||
| 09:13 | Anal Teen Angels My Mom's Masseur | 23m | ||
| 09:36 | Anal Teen Angels Zazie Loves Anal | 23m | ||
| 09:59 | Anal Teen Angels Sultry Schoolgirl | 34m | ||
| 10:33 | Anal Teen Angels Babysitter Candidate | 29m | ||
| 11:02 | Anal Teen Angels Big Ass Big Appetite | 23m | ||
| 11:25 | Anal Teen Angels Missed A Spot | 33m | ||
| 11:58 | Anal Teen Angels Evening Playtime | 27m | ||
| 12:25 | Anal Teen Angels Roommate Romance | 35m | ||
| 13:00 | Anal Teen Angels My Friend's Cheating Boyfriend | 29m | ||
| 13:29 | Anal Teen Angels My Sister's Fiance | 29m | ||
| 13:58 | Anal Teen Angels No More Games | 38m | ||
| 14:36 | Anal Teen Angels Yoga First, Anal Later | 28m | ||
| 15:04 | Anal Teen Angels Busty Lusty | 31m | ||
| 15:35 | Anal Teen Angels Everything For Daddy's Girl | 22m | ||
| 15:57 | Anal Teen Angels Anal Practice | 35m | ||
| 16:32 | Anal Teen Angels An Ass To Adore | 30m | ||
| 17:02 | Anal Teen Angels Stretching is Important | 30m | ||
| 17:32 | Anal Teen Angels Nerdy but Needy | 1h 28m | ||
| 19:20 | Anal Teen Angels Name of the Game | 23m | ||
| 19:43 | Anal Teen Angels Tantalizing Talent | 24m | ||
| 20:07 | Anal Teen Angels Bumping into Her Ass | 27m | ||
| 20:34 | Anal Teen Angels Sneaky Surprise | 24m | ||
| 20:58 | Anal Teen Angels Cheerleader Training | 29m | ||
| 21:27 | Anal Teen Angels The Boss' Slutty Daughter | 28m | ||
| 21:55 | Anal Teen Angels Little Miss Fancy Pants | 30m | ||
| 22:25 | Anal Teen Angels Anal Training | 19m | ||
| 22:44 | Anal Teen Angels Her First Boyfriend | 30m | ||
| 23:14 | Anal Teen Angels Young Exhibitionists | 23m | ||
| 23:37 | Anal Teen Angels Erotic Surprise | 25m |
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_t6j88m15/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_t6j88m15/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_t6j88m15/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_t6j88m15/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_t6j88m15/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_t6j88m15/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_t6j88m15/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_tx4m8aap", "channel": "ch_t6j88m15", "start": "2026-10-11T20:32:00Z", "stop": "2026-10-11T21:12:00Z", "title": "Asshole Fever Interior Design Behind", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 46, "date": "2026-10-12", "tz": "Europe/Moscow" } }
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.