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/Stockholm time, what is on now and next, and the same data in your app with one call.
All times Europe/Stockholm. The same day from the API: GET /v1/channels/ch_8afkm7n9/schedule?date=2026-10-13&tz=Europe/Stockholm
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:28 | BullBull joins the defense team of a seemingly unwinnable case when a doctor is put on trial after his DNA links him to a homicide; Bull and Benny work... | S3 E5, The Missing Piece | Drama, Series | 52m |
| 00:20 | BullBull and the TAC team must help when Marissa's restaurateur husband is charged with involuntary manslaughter after one of his employees dies, alleg... | S3 E6, Fool Me Twice | Drama, Series | 53m |
| 01:13 | BullBull confronts his guilt over closing his psychiatric practice when a former patient goes on trial for killing her brother | S3 E7, A Girl Without Feelings | Drama, Series | 53m |
| 02:06 | BullBull takes on a pro bono client who was poorly advised by his public defender to plead guilty to a misdemeanor assault charge and is now facing fel... | S3 E8, But for the Grace | Drama, Series | 53m |
| 02:58 | BullDanny looks to her colleagues for help when her boyfriend is arrested and threatened with deportation; Bull represents a German national who is bei... | S3 E9, Separation | Drama, Series | 52m |
| 03:51 | Bull On nowBull represents a priest who knows, but cannot reveal, the identity of a driver involved in a fatal hit-and-run accident. | S3 E10, A Higher Law | Drama, Series | 53m |
| 04:43 | BullBull and his romantic rival, Diana Lindsay, join forces to create two defense teams when Diana's niece and her husband are charged with armed robbery; | S3 E11, Separate Together | Drama, Series | 53m |
| 05:36 | BullBull defends New York City's chief medical examiner, Julia Martin, after she's charged with tampering with evidence tied to the case that made her ... | S3 E12, Split Hairs | Drama, Series | 52m |
| 06:28 | BullBull's new relationship with Diana is complicated by his renewed feelings for his ex-wife when they're reunited by the sudden death of her and Benn... | S3 E13, Prior Bad Acts | Drama, Series | 53m |
| 07:21 | BullBull aims to raise reasonable doubt among the jurors in his friend Nathan's trial, when he is tried for his wife's murder. | S3 E14, Leave It All Behind | Drama, Series | 52m |
| 08:13 | BullBull gets to work alongside a legendary lawyer who asks for help bringing a suit against the U.S. government for the death of a man killed while in... | S3 E15, Security Fraud | Drama, Series | 53m |
| 09:06 | BullChunk represents his first legal client, a young man facing federal counterfeiting charges | Forfeiture | Drama, Series | 53m |
| 09:58 | BullBull and the TAC team represent a teenage boy raised in complete isolation who goes on trial for murder after engaging in a shootout. | Parental Guidance | Drama, Series | 53m |
| 10:51 | BullBull's romantic rival, Diana Lindsay, jeopardizes her career when she secretly has Bull come to Texas to assist a couple fighting against her forme... | Don't Say A Word | Drama, Series | 52m |
| 11:43 | BullDanny enlists Bull's help for the assault trial of her former FBI mentor, a bounty hunter who kidnapped the wrong mark during his first assignment. | Bounty | Drama, Series | 50m |
| 12:33 | BullBull fears his client's family ties will negatively impact the jury when he represents the young heir of an infamous crime family | The Good One | Drama, Series | 53m |
| 13:26 | BullBull helps mount a defense for Taylor's brother-in-law, a prison guard charged with manslaughter for the drowning deaths of two inmates in the midd... | When The Rains Come | Drama, Series | 51m |
| 14:17 | BullBull must convince a jury that an alleged murder was actually a tragic accident when TAC represents a woman charged in her 3-year-old stepdaughter'... | Pillar Of Salt | Drama, Series | 53m |
| 15:10 | BullAs Bull prepares for fatherhood, his work at TAC suffers without his top attorney Benny, who quit in reaction to Bull's romantic reconnection to Is... | Labor Days | Drama, Series | 53m |
| 16:03 | BullA charismatic entrepreneur is accused of defrauding investors in her seemingly groundbreaking water filtration company | Fantastica Voyage | Drama, Series | 53m |
| 16:56 | BullBenny's previous career with the district attorney's office comes into focus when Chunk aims to get a new trial for a man he believes was wrongfull... | Rectify | Drama, Series | 53m |
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_8afkm7n9/schedule?date=2026-10-13&tz=Europe/Stockholm" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_8afkm7n9/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_8afkm7n9/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_8afkm7n9/schedule?date=2026-10-13&tz=Europe/Stockholm"); 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_8afkm7n9/schedule?date=2026-10-13&tz=Europe/Stockholm", { 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_8afkm7n9/schedule", params={"date": "2026-10-13", "tz": "Europe/Stockholm"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_8afkm7n9/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_e3kfws6e", "channel": "ch_8afkm7n9", "start": "2026-10-12T21:28:16Z", "stop": "2026-10-12T22:20:19Z", "title": "Bull", "sub_title": "The Missing Piece", "description": "Bull joins the defense team of a seemingly unwinnable case when a doctor is p...", "category": [ "drama", "series" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 21, "date": "2026-10-13", "tz": "Europe/Stockholm" } }
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.