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/Brussels 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/Brussels. The same day from the API: GET /v1/channels/ch_8fv90f0z/schedule?date=2026-10-14&tz=Europe/Brussels
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:08 | Murder MapsJohn Christie kills at least eight women during the 1940s and 1950s, including his wife; he eluded capture for many years. | S2 E5, John Christie: Serial Killer, Part 2 | 56m | |
| 00:04 | Murder MapsOn a hot summers day in 1934, a horrifying discovery was made in a trunk at the left luggage office of Brighton Train Station. | S3 E1, The Brighton Trunk Murders | 56m | |
| 01:01 | Crime Time SolversThe serene ambiance of Marcq-en-Barroeil was shattered by the abrupt disappearance of Natacha Mougel during her routine jog. | 57m | ||
| 01:01 | Crime Time SolversThe serene ambiance of Marcq-en-Barroeil was shattered by the abrupt disappearance of Natacha Mougel during her routine jog. | 57m | ||
| 01:58 | Crime Time SolversParis found itself gripped by fear in the aftermath of AbdelHakim Dekhar's violent rampage. | 58m | ||
| 02:56 | The Railway MurdersOn a September night in 1895, two railway policemen surprised a gang of thieves at work in a Wigan goods yard. | 57m | ||
| 03:53 | The Railway MurdersIn 1910, the city of Newcastle was transfixed by a murder trial. A clerk had been killed on a train and his wages bag stolen with hundreds of pound... | 57m | ||
| 03:53 | The Railway MurdersIn 1910, the city of Newcastle was transfixed by a murder trial. A clerk had been killed on a train and his wages bag stolen with hundreds of pound... | 57m | ||
| 04:50 | Crime Scene SolversOn February 5, 2000, two hunters discover a charred body on the banks of the Oise. | S6 E2, Quatre amants pour un crime : l'affaire Joël Deprez | 1h 8m | |
| 05:58 | Crime Scene SolversOn July 8, 2002, near Amiens, a farmer discovers the lifeless body of a young woman, Patricia Leclercq, on his field. | S6 E3, L'ombre d'un tueur en série : l'affaire Sophie Le Tan | 1h 9m | |
| 07:06 | Unsolved MurdersOn June 1, 2011, firefighters intervened to put out a fire in a joke shop in Louvroil in the North. They discovered the charred body of Jean Moritz... | 1h 50m | ||
| 08:56 | Unsolved MurdersOn August 4, 1997, the body of Christian Jambert, a retired gendarme, was discovered in his house in Auxerre. A 22 long rifle was placed on his legs. | 1h 51m | ||
| 10:47 | Mind InvestigatorsMore than a year after the death of Harmonie Marin, her boyfriend is arrested and accused of her murder. | 1h 6m | ||
| 11:53 | Mind InvestigatorsOn September 2nd 2015, the body of 2 years-old Méline is found in her home. Her father confesses to the murder. | 1h 4m | ||
| 12:57 | The CaseThe murder of 16-year-old schoolgirl Christelle Maillery, committed at Le Creusot in 1986. | 1h 8m | ||
| 14:05 | The CaseSusanna Zetterberg, a 19-year-old Swedish girl abducted as she left a Parisian nightclub. | 1h 5m | ||
| 15:10 | Murder MapsPutting on the front of a kindly baby farmer, someone who takes in the children of unwed mothers for a fee, Amelia Dyer became the most prolific ki... | S5 E6, Amelia Dyer | 57m | |
| 16:07 | Murder MapsCleveland, Ohio became a notorious city in the 1930s, struggling under the Great Depression, crime and corruption even before a serial killer prowl... | S5 E7, The Cleveland Torso Murders | 57m | |
| 17:04 | The Railway MurdersIn 1910, the city of Newcastle was transfixed by a murder trial. A clerk had been killed on a train and his wages bag stolen with hundreds of pound... | 57m | ||
| 18:00 | Dark Memories: Crimes From the Balearic IslandsIn the island of Menorca the mummified remains of a child are found inside a suitcase in 2010. | 47m | ||
| 18:48 | Dark Memories: Crimes From the Balearic IslandsAfter the discovery of the burnt bodies of two Chinese citizens in an abandoned house, a thrilling investigation begins in Mallorca. | 55m | ||
| 19:43 | Dark Memories: Crimes From the Balearic IslandsIn 2002, agents of the Guardia Civil receive information about an alleged unsolved crime. | 48m | ||
| 20:31 | Dark Memories: Crimes From the Balearic IslandsThe popular festivities of San Antonio Abad in the Mallorcan town of Pollença are interrupted by the brutal murder of Llorenç Colom. | 1h 10m | ||
| 21:41 | Dark Memories: Crimes From the Balearic IslandsOn January 11th, 1977 María Dolores Santiago Palenzuela disappeared leaving no trace. | 30m | ||
| 22:11 | Unsolved MurdersOn June 1, 2011, firefighters intervened to put out a fire in a joke shop in Louvroil in the North. They discovered the charred body of Jean Moritz... | 1h 50m |
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_8fv90f0z/schedule?date=2026-10-14&tz=Europe/Brussels" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_8fv90f0z/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_8fv90f0z/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_8fv90f0z/schedule?date=2026-10-14&tz=Europe/Brussels"); 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_8fv90f0z/schedule?date=2026-10-14&tz=Europe/Brussels", { 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_8fv90f0z/schedule", params={"date": "2026-10-14", "tz": "Europe/Brussels"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_8fv90f0z/schedule?date=2026-10-14, the first programme { "data": [ { "id": "ls_x5f3vmf1", "channel": "ch_8fv90f0z", "start": "2026-10-13T21:08:46Z", "stop": "2026-10-13T22:04:58Z", "title": "Murder Maps", "sub_title": null, "description": "John Christie kills at least eight women during the 1940s and 1950s, includin...", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 25, "date": "2026-10-14", "tz": "Europe/Brussels" } }
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 | Monday 13 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 155 countries.