73.8M 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_kqwv98jz/schedule?date=2026-10-11&tz=Asia/Ho_Chi_Minh
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Úm ba la ra chữ gì? | 50m | ||
| 00:50 | Hạnh phúc là gì?: Đi tiếp con đường của cha | 10m | ||
| 01:00 | Vua tiếng Việt | 1h | ||
| 02:00 | Vũ trụ đồng tiền: Tứ kết 8 - Tinh vân dấu vết | 50m | ||
| 02:50 | Cả nhà cùng vui | 10m | ||
| 03:00 | Hồn Việt | 1h 10m | ||
| 04:10 | Chiến sĩ - Đường tới vinh quang | 49m | ||
| 04:59 | Thời tiết | 1m | ||
| 05:00 | S - Việt Nam 15 | 15m | ||
| 05:15 | Giai điệu kết nối: Nhạc và phim | 45m | ||
| 06:00 | Phim truyện: Mật mã tình yêu - Tập 10 | 35m | ||
| 06:35 | Check in Việt Nam: Thưởng thức ẩm thực như người Nha Trang | 15m | ||
| 06:50 | Những bông hoa nhỏ - Vườn Tween: Những câu nói kinh điển của bố mẹ | 10m | ||
| 07:00 | Thời sự | 55m | ||
| 07:55 | Thật - Giả kiểm chứng | 5m | ||
| 08:00 | Anh trai vượt ngàn chông gai | 1h 30m | ||
| 09:30 | Phim truyện: Cuộc chiến hạ lưu - Tập 9 | 1h | ||
| 10:30 | Giai điệu kết nối: Nhạc và phim | 45m | ||
| 11:15 | VTV kết nối | 15m | ||
| 11:30 | Hiểu sâu - Sống chất: Chuẩn bị cho tuổi già | 30m | ||
| 12:00 | Tiếp tục chương trình | 1m | ||
| 12:01 | Phim truyện: Ấm áp và ngọt ngào - Tập 36 | 46m | ||
| 12:10 | Phim truyện: Ấm áp và ngọt ngào - Tập 36 | 50m | ||
| 12:47 | Vui - Khỏe - Có ích | 51m | ||
| 13:00 | Vui - Khỏe - Có ích | 30m | ||
| 13:30 | Úm ba la ra chữ gì? | 50m | ||
| 13:38 | Úm ba la ra chữ gì? | 52m | ||
| 14:20 | Talk VietNam: Tinh hoa nghề Việt | 40m | ||
| 14:30 | Talk VietNam: Tinh hoa nghề Việt | 42m | ||
| 15:00 | Giai điệu kết nối: Nhạc và phim | 45m | ||
| 15:12 | Giai điệu kết nối: Nhạc và phim | 45m | ||
| 15:45 | Chiến sĩ - Đường tới vinh quang | 50m | ||
| 15:57 | Chiến sĩ - Đường tới vinh quang | 47m | ||
| 16:35 | Sao check: Diễn viên Phương Nam | 25m | ||
| 16:44 | Sao check: Diễn viên Phương Nam | 26m | ||
| 17:00 | Vua tiếng Việt | 1h | ||
| 17:10 | Vua tiếng Việt | 50m | ||
| 18:00 | Cà phê sáng | 46m | ||
| 18:45 | Sao check | 15m | ||
| 18:46 | Sao check: Diễn viên Steven Nguyễn | 14m | ||
| 19:00 | Nhật ký người Việt: Di sản tân nhạc Hà Nội | 10m | ||
| 19:10 | Cha con vạn dặm: Chổi to chổi nhỏ | 5m | ||
| 19:15 | Vị quê: Hương vị cá nướng Biển Quỳnh | 10m | ||
| 19:25 | Quà tặng cuộc sống: Chàng trai khắc gỗ | 10m | ||
| 19:35 | Việt Nam đa sắc | 10m | ||
| 19:45 | VTV kết nối | 9m | ||
| 19:54 | Thời tiết | 1m | ||
| 19:55 | Việt Nam Xanh: Nông sản xấu mã | 5m | ||
| 20:00 | Trao gửi yêu thương | 40m | ||
| 20:40 | Cẩm nang vàng cho sức khỏe | 20m | ||
| 21:00 | Sức nước ngàn năm | 1h | ||
| 22:00 | Nhật ký trên khóa Sol: Ca sĩ A king Lứu | 30m | ||
| 22:30 | Luật siêu dễ | 30m | ||
| 23:00 | Cầu thủ nhí | 45m | ||
| 23:45 | Gia đình vui vẻ: Gia đình chị Tuyết Âu - Phần 2 | 15m |
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_kqwv98jz/schedule?date=2026-10-11&tz=Asia/Ho_Chi_Minh" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kqwv98jz/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kqwv98jz/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_kqwv98jz/schedule?date=2026-10-11&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_kqwv98jz/schedule?date=2026-10-11&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_kqwv98jz/schedule", params={"date": "2026-10-11", "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_kqwv98jz/schedule?date=2026-10-11, the first programme { "data": [ { "id": "ls_1za7bfs5", "channel": "ch_kqwv98jz", "start": "2026-10-10T17:00:00Z", "stop": "2026-10-10T17:50:00Z", "title": "Úm ba la ra chữ gì?", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 55, "date": "2026-10-11", "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 13 October 2025 | Category |
|---|---|---|
| Nothing held for that day. Try another date. | ||
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 150 countries.