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_kjvmha8j/schedule?date=2026-10-14&tz=Asia/Ho_Chi_Minh
| Time | Programme | Episode | Category | Length |
|---|---|---|---|---|
| 23:50 | Phim truyện Việt Nam - Mẹ trùm - Tập 26 | 45m | ||
| 00:35 | Thi đua theo lời Bác gọi - Ninh Bình đẩy mạnh công tác chuyển đổi số | 9m | ||
| 00:44 | Tường thuật - Lễ Kỷ niệm 60 năm Ngày hy sinh của Mười nữ dân quân pháo phòng không Lam Hạ 1966 - 2026 | 1h 44m | ||
| 02:28 | Phim hoạt hình - Biệt đội siêu nhân nhí - Tập 32 | 13m | ||
| 02:41 | Du lịch Ninh Bình - Ninh Bình đẩy mạnh du lịch về nguồn | 19m | ||
| 03:00 | Chuyển đổi số - Trung tâm IOC - Chuẩn hóa điều hành bằng dữ liệu, tăng cường kết nối với người dân | 15m | ||
| 03:15 | Phóng sự - Người trẻ và hành trình làm mới nghề nông | 14m | ||
| 03:29 | Kể chuyện cùng bé - Câu chuyện Gấu con bị sâu răng | 14m | ||
| 03:43 | Chuyện đẹp mỗi tuần - Trao tri thức, truyền tình yêu nghề điều dưỡng | 17m | ||
| 04:00 | Thời sự Ninh Bình | 19m | ||
| 04:19 | Khởi nghiệp - Phụ nữ Xuân Hưng – Đổi mới tư duy, nâng cao giá trị nông sản | 13m | ||
| 04:32 | Cải cách hành chính - Đẩy nhanh tiến độ triển khai Trung tâm IOC | 14m | ||
| 04:46 | Phim hoạt hình - Biệt đội siêu nhân nhí - Tập 32 | 14m | ||
| 05:00 | Phóng sự - Từ kinh nghiệm quốc tế đến bài toán bảo tồn Di sản Tràng An | 14m | ||
| 05:14 | Những vấn đề cử tri quan tâm - Nghị quyết 72-NQ/TW – Tăng cường năng lực y tế, chủ động chăm sóc sức khỏe Nhân dân | 15m | ||
| 05:29 | Bản tin Trong nước & Quốc tế | 31m | ||
| 06:00 | Tăng trưởng xanh - Đánh thức giá trị xanh từ những cánh rừng Kim Bảng | 14m | ||
| 06:14 | Học tập và làm theo Bác - Thực hiện tư tưởng của Bác về khuyến học, khuyến tài, xây dựng xã hội học tập | 15m | ||
| 06:29 | An ninh - An toàn - An toàn từ mỗi ngôi nhà trong mùa mưa bão | 7m | ||
| 06:36 | Văn hóa và đời sống - Bạch Cừ – Nơi mạch nguồn văn hóa được trao truyền | 19m | ||
| 06:55 | Quảng cáo, quảng bá | 5m | ||
| 07:00 | Tiếp sóng Thời sự VTV1 | 46m | ||
| 07:46 | Thời sự Ninh Bình | 39m | ||
| 08:25 | Dự báo thời tiết Ninh Bình | 5m | ||
| 08:30 | Nông thôn ngày mới - Khánh Hội xây dựng nông thôn mới hiện đại, bền vững | 15m | ||
| 08:45 | Phim truyện - Vòng tròn định mệnh - Tập 33 | 50m | ||
| 09:35 | An toàn giao thông vì bình yên cuộc sống - Đảm bảo an toàn tại các dự án giao thông | 10m | ||
| 09:45 | Phim truyện - Vòng tròn định mệnh - Tập 34 | 55m | ||
| 10:40 | Ca nhạc - Hà Nội 12 mùa hoa | 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_kjvmha8j/schedule?date=2026-10-14&tz=Asia/Ho_Chi_Minh" # what is on now, and next curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kjvmha8j/now" # any past day (Archive plan) curl -H "Authorization: Bearer $TVG_KEY" \ "https://api.tvguideapi.com/v1/channels/ch_kjvmha8j/history?from=2025-10-13T00:00:00Z&to=2025-10-14T00:00:00Z"
$ch = curl_init("https://api.tvguideapi.com/v1/channels/ch_kjvmha8j/schedule?date=2026-10-14&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_kjvmha8j/schedule?date=2026-10-14&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_kjvmha8j/schedule", params={"date": "2026-10-14", "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_kjvmha8j/schedule?date=2026-10-14, the first programme { "data": [ { "id": "ls_b88wzbae", "channel": "ch_kjvmha8j", "start": "2026-10-13T16:50:00Z", "stop": "2026-10-13T17:35:00Z", "title": "Phim truyện Việt Nam - Mẹ trùm - Tập 26", "sub_title": null, "description": null, "category": [], "flags": { "new": false, "live": false } } ], "meta": { "count": 29, "date": "2026-10-14", "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.