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/Sao_Paulo time, what is on now and next, and the same data in your app with one call.
All times America/Sao_Paulo. The same day from the API: GET /v1/channels/ch_qa2nm73v/schedule?date=2026-10-13&tz=America/Sao_Paulo
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:57 | AssombraçõesUm ex-ranger do exército não pode fazer nada quando sua esposa grávida e sua filha bebê são ameaçadas pelos fantasmas de um homem fumante de charut... | Uma Assombração na Flórida | Series, Documentary | 59m |
| 00:56 | AssombraçõesUma casa mal-assombrada deixa a namorada de um homem em profunda depressão e sua amiga em uma tristeza terrível antes que ele finalmente chame uma ... | S3 E3, Hidden Terrror | Series, Documentary | 59m |
| 01:55 | AssombraçõesUma jovem família se muda para uma velha mansão em West Bay Lake, Wisconsin. O padrasto rapidamente enlouquece quando a família descobre que a casa... | S1 E2, The Haunting of Summerwind | Series, Documentary | 59m |
| 02:54 | AssombraçõesUma mãe solteira se muda para uma casa nova em Michigan com seu filho de três anos e descobre que tem o fantasma de um viciado em drogas no porão e... | S3 E2, The Attic | Series, Documentary | 59m |
| 03:53 | AssombraçõesEm Montreal, a nova casa de um casal em um antigo sobrado acaba sendo assombrada pelos fantasmas de uma garota de 15 anos que anseia por amor mater... | S1 E6, Lake Club Horror | Series, Documentary | 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_qa2nm73v/schedule?date=2026-10-13&tz=America/Sao_Paulo" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_qa2nm73v/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_qa2nm73v/history?from=2026-10-06T00:00:00Z&to=2026-10-07T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_qa2nm73v/schedule?date=2026-10-13&tz=America/Sao_Paulo"); 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_qa2nm73v/schedule?date=2026-10-13&tz=America/Sao_Paulo", { 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_qa2nm73v/schedule", params={"date": "2026-10-13", "tz": "America/Sao_Paulo"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_qa2nm73v/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_dp3800wm", "channel": "ch_qa2nm73v", "start": "2026-10-13T02:57:00Z", "stop": "2026-10-13T03:56:00Z", "title": "Assombrações", "sub_title": "Uma Assombração na Flórida", "description": "Um ex-ranger do exército não pode fazer nada quando sua esposa grávida e sua ...", "category": [ "series", "documentary" ], "flags": { "new": false, "live": false } } ], "meta": { "count": 5, "date": "2026-10-13", "tz": "America/Sao_Paulo" } }
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.