Vietnam Tender Intelligence avatar

Vietnam Tender Intelligence

Pricing

from $400.00 / 1,000 keyword searcheds

Go to Apify Store
Vietnam Tender Intelligence

Vietnam Tender Intelligence

Monitor Vietnam's e-procurement portal muasamcong (VNEPS) by keyword: upcoming plans, open tenders, and contract awards — full tender lifecycle in one Actor. Theo dõi đấu thầu công Việt Nam: kế hoạch, thông báo mời thầu, kết quả trúng thầu.

Pricing

from $400.00 / 1,000 keyword searcheds

Rating

5.0

(2)

Developer

donerightlabs

donerightlabs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

16 days ago

Last modified

Categories

Share

Quick summary (English)

Monitors Vietnam's national e-procurement portal (VNEPS) by keyword and returns matching tenders as clean JSON: notice number, tender name, closing date, location, investment field.

Input: keywords (array of strings, required for "notices"/"plans"/"awards", max 20), recordType ("notices" default, "plans", "awards", or "awards_by_date"), maxResultsPerKeyword (integer, default 3, max 50), onlyOpenTenders (boolean, default true — only tenders still open for bidding; ignored when recordType is "plans"/"awards"/"awards_by_date"), province (required when recordType is "awards_by_date" — no keyword needed in this mode, results are scoped to one province instead), dateFrom/dateTo (optional, dd/mm/yyyy, only for "awards_by_date" — defaults to yesterday→today when omitted).

Pricing: Pay-per-event — $0.05 per run + $0.50 per keyword searched ("notices"/"plans"/"awards") or $0.50 per date-range search ("awards_by_date", charged once per run regardless of matches), plus $0.05 per package actually checked (only when it truly has a published award result) when recordType is "awards" or "awards_by_date" (see Pricing section below).

Output field reference (JSON keys are Vietnamese procurement terminology — real tender records never carry a trang_thai field; records that do are status/error notices, not tenders):

JSON keyMeaning
tu_khoaThe keyword that matched this record
ma_thong_baoTender notice number (TBMT)
ten_goi_thauTender/package name
hinh_thuc_du_thauBidding method
phuong_thuc_lua_chonContractor selection method
ngay_dong_thauBid closing date/time (ISO 8601)
linh_vuc_dau_tuInvestment field (goods/construction/services)
dia_diemProvince/district
trang_thaiOnly present on non-tender records: loi_ky_thuat (technical error, see chi_tiet_loi), co_the_con_du_lieu (more results may exist beyond the limit, see ghi_chu), or — "awards"/"awards_by_date" only — chua_co_ket_qua / khong_doc_duoc_ket_qua / khong_co_goi_da_dong / khong_co_ket_qua_trong_khoang_ngay
nha_thau_trung_thau"awards"/"awards_by_date" only — array of winning contractors for that package: {ma_dinh_danh, ma_so_thue, ten_nha_thau, gia_trung_thau_vnd, thoi_gian_thuc_hien_goi_thau, thoi_gian_thuc_hien_hop_dong}. Usually an organization's tax ID and name; Vietnam's Tender Law also allows individuals to bid on some small packages, and since 7/2025 an individual's tax code is their 12-digit national ID — the Actor detects this format and automatically redacts ten_nha_thau/ma_dinh_danh/ma_so_thue to "[ĐÃ ẨN...]" in that case (price/timing fields are kept)
tinh_thanhrecordType: "awards_by_date" only — the province/city this record belongs to (replaces tu_khoa, since this mode has no keyword)
ma_ke_hoach / ten_ke_hoach / ten_du_an / chu_dau_tu / tong_muc_dau_tu_vnd / ngay_phe_duyet / co_goi_chua_thong_bao / goi_thau_du_kienrecordType: "plans" only — a procurement PLAN (published before the official tender notice), with goi_thau_du_kien as an array of its constituent packages: {ten_goi_thau, gia_du_kien_vnd, linh_vuc_dau_tu, dia_diem}. Free-text fields (ten_ke_hoach, ten_du_an, chu_dau_tu, each package's ten_goi_thau) are automatically redacted for phone numbers/emails that may have been left by the procuring entity (see FAQ)

Full documentation below is in Vietnamese (the target user base for this Actor). The Input/Output schema tabs on this page are language-neutral and machine-readable.


What does Vietnam Tender Intelligence do?

Vietnam Tender Intelligence theo dõi toàn bộ vòng đời đấu thầu công trên Hệ thống mạng đấu thầu quốc gia (VNEPS) — muasamcong.mpi.gov.vn, cổng đấu thầu chính thức của Bộ Tài chính Việt Nam — trả về dữ liệu dạng JSON sạch cho 3 giai đoạn:

  1. Kế hoạch lựa chọn nhà thầu (KHLCNT) — biết trước "sắp có gói thầu gì", công bố TRƯỚC khi có thông báo mời thầu chính thức.
  2. Thông báo mời thầu (TBMT) — gói thầu đang mở, nhận hồ sơ (chế độ mặc định).
  3. Kết quả trúng thầu (KQLCNT) — ai đã thắng, giá bao nhiêu — tìm theo từ khoá, hoặc theo tỉnh/thành + khoảng ngày (không cần từ khoá).

Why use Vietnam Tender Intelligence?

  • Phủ đủ cả 3 giai đoạn trong 1 Actor duy nhất — từ lúc có kế hoạch mua sắm tới lúc biết ai thắng thầu, không cần ghép nhiều nguồn dữ liệu rời rạc.
  • Tự động hoá việc theo dõi theo từ khoá, tính chi phí theo lượt dùng thực tế thay vì trả phí thuê bao cố định.
  • Phù hợp cho: nhà thầu nhỏ muốn chủ động tiếp cận sớm (qua KHLCNT) thay vì chỉ chờ thông báo mời thầu, nhà cung cấp muốn theo dõi thị trường theo từ khoá cụ thể, bên phân tích/nghiên cứu thị trường cần dữ liệu ai-thắng-giá-bao-nhiêu.
  • Chạy trên Apify: có sẵn API, lịch chạy định kỳ (ví dụ chạy mỗi sáng để nhận gói thầu/kế hoạch mới), tích hợp Zapier/Make/webhook.

How to use Vietnam Tender Intelligence

  1. Mở tab Input.
  2. Chọn Loại dữ liệu (recordType): Thông báo mời thầu (mặc định), Kế hoạch lựa chọn nhà thầu (KHLCNT), Kết quả trúng thầu, hoặc Kết quả trúng thầu theo ngày.
  3. Nhập danh sách từ khoá cần theo dõi (ví dụ: "thiết bị y tế", "thi công sửa chữa") — hoặc chọn tỉnh/thành nếu dùng chế độ "Kết quả trúng thầu theo ngày" (không cần từ khoá).
  4. Bấm Start.
  5. Xem/tải kết quả ở tab Output.

Input

TrườngKiểuMô tả
keywordsmảng chuỗiDanh sách từ khoá gói thầu/kế hoạch cần theo dõi (tối đa 20 từ khoá/lần chạy). Không cần khi recordType là "Kết quả trúng thầu theo ngày"
recordTypelựa chọnThông báo mời thầu (mặc định): tìm gói thầu theo từ khoá. Kế hoạch lựa chọn nhà thầu (KHLCNT): tìm các kế hoạch mua sắm — thường công bố TRƯỚC khi có thông báo mời thầu chính thức, cho biết trước "sắp có gói thầu gì" — theo từ khoá; 1 kế hoạch có thể gồm nhiều gói thầu con. Kết quả trúng thầu: tìm gói thầu đã đóng theo từ khoá rồi lấy tên nhà thầu thắng + giá trúng thầu cho từng gói — tốn nhiều thời gian/chi phí hơn hẳn vì phải mở riêng từng gói, nên đặt maxResultsPerKeyword thấp (khoảng 5) khi dùng chế độ này. Kết quả trúng thầu theo ngày: không cần từ khoá — duyệt toàn bộ kết quả trúng thầu mới công bố trong 1 tỉnh/thành theo khoảng ngày (bắt buộc chọn province)
maxResultsPerKeywordsốGiới hạn số gói thầu/kế hoạch lấy về mỗi từ khoá, hoặc mỗi lượt duyệt theo ngày (mặc định 3, tối đa 50)
onlyOpenTenderstrue/falseBật: chỉ lấy gói còn mở (mặc định). Tắt: lấy cả gói đã đóng thầu trong quá khứ. Bỏ qua khi recordType là "KHLCNT"/"Kết quả trúng thầu"/"Kết quả trúng thầu theo ngày"
provincelựa chọnBắt buộc khi recordType là "Kết quả trúng thầu theo ngày" — chọn 1 trong 34 tỉnh/thành (theo địa giới hành chính hiện hành, sau sáp nhập 2025). Bỏ qua ở 2 chế độ còn lại
dateFrom / dateTochuỗi (dd/mm/yyyy)Chỉ dùng cho "Kết quả trúng thầu theo ngày" — khoảng ngày đăng tải kết quả cần lấy. Để trống: mặc định lấy hôm qua → hôm nay (khoảng hẹp, an toàn cho lượt chạy mặc định)
{
"keywords": ["thiết bị y tế"],
"maxResultsPerKeyword": 20
}

Output

{
"tu_khoa": "thiết bị y tế",
"ma_thong_bao": "IB2600407966",
"ten_goi_thau": "Gói thầu số 100: Cung cấp, lắp đặt thiết bị y tế nhóm Điều trị - Can thiệp",
"hinh_thuc_du_thau": "DTRR",
"phuong_thuc_lua_chon": "1_MTHS",
"ngay_dong_thau": "2026-09-09T09:00:00",
"linh_vuc_dau_tu": "HH",
"dia_diem": "Tỉnh Cà Mau - Phường Hòa Thành"
}

Có thể tải dataset dạng JSON, CSV, Excel, HTML.

Output khi dùng chế độ "Kế hoạch lựa chọn nhà thầu" (recordType: "plans")

{
"tu_khoa": "thiết bị y tế",
"ma_ke_hoach": "PL2600329093",
"ten_ke_hoach": "Gói thầu : Mua máy xét nghiệm điện giải đồ, giường bệnh nhân năm 2026",
"ten_du_an": "Mua sắm trang thiết bị y tế năm 2026 của Bệnh viện Tâm thần tỉnh Đăk",
"chu_dau_tu": "Bệnh viện Tâm thần Đắk Lắk",
"tong_muc_dau_tu_vnd": 431000000,
"ngay_phe_duyet": "2026-09-30T23:59:59",
"co_goi_chua_thong_bao": true,
"goi_thau_du_kien": [
{
"ten_goi_thau": "Gói thầu : Mua máy xét nghiệm điện giải đồ, giường bệnh nhân năm 2026",
"gia_du_kien_vnd": 431000000,
"linh_vuc_dau_tu": "HH",
"dia_diem": "Tỉnh Đắk Lắk - Phường Thành Nhất"
}
]
}

co_goi_chua_thong_bao: true nghĩa là kế hoạch này có ít nhất 1 gói thầu chưa được mời thầu chính thức — đây chính là tín hiệu "sắp có gói thầu" giá trị nhất của chế độ này. Các trường văn bản tự do (ten_ke_hoach, ten_du_an, chu_dau_tu, ten_goi_thau trong từng gói) được actor tự động che số điện thoại/email nếu bên mời thầu vô tình để lại thông tin liên hệ cá nhân trong đó (xem FAQ).

Output khi dùng chế độ "Kết quả trúng thầu" (recordType: "awards")

{
"tu_khoa": "rà phá bom mìn",
"ma_thong_bao": "IB2600553192",
"ten_goi_thau": "Gói thầu số 03: Thi công rà phá bom mìn vật nổ...",
"nha_thau_trung_thau": [
{
"ma_dinh_danh": "vn0105900350",
"ma_so_thue": "0105900350",
"ten_nha_thau": "CÔNG TY TNHH MỘT THÀNH VIÊN XỬ LÝ BOM, MÌN, VẬT NỔ 319",
"gia_trung_thau_vnd": "101.885.625.000",
"thoi_gian_thuc_hien_goi_thau": "48 tháng",
"thoi_gian_thuc_hien_hop_dong": "Quý III 2026"
}
]
}

nha_thau_trung_thau chủ yếu chứa tên và mã số thuế của tổ chức trúng thầu. Luật Đấu thầu cho phép cá nhân làm nhà thầu ở một số gói nhỏ — khi đó mã số thuế hiển thị là số định danh cá nhân 12 số (theo quy định từ 7-2025), nên actor tự động nhận diện và ẩn ten_nha_thau/ma_dinh_danh/ma_so_thue trong trường hợp này (hiện "[ĐÃ ẨN...]" thay vì giá trị thật) — vẫn giữ nguyên gia_trung_thau_vnd và thời gian thực hiện vì không phải dữ liệu cá nhân. Việc nhận diện dựa trên đúng 1 tín hiệu khách quan (độ dài mã số thuế), không đoán theo tên, nên không áp dụng nhầm cho hộ kinh doanh (vẫn dùng mã số thuế 10 số theo dữ liệu thực tế quan sát được).

Lưu ý: actor luôn cố mở trang chi tiết để lấy đầy đủ cả thoi_gian_thuc_hien_goi_thau/thoi_gian_thuc_hien_hop_dong. Trong số ít trường hợp trang chi tiết tải chậm/lỗi tạm thời, actor tự động lấy thay tên nhà thầu + giá trúng thầu trực tiếp từ dữ liệu tìm kiếm (đã xác nhận chắc chắn có kết quả) — khi đó 2 trường thời gian này sẽ là null thay vì có giá trị, ghi_chu sẽ nói rõ trường hợp này.

Output khi dùng chế độ "Kết quả trúng thầu theo ngày" (recordType: "awards_by_date")

{
"tinh_thanh": "Thành phố Hà Nội",
"ma_thong_bao": "IB2600561937",
"ten_goi_thau": "Tư vấn quản lý dự án",
"nha_thau_trung_thau": [
{
"ma_dinh_danh": "vn5901205643",
"ma_so_thue": "5901205643",
"ten_nha_thau": "CÔNG TY TNHH ÁNH HƯNG GIA LAI",
"gia_trung_thau_vnd": "58.469.000",
"thoi_gian_thuc_hien_goi_thau": null,
"thoi_gian_thuc_hien_hop_dong": null
}
]
}

Không có trường tu_khoa ở chế độ này (thay bằng tinh_thanh) vì không dùng từ khoá.

Bản ghi đặc biệt (quan trọng nếu bạn xử lý dữ liệu tự động / bằng AI Agent)

Ngoài các bản ghi bình thường ở trên, dataset có thể chứa các bản ghi đặc biệt — nhận diện qua field trang_thai (bản ghi bình thường KHÔNG có field này):

trang_thaiÝ nghĩaField đi kèmÁp dụng cho
loi_ky_thuatTừ khoá/gói thầu này gặp lỗi khi chạy, không lấy được dữ liệuchi_tiet_loiMọi chế độ
co_the_con_du_lieuĐã lấy đúng bằng số lượng giới hạn (maxResultsPerKeyword) — có thể còn gói thầu/kế hoạch khác chưa lấy hếtghi_chu"Thông báo mời thầu"/"KHLCNT"
chua_co_ket_quaGói thầu đã đóng thầu nhưng chưa công bố kết quả lựa chọn nhà thầu tại thời điểm chạy. Đọc kỹ ghi_chu: nếu xác định được ngay từ dữ liệu tìm kiếm thì không mở trang chi tiết, không tính phí Award Checked; nếu đã mở trang chi tiết mà vẫn không thấy kết quả thì có tính phí (đã có chi phí mở trang thực tế)ghi_chuChỉ "Kết quả trúng thầu"
khong_doc_duoc_ket_quaTìm thấy gói thầu nhưng không đọc được bảng kết quả (trang nguồn có thể đã đổi cấu trúc)ghi_chuChỉ "Kết quả trúng thầu"
khong_co_goi_da_dongKhông có gói thầu đã đóng thầu nào khớp từ khoá — lượt này vẫn tính phí Keyword Searched như bình thường (đã tìm kiếm thật), nhưng không có gói nào được mở kiểm tra nên không phát sinh thêm phí Award Checkedghi_chuChỉ "Kết quả trúng thầu"
khong_co_ket_qua_trong_khoang_ngayKhông có kết quả trúng thầu nào tại tỉnh/thành đã chọn trong khoảng ngày — lượt này vẫn tính phí Date Range Searched như bình thường, không phát sinh thêm phí Award Checkedghi_chuChỉ "Kết quả trúng thầu theo ngày"

Lưu ý về giới hạn: mỗi lần chạy nhận tối đa 20 từ khoá, và lấy tối đa 50 gói thầu cho mỗi từ khoá (giới hạn kỹ thuật, không phân trang — cố ý đặt ở mức vừa phải để không gây tải nặng cho hệ thống nguồn). Nếu 1 từ khoá thực tế có nhiều hơn 50 kết quả phù hợp, bạn sẽ thấy bản ghi co_the_con_du_lieu — khi đó có thể thu hẹp từ khoá (cụ thể hơn) thay vì chạy lại toàn bộ với số lượng lớn hơn, để tránh tốn thêm chi phí không cần thiết.

Bảng các trường dữ liệu

TrườngÝ nghĩa
tu_khoaTừ khoá bạn đã tra
ma_thong_baoSố thông báo mời thầu (TBMT)
ten_goi_thauTên gói thầu
hinh_thuc_du_thauHình thức lựa chọn nhà thầu
phuong_thuc_lua_chonPhương thức lựa chọn nhà thầu
ngay_dong_thauThời điểm đóng thầu
linh_vuc_dau_tuLĩnh vực đầu tư (hàng hoá/xây lắp/dịch vụ...)
dia_diemTỉnh/quận nơi thực hiện gói thầu

⚠️ Lưu ý dữ liệu: Actor chỉ trích xuất các trường cấp gói thầu/hợp đồng ở trên — không có trường riêng nào cho tên người, số điện thoại hay thông tin cá nhân. Tuy nhiên ten_goi_thau là văn bản tự do do bên mời thầu tự nhập trên hệ thống nguồn, nên đôi khi có thể vô tình chứa thông tin liên hệ (ví dụ email/số điện thoại của người phụ trách gói thầu) do chính bên mời thầu để lại — actor không thể đảm bảo 100% trường này luôn sạch hoàn toàn, vì đây là dữ liệu do bên thứ ba nhập, không phải do actor tự thêm vào.

Pricing / chi phí ước tính

Actor tính phí theo mô hình Pay-Per-Event — chỉ trả cho đúng phần đã dùng, không có phí thuê bao cố định:

Sự kiệnKhi nào tính phíGiá
Search Session Start1 lần/lượt chạy$0.05
Keyword SearchedMỗi từ khoá được xử lý (kể cả khi 0 kết quả) — chế độ "Thông báo mời thầu"$0.50
Plan SearchedMỗi từ khoá được xử lý (kể cả khi 0 kết quả) — chỉ chế độ "KHLCNT"$0.50
Date Range Searched1 lần/lượt chạy (kể cả khi 0 kết quả) — chỉ chế độ "Kết quả trúng thầu theo ngày"$0.50
Award CheckedChỉ khi recordType là "Kết quả trúng thầu" hoặc "Kết quả trúng thầu theo ngày" — mỗi gói thầu thực sự có kết quả được kiểm tra (gói đã đóng nhưng chưa có kết quả thì không tính phí này)$0.05

Ví dụ (chế độ Thông báo mời thầu hoặc KHLCNT): chạy 1 lần với 5 từ khoá = $0.05 + 5 × $0.50 = $2.55. Ví dụ (chế độ Kết quả trúng thầu theo ngày): chạy 1 lần, tìm được 8 gói đã có kết quả = $0.05 + $0.50 + 8 × $0.05 = $0.95.

Mẹo tối ưu chi phí/mục dữ liệu: giá tính theo lượt tìm kiếm, không theo từng mục — đặt maxResultsPerKeyword cao hơn (ví dụ 20 thay vì 3) giúp chi phí/gói thầu giảm đáng kể (20 kết quả/từ khoá ≈ $0.025/gói, so với 3 kết quả/từ khoá ≈ $0.17/gói) mà không tốn thêm phí Keyword/Plan Searched.

Tips

  • Nên giữ nguyên cấu hình Proxy mặc định (Residential, Việt Nam) — đây là cấu hình đã được kiểm chứng ổn định. Đổi sang cấu hình khác có thể làm lượt chạy thất bại. Nếu không truyền field proxyConfiguration khi gọi actor (qua API/AI Agent), giá trị mặc định đúng sẽ tự động được áp dụng.
  • Mỗi lần chạy có chi phí thời gian khởi động cố định (~20-30 giây) cộng thêm thời gian xử lý từng từ khoá (thường 40 giây - 2 phút/từ khoá). Nếu cần kết quả nhanh (ví dụ tích hợp với AI Agent, ứng dụng thời gian thực), nên gọi 1-3 từ khoá/lần thay vì nhồi nhiều từ khoá vào 1 lần chạy — thời gian tăng tuyến tính theo số từ khoá.

FAQ

Dữ liệu lấy từ đâu? Từ các trang công khai của Hệ thống mạng đấu thầu quốc gia, không cần đăng nhập. Theo Luật Đấu thầu số 22/2023/QH15 (Điều 51 khoản 1), Hệ thống mạng đấu thầu quốc gia phải bảo đảm công khai, không hạn chế truy cập, tiếp cận đối với thông tin được đăng tải công khai trên hệ thống. Actor chỉ trả về thông tin cấp gói thầu đã công bố, không trích xuất trường thông tin liên hệ hay thông tin cá nhân nào. Bạn tự chịu trách nhiệm sử dụng dữ liệu phù hợp với quy định hiện hành.

Chế độ KHLCNT có lộ thông tin cá nhân không? Actor tự động quét và che (thay bằng [ĐÃ CHE SĐT]/[ĐÃ CHE EMAIL]) các số điện thoại/email tìm thấy trong những trường văn bản tự do (ten_ke_hoach, ten_du_an, chu_dau_tu, ten_goi_thau của từng gói) — vì đây là dữ liệu do bên mời thầu tự nhập trên hệ thống nguồn, đôi khi vô tình để lại thông tin liên hệ cá nhân. Việc che chỉ dựa trên nhận diện mẫu (regex số điện thoại/email VN phổ biến) nên không đảm bảo bắt được 100% mọi trường hợp — nếu bạn phát hiện thông tin cá nhân lọt qua, vui lòng báo qua tab Issues.

Kết quả không đầy đủ 100% có được hoàn tiền không? Do phụ thuộc vào tình trạng kết nối của hệ thống nguồn, thỉnh thoảng 1 từ khoá có thể gặp lỗi kỹ thuật tạm thời (xem bản ghi trang_thai: loi_ky_thuat trong Output). Nếu gặp tỷ lệ lỗi cao bất thường, vui lòng liên hệ qua tab Issues.

Chính sách dữ liệu & điều khoản sử dụng / Data & terms policy: https://donerightlabs.tviettuan01.workers.dev/chinh-sach