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 Asia/Ho_Chi_Minh 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 Asia/Ho_Chi_Minh. The same day from the API: GET /v1/channels/ch_0b72r4wm/schedule?date=2026-10-12&tz=Asia/Ho_Chi_Minh
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 07:00 | Tạp chí kinh tế cuối tuần | 30m | ||
| 07:30 | Phim hoạt hình: Vận mệnh trong tay nàng - Tập 11 | 15m | ||
| 07:45 | 360 độ miền Tây: Số 39 | 15m | ||
| 08:00 | Toàn cảnh 24 giờ | 30m | ||
| 08:30 | Tiếng tơ đồng: Ca chặp trong đờn ca tài tử | 30m | ||
| 09:00 | Tọa đàm: Tay chân miệng mùa tựu trường | 1h | ||
| 10:00 | Bạn của nhà nông: Số 21 | 45m | ||
| 10:45 | Phóng sự: Hơi ấm bên hành trình | 15m | ||
| 11:00 | Khỏe cùng chuyên gia: Tăng cường đề kháng cho người có bệnh nền | 1h | ||
| 12:00 | Bản tin Nông nghiệp | 10m | ||
| 12:10 | Xổ số kiến thiết: Kiên Giang - Tiền Giang | 30m | ||
| 12:40 | Nhà nông và công nghệ: Số 41 | 5m | ||
| 12:45 | Lời xin lỗi diệu kỳ: Quả ngọt | 15m | ||
| 13:00 | Phim truyện: Mặt trời lạnh - Tập 3 | 45m | ||
| 13:45 | Phim hoạt hình: Vận mệnh trong tay nàng - Tập 12 | 15m | ||
| 14:00 | Toàn cảnh 24 giờ | 45m | ||
| 14:45 | Quốc phòng toàn dân QK9: Số 41 | 15m | ||
| 15:00 | Thời sự | 45m | ||
| 15:45 | Tọa đàm: Giải pháp bảo vệ trái non vụ Tết | 1h | ||
| 16:45 | Cảnh giác 247 | 30m | ||
| 17:15 | Phim tài liệu: Người Khmer Nam Bộ - Tập 7 | 30m | ||
| 17:45 | Phim truyện: Mặt trời lạnh - Tập 4 | 45m | ||
| 18:30 | Mảnh ghép hoàn hảo: Số 116 | 30m | ||
| 19:00 | Đời nghệ sỹ: Ca sĩ Lê Vũ Phương On now | 12h |
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_0b72r4wm/schedule?date=2026-10-12&tz=Asia/Ho_Chi_Minh" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_0b72r4wm/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_0b72r4wm/history?from=2026-06-29T00:00:00Z&to=2026-06-30T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_0b72r4wm/schedule?date=2026-10-12&tz=Asia/Ho_Chi_Minh"); 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_0b72r4wm/schedule?date=2026-10-12&tz=Asia/Ho_Chi_Minh", { 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_0b72r4wm/schedule", params={"date": "2026-10-12", "tz": "Asia/Ho_Chi_Minh"}, headers={"Authorization": f"Bearer {os.environ['TVG_KEY']}"}, ) for slot in r.json()["data"]: print(slot["start"], slot["title"])
// GET /v1/channels/ch_0b72r4wm/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_6xepger2", "channel": "ch_0b72r4wm", "start": "2026-10-12T00:00:00Z", "stop": "2026-10-12T00:30:00Z", "title": "Tạp chí kinh tế cuối tuần", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 24, "date": "2026-10-12", "tz": "Asia/Ho_Chi_Minh" } }
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 29 June 2026 | Category |
|---|---|---|
| 12:00 | Tình khúc vượt thời gian: Những miền ký ức | |
| 12:45 | Mảnh ghép hoàn hảo: Số 101 | |
| 13:20 | THTT FIFA World Cup 2026: Nam Phi - Canada | |
| 14 more programmes that day, on Archive | ||
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.