API mở cung cấp dữ liệu quan trắc tài nguyên nước và kết quả dự báo xâm nhập mặn trên hệ thống sông, kênh chính tỉnh Sóc Trăng cho các cơ quan, đơn vị liên quan (Sở TN&MT, Sở NN&PTNT, các bên phối hợp) tự truy cập và lấy dữ liệu.
http://dubaoxnmst.hcmunre.edu.vn/api/v1GET, trả về JSON (một số endpoint hỗ trợ thêm CSV).GET http://dubaoxnmst.hcmunre.edu.vn/api/v1/ → thông tin dịch vụ + danh sách endpoint (không cần key)
Mỗi cơ quan/đối tác được cấp một API key riêng (quản trị viên tạo tại trang Quản trị API). Gửi key theo một trong hai cách:
curl -H "X-API-Key: <API_KEY>" "http://dubaoxnmst.hcmunre.edu.vn/api/v1/stations" # hoặc qua query string curl "http://dubaoxnmst.hcmunre.edu.vn/api/v1/stations?api_key=<API_KEY>"
demo_public_readonly_key_2026
Sao chépMỗi key được gán một hoặc nhiều scope (phạm vi truy cập):
| Scope | Cho phép gọi | Ý nghĩa |
|---|---|---|
stations | /stations | Danh sách & thông tin trạm quan trắc |
observations | /observations | Dữ liệu quan trắc chuỗi thời gian (mực nước / lưu lượng / độ mặn) |
forecast | /forecast | Kết quả dự báo độ mặn từ mô hình AI |
communes | /communes | Mức xâm nhập mặn theo xã (hiện tại & dự báo) |
statistics | /statistics | Thống kê tổng hợp toàn tỉnh |
Mỗi key có hạn mức số request/ngày (mặc định 5000, quản trị viên điều chỉnh được). Phản hồi kèm header:
X-RateLimit-Limit – hạn mức/ngàyX-RateLimit-Remaining – số request còn lại trong ngàyRetry-After – (khi bị chặn) số giây tới 00:00Vượt hạn mức → HTTP 429 với mã lỗi rate_limited.
{
"success": true,
"api_version": "1.0",
"generated_at": "2026-09-06T20:00:00+07:00",
"request": { "endpoint": "observations", "params": { ... } },
"meta": { "count": 100, "total": 5000, "limit": 1000, "offset": 0, "unit": { ... } },
"data": [ ... ]
}
Khi lỗi:
{
"success": false,
"api_version": "1.0",
"error": { "code": "rate_limited", "message": "Đã vượt hạn mức ..." }
}
| HTTP | code | Nguyên nhân |
|---|---|---|
| 400 | missing_param / bad_param / range_too_large | Tham số thiếu hoặc sai định dạng |
| 401 | missing_api_key / invalid_api_key | Không gửi key hoặc key không tồn tại |
| 403 | client_disabled / scope_forbidden | Key bị tắt hoặc không có scope tương ứng |
| 404 | station_not_found / unknown_endpoint | Mã trạm / endpoint không tồn tại |
| 429 | rate_limited | Vượt hạn mức request/ngày |
| 500 | server_error | Lỗi máy chủ |
Danh sách toàn bộ trạm quan trắc kèm số đo mới nhất (mực nước, lưu lượng, độ mặn).
Chi tiết một trạm + số đo mới nhất + khoảng thời gian dữ liệu sẵn có. 404 nếu mã trạm không tồn tại.
curl -H "X-API-Key: demo_public_readonly_key_2026" "http://dubaoxnmst.hcmunre.edu.vn/api/v1/stations/NGA_NAM"
Dữ liệu quan trắc chuỗi thời gian từ CSDL trung tâm, lọc theo trạm / yếu tố môi trường / khoảng thời gian.
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
station | Có | Một hoặc nhiều mã trạm, phân tách bằng dấu phẩy. VD NGA_NAM,SOC_TRANG |
param | Không | salinity · water_level · flow_rate · all (mặc định all) |
from, to | Không | ISO 8601 (2026-09-01 hoặc 2026-09-01T08:00:00). Mặc định 7 ngày gần nhất. Khoảng tối đa 366 ngày. |
limit, offset | Không | Phân trang. limit ≤ 5000 (mặc định 1000). meta.total = tổng số dòng khớp. |
format | Không | json (mặc định) hoặc csv (tải file, có BOM UTF-8) |
curl -H "X-API-Key: demo_public_readonly_key_2026" \ "http://dubaoxnmst.hcmunre.edu.vn/api/v1/observations?station=NGA_NAM,SOC_TRANG¶m=salinity&from=2026-08-01&to=2026-09-01&limit=500" # Xuất CSV curl -H "X-API-Key: demo_public_readonly_key_2026" \ "http://dubaoxnmst.hcmunre.edu.vn/api/v1/observations?station=DAI_NGAI¶m=all&format=csv" -o dai_ngai.csv
Kết quả dự báo độ mặn theo giờ từ mô hình AI (RandomForestRegressor). meta.model_generated_at
cho biết thời điểm mô hình chạy gần nhất; meta.stations_with_forecast liệt kê các trạm có dự báo.
| Tham số | Mô tả |
|---|---|
station | Mã trạm (tuỳ chọn, nhiều mã cách nhau bằng dấu phẩy). Bỏ trống = tất cả trạm có dự báo. |
from, to | Lọc theo forecast_time (ISO 8601) |
format | json / csv |
curl -H "X-API-Key: demo_public_readonly_key_2026" "http://dubaoxnmst.hcmunre.edu.vn/api/v1/forecast?station=NGA_NAM"
Mức xâm nhập mặn theo xã/phường (giá trị và cấp cảnh báo) – dùng để tô bản đồ ở hệ thống bên thứ ba.
| Tham số | Mô tả |
|---|---|
day | 0 = hiện tại (mặc định); 1–10 = dự báo nội suy theo xu hướng quan trắc 72h. |
format | json / csv |
curl -H "X-API-Key: demo_public_readonly_key_2026" "http://dubaoxnmst.hcmunre.edu.vn/api/v1/communes?day=3"
Thống kê tổng hợp toàn tỉnh: số trạm, số xã có dữ liệu, phân bố cấp mặn, độ mặn trung bình/cao nhất, mốc cập nhật gần nhất.
curl -H "X-API-Key: demo_public_readonly_key_2026" "http://dubaoxnmst.hcmunre.edu.vn/api/v1/statistics"
| Cấp | Giá trị (‰) | Nhãn |
|---|---|---|
fresh | < 0.5 | Ngọt |
slight | 0.5 – 1.0 | Nhẹ |
moderate | 1.0 – 4.0 | Trung bình |
high | 4.0 – 8.0 | Cao |
critical | > 8.0 | Nguy hiểm |
import requests
BASE = "http://dubaoxnmst.hcmunre.edu.vn/api/v1"
KEY = "demo_public_readonly_key_2026"
r = requests.get(f"{BASE}/observations",
params={"station": "NGA_NAM,SOC_TRANG", "param": "salinity", "from": "2026-08-01"},
headers={"X-API-Key": KEY}, timeout=30)
r.raise_for_status()
data = r.json()
print(data["meta"]["total"], "dòng")
for row in data["data"][:5]:
print(row["thoi_gian"], row["ma_tram"], row["value"], "‰")
const res = await fetch(
"http://dubaoxnmst.hcmunre.edu.vn/api/v1/communes?day=2",
{ headers: { "X-API-Key": "demo_public_readonly_key_2026" } }
);
const { data } = await res.json();
data.forEach(c => console.log(c.name, c.salinity, c.level_label));
Cổng thông tin Xâm nhập mặn tỉnh Sóc Trăng · API v1.0 · Liên hệ quản trị hệ thống để được cấp API key.