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_ksmv944e/schedule?date=2026-10-12&tz=Asia/Ho_Chi_Minh
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Phim truyện: Hạnh phúc đến rồi Phần 6 - Tập 73 | 45m | ||
| 00:45 | Phim truyện: Hạnh phúc đến rồi Phần 6 - Tập 74 | 45m | ||
| 01:30 | Chương trình tiếng Khmer | 4h 30m | ||
| 06:00 | Thời sự | 30m | ||
| 06:30 | Thời tiết | 5m | ||
| 06:35 | Hạnh phúc là gì: Người giữ tiếng đàn nhị của người Mông | 10m | ||
| 06:45 | Giờ vàng thể thao | 15m | ||
| 07:00 | Phim truyện: Ai cũng biết em yêu anh - Tập 25 | 45m | ||
| 07:45 | Phim truyện: Ai cũng biết em yêu anh - Tập 26 | 45m | ||
| 08:30 | Vua tiếng Việt | 45m | ||
| 09:15 | Phim truyện: Anh chàng nhà bên - Tập 17 | 45m | ||
| 10:00 | Bí ẩn tự nhiên: AREM - Ký ức giữa đại ngàn | 30m | ||
| 10:30 | Phim truyện: Ngoại tình - Tập 19 | 45m | ||
| 11:15 | VTV5 Tây Nam Bộ kết nối | 15m | ||
| 11:30 | Cảnh giác 24/7: Lừa đảo thẻ tín dụng | 30m | ||
| 12:00 | Phim truyện: Trạm cứu hộ trái tim - Tập 46 | 45m | ||
| 12:45 | Giai điệu kết nối: Nghệ sĩ ưu tú Tố Nga | 45m | ||
| 13:30 | Phim truyện: Anh chàng nhà bên - Tập 17 | 45m | ||
| 14:15 | Phim tài liệu: Niềm tin và khát vọng | 30m | ||
| 14:45 | VTV5 Tây Nam Bộ kết nối | 15m | ||
| 15:00 | Khám phá Việt Nam: Nét đẹp Mê Linh | 15m | ||
| 15:15 | Sitcom: Bất đẳng thức ngọt ngào - Tập 3 | 15m | ||
| 15:30 | S-tech sóng công nghệ | 30m | ||
| 16:00 | Đường lên đỉnh Olympia | 45m | ||
| 16:45 | Phim truyện: Cửu Châu Phiêu Miểu Lục -Tập 16 | 45m | ||
| 17:30 | Chương trình tiếng Khmer | 2h 30m | ||
| 20:00 | Mảnh ghép cuộc sống: Bản giao ước xanh | 30m | ||
| 20:30 | Số hóa di sản | 30m | ||
| 21:00 | Phim truyện: Đại Thế giới - Tập 2 | 45m | ||
| 21:45 | Chào tuần mới | 30m | ||
| 22:15 | Sitcom: Bất đẳng thức ngọt ngào - Tập 4 | 15m | ||
| 22:30 | Ánh sáng tri thức: Gieo mầm tri thức trên cánh đồng | 15m | ||
| 22:45 | Phim truyện: Trạm cứu hộ trái tim -Tập 47 | 45m | ||
| 23:30 | Thời sự | 20m | ||
| 23:50 | Bản tin thể thao | 5m | ||
| 23:55 | Nhân tài Đại Việt: Đứa cháu bất tài của phú ông | 5m |
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_ksmv944e/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_ksmv944e/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_ksmv944e/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_ksmv944e/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_ksmv944e/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_ksmv944e/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_ksmv944e/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_cw8a8gq0", "channel": "ch_ksmv944e", "start": "2026-10-11T17:00:00Z", "stop": "2026-10-11T17:45:00Z", "title": "Phim truyện: Hạnh phúc đến rồi Phần 6 - Tập 73", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 36, "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 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.