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_vccdg9pa/schedule?date=2026-10-15&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:54 | Nuru Massage With Her Permission | 40m | ||
| 00:34 | Nuru Massage Family Friction 3:Lonely Dad's Dilemma | 46m | ||
| 01:20 | Nuru Massage The Leaky Package | 35m | ||
| 01:55 | Nuru Massage Sisterly Rivalry | 30m | ||
| 02:25 | Nuru Massage Teacher's Pest | 29m | ||
| 02:54 | Nuru Massage My Wife's Cool With It | 36m | ||
| 03:30 | Nuru Massage Mother-In-Law's Advice | 36m | ||
| 04:06 | Nuru Massage Trying Out The New Masseuse | 33m | ||
| 04:39 | Nuru Massage Friends Reacquainted | 34m | ||
| 05:13 | Nuru Massage Mom's Perfect Little Angel | 39m | ||
| 05:52 | Nuru Massage Sibling Squabble | 35m | ||
| 06:27 | Nuru Massage Embracing Her Sexuality | 44m | ||
| 07:11 | Nuru Massage Are You TRYING To Get Caught?! | 33m | ||
| 07:44 | Nuru Massage Naive Niece | 47m | ||
| 08:31 | Nuru Massage Kind Of A Big Deal | 39m | ||
| 09:10 | Nuru Massage Stuck In The Friend Zone | 39m | ||
| 09:49 | Nuru Massage My Girlfriend's Mom | 41m | ||
| 10:30 | Nuru Massage Soaping Up The Sitter | 32m | ||
| 11:02 | Nuru Massage I Can't Lose This Job | 43m | ||
| 11:45 | Nuru Massage Getting Their Buddy Laid | 27m | ||
| 12:12 | Nuru Massage Aunt's Welcome Gift | 26m | ||
| 12:38 | Nuru Massage You Won't Know Until You Try! | 26m | ||
| 13:04 | Nuru Massage Product Testing | 33m | ||
| 13:37 | Nuru Massage Must've Missed A Spot | 32m | ||
| 14:09 | Nuru Massage Up To No Good… | 29m | ||
| 14:38 | Nuru Massage Not Your Typical Uncle | 29m | ||
| 15:07 | Nuru Massage Her Husband's Boss | 32m | ||
| 15:39 | Nuru Massage Bad Reviews | 31m | ||
| 16:10 | Nuru Massage Expanding Their Horizons | 33m | ||
| 16:43 | Nuru Massage Eager Beaver | 28m | ||
| 17:11 | Nuru Massage A Proud Patriotic Parent | 32m | ||
| 17:43 | Nuru Massage Parlor Tricks:Sneaky Step-Mom | 42m | ||
| 18:25 | Nuru Massage While The Wife's Napping… | 27m | ||
| 18:52 | Nuru Massage Something For Your Trouble | 30m | ||
| 19:22 | Nuru Massage Kept After Class | 46m | ||
| 20:08 | Nuru Massage No Need To Be Shy | 49m | ||
| 20:57 | Nuru Massage Secret NURU Caught By Surveillance Cam | 55m | ||
| 21:52 | Nuru Massage Daddy's Rival Daughters | 35m | ||
| 22:27 | Nuru Massage Guy-Curious | 48m | ||
| 23:15 | Nuru Massage Tag-Teamed By My In-Laws | 29m | ||
| 23:44 | Nuru Massage But You Two Are Step-Sisters…! | 40m |
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_vccdg9pa/schedule?date=2026-10-15&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_vccdg9pa/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_vccdg9pa/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_vccdg9pa/schedule?date=2026-10-15&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_vccdg9pa/schedule?date=2026-10-15&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_vccdg9pa/schedule", params={"date": "2026-10-15", "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_vccdg9pa/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_ymn2asyg", "channel": "ch_vccdg9pa", "start": "2026-10-14T20:54:00Z", "stop": "2026-10-14T21:34:00Z", "title": "Nuru Massage With Her Permission", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 41, "date": "2026-10-15", "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.