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 Africa/Johannesburg time, what is on now and next, and the same data in your app with one call.
All times Africa/Johannesburg. The same day from the API: GET /v1/channels/ch_4gsxemz5/schedule?date=2026-10-15&tz=Africa/Johannesburg
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:23 | Saving HopeA high profile double hand replantation becomes Alex’s chance to prove herself to Kinney. | 51m | ||
| 00:14 | Saving HopeWhen a hypnotist is called into the hospital, the man uses his psychic ability to connect Charlie and Alex. | 51m | ||
| 01:06 | Saving HopeA routine surgical procedure goes awry when Alex’s patient, a soon-to-be-wed young woman, falls into a coma. | 51m | ||
| 01:57 | Nurse JackieJackie reluctantly attends Kevin’s wedding. Carrie makes demands on Coop. | 33m | ||
| 02:30 | Nurse JackieCoop gets a surprise. Jackie hits the road. Season finale. | 31m | ||
| 03:00 | Nurse JackieJackie suffers through a harrowing stay in a holding cell followed by sedated detox. | 33m | ||
| 03:33 | Nurse JackieJackie sets her sights on returning to All Saints, aided by her lawyer - but she can’t afford his retainer. | 32m | ||
| 04:05 | Nurse JackieUnder the Diversion Program, Jackie cannot touch patients or medication and undergoes daily urine screens. | 32m | ||
| 04:37 | Nurse JackieJackie, Dr. Prince and Akalitus run the ER without nurses when Zoey leads a walk-out to protest the closing. | 29m | ||
| 05:06 | Nurse JackieAfter an unexpected validation from Grace, Jackie is determined to stop dealing. | 32m | ||
| 05:38 | Nurse JackieDr. Prince enlists Jackie’s help to keep an ICU patient with a brain tumor from giving up his fight to live. | 31m | ||
| 06:09 | Nurse JackieJackie and Zoey set out on an unexpected road trip. Dr. Prince attracts a neighborhood mob to All Saints. | 32m | ||
| 06:41 | Nurse JackieJackie and Eddie receive an unwelcome knock at the door that puts everything they’ve worked for in jeopardy. | 31m | ||
| 07:12 | Nurse JackieJackie bonds with an emotionally unstable, but charming, patient Vigilante Jones who claims to be a superhero. | 33m | ||
| 07:45 | Nurse JackieIt’s the last day at All Saints and Jackie’s future is up in the air. An old friend makes a surprise return. | 33m | ||
| 08:18 | NursesIt’s Nursing Week and St Mary’s nurses are confronted by the fact that everyone has a hidden side. | 52m | ||
| 09:10 | NursesNurses always aim to be healers, so it’s hard to accept that sometimes things get worse before they get better | 52m | ||
| 10:02 | NursesWith a pandemic on the horizon, our nurses each deal with people longing for wishes to come true. | 52m | ||
| 10:54 | Saving HopeA routine surgical procedure goes awry when Alex’s patient, a soon-to-be-wed young woman, falls into a coma. | 51m | ||
| 11:45 | Saving HopeWhen a hypnotist is called into the hospital, the man uses his psychic ability to connect Charlie and Alex. | 51m | ||
| 12:37 | Saving HopeAlex and Dawn argue over who should be Charlie's legal decision maker. | 51m | ||
| 13:28 | Saving HopeWith Charlie removed from his ventilator, all he and Alex can do is wait and ask: is this really it? | 51m | ||
| 14:19 | Saving HopeWhen Joel gets cold feet in the OR, Kinney takes him with her on a Continuing Medical Education assignment. | 51m | ||
| 15:11 | Saving HopeWhen a plane is forced to land due to a sick passenger, the patient is taken to Hope Zion. | 51m | ||
| 16:02 | Saving HopeAlex and Shahir bring Charlie to the O.R. for a last resort procedure. | 51m | ||
| 16:53 | Saving HopeAfter a major turn of events, Alex is faced with a monumental question: is her life now changed forever? | 51m | ||
| 17:45 | NursesThe St. Mary's nursing team must confront their first confirmed case of the Coronavirus. | 52m | ||
| 18:37 | NursesGrace, Ashley, Keon, Naz and Wolf embark on a tumultuous first shift at St. Mary’s. | 50m | ||
| 19:27 | NursesWhen a guest of honour at a St. Mary’s fundraiser collapses, the patient refuses to tell her family her secret | 52m | ||
| 20:19 | Saving HopeAlex and Dawn argue over who should be Charlie's legal decision maker. | 51m | ||
| 21:10 | Saving HopeWith Charlie removed from his ventilator, all he and Alex can do is wait and ask: is this really it? | 51m | ||
| 22:02 | Saving HopeWhen Joel gets cold feet in the OR, Kinney takes him with her on a Continuing Medical Education assignment. | 51m | ||
| 22:53 | Saving HopeWhen a plane is forced to land due to a sick passenger, the patient is taken to Hope Zion. | 51m | ||
| 23:44 | Saving HopeAlex and Shahir bring Charlie to the O.R. for a last resort procedure. | 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_4gsxemz5/schedule?date=2026-10-15&tz=Africa/Johannesburg" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_4gsxemz5/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_4gsxemz5/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_4gsxemz5/schedule?date=2026-10-15&tz=Africa/Johannesburg"); 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_4gsxemz5/schedule?date=2026-10-15&tz=Africa/Johannesburg", { 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_4gsxemz5/schedule", params={"date": "2026-10-15", "tz": "Africa/Johannesburg"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_4gsxemz5/schedule?date=2026-10-15, the first programme { "data": [ { "id": "ls_qq0px3dp", "channel": "ch_4gsxemz5", "start": "2026-10-14T21:23:20Z", "stop": "2026-10-14T22:14:39Z", "title": "Saving Hope", "sub_title": null, "description": "A high profile double hand replantation becomes Alex’s chance to prove hersel...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 34, "date": "2026-10-15", "tz": "Africa/Johannesburg" } }
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.