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. Search any past day on the Archive plan.
All times Europe/Moscow. The same day from the API: GET /v1/channels/ch_bxn6rbgf/schedule?date=2026-10-13&tz=Europe/Moscow
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:52 | Mommy Does It Best | 31m | ||
| 00:23 | It's OK Bailey Wont Tell On Daddy | 31m | ||
| 00:54 | Slayed In The Clouds | 31m | ||
| 01:25 | Mona Reconnects Offline And In Real Life | 31m | ||
| 01:56 | Sierra Finally Fucks Her Sister's Boyfriend | 32m | ||
| 02:28 | My stepson applies the suntan lotion all over my body | 31m | ||
| 02:59 | Vivianne DeSilva gets worshiped by Callie Black and Berry Mckockiner | 31m | ||
| 03:30 | Horny Boss seduce her employee and gets her ass fucked | 31m | ||
| 04:01 | Curious Stepdaughter Wants To Try BBC | 32m | ||
| 04:33 | ORGASM AND ANAL CREAMPIE | 31m | ||
| 05:04 | Im underfucked | 32m | ||
| 05:36 | Lexi Lore | 32m | ||
| 06:08 | Zoe Sparx | 31m | ||
| 06:39 | Sex With Lex Makes Blake Shake | 32m | ||
| 07:11 | Teen Aria Has A New Secret | 32m | ||
| 07:43 | Morning cumshot with sexy roomie | 32m | ||
| 08:15 | Class Distraction | 32m | ||
| 08:47 | No Need For Bailey To Wear A Towel | 32m | ||
| 09:19 | Cherry Kiss The Neighborhood Slut | 32m | ||
| 09:51 | Naomi Ryder Hangs On Her BF to Cheat On Him | 33m | ||
| 10:24 | Ryan Riesling | 32m | ||
| 10:56 | AJ Applegate | 33m | ||
| 11:29 | Sucking and Fucking MILF | 32m | ||
| 12:01 | Cherry Kiss and Summer Rose | 32m | ||
| 12:33 | Wifey Danielle Renae Gets Pummeled By Massive Cock | 33m | ||
| 13:06 | Riley Reign | 34m | ||
| 13:40 | Sahara's Getting Wet For Dwayne | 33m | ||
| 14:13 | Want to Fuck Step Aunty in Ass | 34m | ||
| 14:47 | First Time Pegging | 33m | ||
| 15:20 | Bailey Has A Sweet Young Tight Gift Inside | 34m | ||
| 15:54 | Kylie Needs Help Cumming From Her Roommate | 34m | ||
| 16:28 | Sex Therapist Can't Resist A Big Cock | 34m | ||
| 17:02 | Kenzie's BF Calls Her While Her Ex Fucks Her | 34m | ||
| 17:36 | River Lynn Likes It Raw | 34m | ||
| 18:10 | Hotwife Ella's Bull Wants To Fill Her Emptiness | 35m | ||
| 18:45 | Stacked GILF Craves BBC Anal | 35m | ||
| 19:20 | Gabbie Carter Heard Everything Her Step Bro Said On now | 35m | ||
| 19:55 | Kylie Page Has A Dirty Schoolgirl Surprise | 35m | ||
| 20:30 | Special Sundays | 35m | ||
| 21:05 | Candice Handles All The Man Meat | 35m | ||
| 21:40 | Anna Claire Clouds Fucks a Sexy Traveler | 36m | ||
| 22:16 | Getting Deeper And Darker Inside Riley | 36m | ||
| 22:52 | Hot Blonde Masseuse Chloe Temple is Obsessed | 35m | ||
| 23:27 | Ryan Gets Her Stepson To Fuck A Woman | 37m |
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_bxn6rbgf/schedule?date=2026-10-13&tz=Europe/Moscow" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bxn6rbgf/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bxn6rbgf/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_bxn6rbgf/schedule?date=2026-10-13&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_bxn6rbgf/schedule?date=2026-10-13&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_bxn6rbgf/schedule", params={"date": "2026-10-13", "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_bxn6rbgf/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_frrx5z4d", "channel": "ch_bxn6rbgf", "start": "2026-10-12T20:52:00Z", "stop": "2026-10-12T21:23:00Z", "title": "Mommy Does It Best", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 44, "date": "2026-10-13", "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 | Friday 10 October 2025 | Category |
|---|---|---|
| Nothing held for that day. Try another date. | ||
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.