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_bfrwy9yr/schedule?date=2026-10-13&tz=Asia/Ho_Chi_Minh
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Phim tài liệu - Những người con của Nhân dân - Tập 23 | 30m | ||
| 00:30 | Huyền bí sông Hằng - Tập 69 | 30m | ||
| 01:00 | Yoga - Số 11 | 1h | ||
| 02:00 | Khai Tâm Nhật Tụng - Kinh Phước Đức | 30m | ||
| 02:30 | Chùa Việt - Người Việt - Số 18 | 30m | ||
| 03:00 | Thầy tôi - | 15m | ||
| 03:15 | Miền đất Phật - Lâm Đồng - Đất phật cao nguyên - Tập 3 | 15m | ||
| 03:30 | Dưới bóng bồ đề - Đi qua vết thương bằng chánh niệm | 30m | ||
| 04:00 | Bước ngoặt cuộc đời - Số 292 | 45m | ||
| 04:45 | Nhịp sống đương đại | 15m | ||
| 05:00 | Đặc sắc Bchannel - Số 32 | 45m | ||
| 05:45 | Cơm chay cửa Thiền - Số 30 On now | 15m | ||
| 06:00 | Phim truyện: Dưới một mái nhà - Tập 9 | 30m | ||
| 06:30 | Đạo pháp và Dân tộc | 1h | ||
| 07:30 | Vươn khơi | 30m | ||
| 08:00 | Huyền bí sông Hằng - Tập 70 | 30m | ||
| 08:30 | Phim truyện: Em bé Hà Nội - Phần 1 | 30m | ||
| 09:00 | Chùa làng - Đại Giác cổ tự | 30m | ||
| 09:30 | Hương sen mầu nhiệm - Tâm an Lạc | 30m | ||
| 10:00 | Phim truyện: Tìm lại tình yêu - Tập 75 | 45m | ||
| 10:45 | Đâu khó có An Viên - Hữu cầu tất ứng, hiểu sao cho đúng? | 15m | ||
| 11:00 | Tạp chí Võ thuật | 30m | ||
| 11:30 | Dưới bóng bồ đề - Vô ngã | 30m | ||
| 12:00 | Yoga - Số 14 | 50m | ||
| 12:50 | Chùa xanh lan tỏa lối sống xanh | 10m | ||
| 13:00 | Phim truyện: Dưới một mái nhà - Tập 10 | 30m | ||
| 13:30 | Đạo pháp và Dân tộc | 1h | ||
| 14:30 | Vươn khơi | 30m | ||
| 15:00 | Phim truyện: Chị em định mệnh - Tập 76 | 50m | ||
| 15:50 | Tự hào người con Phật | 10m | ||
| 16:00 | Bản tin Bchannel - An Viên 24H | 30m | ||
| 16:30 | Văn hóa Bchannel - Số 35 | 45m | ||
| 17:15 | Đâu khó có An Viên - Là tự tin hay kiêu mạn? | 15m | ||
| 17:30 | Nhịp sống đương đại | 20m | ||
| 17:50 | Thầy tôi | 10m | ||
| 18:00 | Bản tin Bchannel - An Viên 24H | 30m | ||
| 18:30 | Khai Tâm Nhật Tụng - Kinh A Di Đà | 30m | ||
| 19:00 | Chùa Việt - Người Việt - Số 18 | 30m | ||
| 19:30 | Sống tỉnh thức | 11h 30m |
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_bfrwy9yr/schedule?date=2026-10-13&tz=Asia/Ho_Chi_Minh" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bfrwy9yr/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_bfrwy9yr/history?from=2026-06-29T00:00:00Z&to=2026-06-30T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_bfrwy9yr/schedule?date=2026-10-13&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_bfrwy9yr/schedule?date=2026-10-13&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_bfrwy9yr/schedule", params={"date": "2026-10-13", "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_bfrwy9yr/schedule?date=2026-10-13, the first programme { "data": [ { "id": "ls_dz65gtzj", "channel": "ch_bfrwy9yr", "start": "2026-10-12T17:00:00Z", "stop": "2026-10-12T17:30:00Z", "title": "Phim tài liệu - Những người con của Nhân dân - Tập 23", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 39, "date": "2026-10-13", "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 | Đâu khó có An Viên - Cùng tìm hiểu Lục Đạo Luân hồi | |
| 12:15 | Cơm chay cửa Thiền - Số 38 | |
| 12:30 | Hương sen mầu nhiệm - Hát văn | |
| 20 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.