74.6M 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_zk257y3q/schedule?date=2026-10-12&tz=Asia/Ho_Chi_Minh
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 00:00 | Vòng quanh thế giới: Thế giới diệu kỳ | 30m | ||
| 00:30 | Phim truyện: Thái sư Trần Thủ Độ - Tập 3 | 50m | ||
| 01:20 | Truyền hình an ninh Thủ đô: Sức mạnh từ dữ liệu | 20m | ||
| 01:40 | Chuyện đô thị: Sửa luật đất đai - Giá đất sẽ do nhà nước quyết định | 20m | ||
| 02:00 | Phim truyền hình: Hà Nội trong mắt em - Tập 36 | 45m | ||
| 02:45 | Địa chỉ từ thiện: Những nghĩa cử cao đẹp | 15m | ||
| 03:00 | Di sản kể chuyện: Pháo đài đá ong kể chuyện | 45m | ||
| 03:45 | Con đường doanh nhân: CEO lội ruộng - Đi tìm giá trị từ đồng ruộng | 30m | ||
| 04:15 | Phim tài liệu: Giữ trọn lời thề "Quyết tử" | 30m | ||
| 04:45 | Giáo dục và đào tạo: Kiểm soát an toàn bữa ăn bán trú | 15m | ||
| 05:00 | Ca nhạc: Sắc màu | 30m | ||
| 05:30 | Vườn phim tuổi thơ: Hào khí Thăng Long - Phần 3 | 20m | ||
| 05:50 | Món ngon ở Hà Nội: Chả cá Thung Cấm | 35m | ||
| 06:25 | Bản tin Dự báo thời tiết | 5m | ||
| 06:30 | Hà Nội review: Khám phá triển lãm ảnh "Hà Nội trong tôi 2026" | 30m | ||
| 07:00 | Tiếp sóng chương trình thời sự VTV | 45m | ||
| 07:45 | Nghệ nhân Hà Nội: Người dệt hồn nón lá | 15m | ||
| 08:00 | Phóng sự tài liệu: Những ngày tháng 10 rực rỡ | 3h | ||
| 11:00 | Chuyện quanh ta: Người gác đêm - Tập 46 | 15m | ||
| 11:15 | Tác giả - tác phẩm: Vở diễn "Bedtime Story - Chuyện kể trước giờ đi ngủ" | 20m | ||
| 11:35 | Sức khỏe và cộng đồng: Thêm cơ hội sống cho bệnh nhân suy tim | 30m | ||
| 12:05 | Ca nhạc: Đất mẹ yêu thương | 40m | ||
| 12:45 | Hà Nội 18H | 30m | ||
| 13:15 | Bản tin thể thao | 5m | ||
| 13:20 | Hà Nội đến để yêu: Hành trình 5 cửa ô trên đường ray | 10m | ||
| 13:30 | Phim truyền hình: Hà Nội trong mắt em - Tập 36 | 40m | ||
| 14:10 | Những bông hoa đẹp: Người chắp cánh ước mơ nơi mái ấm tình thương | 5m | ||
| 14:15 | Nhịp sống Hà Nội: Trình diễn nhạc cụ từ gốm | 15m | ||
| 14:30 | Bản tin kinh tế - tài chính | 10m | ||
| 14:40 | Vườn phim tuổi thơ: Hào khí Thăng Long - Phần 3 | 20m | ||
| 15:00 | Phim truyện: Thái sư Trần Thủ Độ - Tập 4 | 50m | ||
| 15:50 | Giáo dục và đào tạo: Kiểm soát an toàn bữa ăn bán trú | 10m | ||
| 16:00 | Di sản kể chuyện: Tìm hiểu câu hát quan họ - Tập 2: Quan họ mới | 35m | ||
| 16:35 | Phóng sự tài liệu: Những ngày tháng 10 rực rỡ | 25m | ||
| 17:00 | Vòng quanh thế giới: Thế giới diệu kỳ | 30m | ||
| 17:30 | Thể dục buổi sáng | 15m | ||
| 17:45 | Nhịp sống Hà Nội: Giữ màu xanh trong công viên Thống Nhất | 15m | ||
| 18:00 | Hà Nội buổi sáng | 30m | ||
| 18:30 | Bản tin dự báo thời tiết | 5m | ||
| 18:35 | Vườn phim tuổi thơ: Hào khí Thăng Long - Phần 3 | 20m | ||
| 18:55 | Chuyện quanh ta: Hà Nội xin chào: Lúa non hay lúa mạch | 15m | ||
| 19:10 | Hà Nội Review: Khám phá triển lãm ảnh "Hà Nội trong tôi 2026" | 30m | ||
| 19:40 | Bản tin kinh tế - tài chính | 10m | ||
| 19:50 | Chuyển đổi số: Chợ 4.0, thay đổi từ những giao dịch nhỏ | 20m | ||
| 20:10 | Phóng sự tài liệu: Dấu ấn đền Cơ Xá - Di sản Thăng Long Hà Nội | 30m | ||
| 20:40 | Hộp thư truyền hình: Xung quanh kiến nghị về giải phóng mặt bằng tại xã Trung Giã | 20m | ||
| 21:00 | Phim truyện: Đào, Phở và Piano | 1h 45m | ||
| 22:45 | Công nghệ và đời sống: Công nghệ "tiết kiệm năng lượng" - Xu hướng mới của chip AI | 15m | ||
| 23:00 | Danh nhân Thăng Long - Hà Nội: Bậc trung thần một đời giữ trọn chữ "Trung hiếu liêm chính" | 15m | ||
| 23:15 | Tác giả - tác phẩm: Vở diễn "Bedtime Story - Chuyện kể trước giờ đi ngủ" | 15m | ||
| 23:30 | Con đường doanh nhân: CEO lội ruộng - Đi tìm giá trị từ đồng ruộng | 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_zk257y3q/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_zk257y3q/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_zk257y3q/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_zk257y3q/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_zk257y3q/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_zk257y3q/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_zk257y3q/schedule?date=2026-10-12, the first programme { "data": [ { "id": "ls_sktsrm4z", "channel": "ch_zk257y3q", "start": "2026-10-11T17:00:00Z", "stop": "2026-10-11T17:30:00Z", "title": "Vòng quanh thế giới: Thế giới diệu kỳ", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 51, "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.