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 America/New_York time, what is on now and next, and the same data in your app with one call.
All times America/New_York. The same day from the API: GET /v1/channels/ch_pa1fbfrw/schedule?date=2026-10-11&tz=America/New_York
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 22:55 | Oliver TwistMonks promises to pay Fagin well if he causes Oliver's death. | Oliver Twist | 1h 36m | |
| 00:31 | David CopperfieldDavid's early life is idyllic until his mother marries the brutal Murdstone. | David Copperfield | 1h 39m | |
| 02:10 | David CopperfieldDavid attempts to woo Dora Spenlow while becoming reacquainted with friends. | David Copperfield | 1h 45m | |
| 03:56 | The Living and the DeadA pioneering Victorian psychologist investigates the haunting of a teenage girl. | S1 E1, Episode 1 | 1h 7m | |
| 05:03 | The Living and the DeadWhen a little boy claims to be haunted by sinister visions, Nathan investigates. | S1 E2, Episode 2 | 1h 7m | |
| 06:10 | The Living and the DeadThe farm's future is under threat. Nathan and Charlotte must save their crops. | S1 E3, Episode 3 | 1h 6m | |
| 07:15 | The Living and the DeadWhen a woman goes missing, Nathan must put his spiritual troubles aside to lead the rescue party. | S1 E4, Episode 4 | 1h 7m | |
| 08:22 | The Living and the DeadNathan's obsession with the spirits haunting Shepzoy is taking its toll on Charlotte and the farm. | S1 E5, Episode 5 | 1h 6m | |
| 09:27 | The Living and the DeadThe past and the present collide as the terrible truth of Nathan's son's death becomes clear. | S1 E6, Episode 6 | 1h 6m | |
| 10:33 | Great ExpectationsCharles Dickens' classic story about an orphan who becomes a gentleman. | Great Expectations | 1h 47m | |
| 12:20 | Great ExpectationsPip starts his new life as a gentleman in London, quickly acquiring expensive tastes. | Great Expectations | 1h 44m | |
| 14:04 | Jane Austen's Pride and PrejudiceWith the arrival of Mr. Bingley, Mrs. Bennet looks to marry off one of her five daughters. | Jane Austen's Pride and Prejudice | 1h 2m | |
| 15:05 | Jane Austen's Pride and PrejudiceMrs. Bennet hopes that Mr. Collins will propose to one of her daughters. | Jane Austen's Pride and Prejudice | 1h 2m | |
| 16:07 | Jane Austen's Pride and PrejudiceElizabeth learns that Charlotte is engaged; Jane realizes that the Bingleys are ignoring her. | Jane Austen's Pride and Prejudice | 1h 1m | |
| 17:08 | Jane Austen's Pride and PrejudiceRejected by Elizabeth, Darcy returns to Rosings Park and writes to her. | Jane Austen's Pride and Prejudice | 1h | |
| 18:09 | Jane Austen's Pride and PrejudiceDarcy introduces Elizabeth to his sister, Georgiana; Elizabeth receives distressing news. | Jane Austen's Pride and Prejudice | 57m | |
| 19:06 | Jane Austen's Pride and PrejudiceMrs. Bennet is delighted to have one of her daughters married; Elizabeth sees Wickham's true colors. | Jane Austen's Pride and Prejudice | 59m | |
| 20:05 | Jane Eyre (2006)Jane encounters Mr Rochester, but does his heart belong to another? | Jane Eyre (2006) | 59m | |
| 21:04 | Jane Eyre (2006)A shocking family secret forces Jane to leave Thornfield. Will she return? | Jane Eyre (2006) | 59m | |
| 22:02 | Jane Eyre (2006)Jane is surprised by a marriage proposal, but a terrible secret threatens her happiness. | Jane Eyre (2006) | 59m | |
| 23:01 | Jane Eyre (2006)St John makes Jane a tempting offer that will fulfill her lifelong ambition to travel. | Jane Eyre (2006) | 59m |
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_pa1fbfrw/schedule?date=2026-10-11&tz=America/New_York" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_pa1fbfrw/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_pa1fbfrw/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_pa1fbfrw/schedule?date=2026-10-11&tz=America/New_York"); 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_pa1fbfrw/schedule?date=2026-10-11&tz=America/New_York", { 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_pa1fbfrw/schedule", params={"date": "2026-10-11", "tz": "America/New_York"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_pa1fbfrw/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_zd21jdzt", "channel": "ch_pa1fbfrw", "start": "2026-10-11T02:55:25Z", "stop": "2026-10-11T04:31:34Z", "title": "Oliver Twist", "sub_title": "Oliver Twist", "description": "Monks promises to pay Fagin well if he causes Oliver's death.", "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 21, "date": "2026-10-11", "tz": "America/New_York" } }
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.