Tài liệu API
API JSON miễn phí, không cần đăng ký hay API key, mở CORS cho mọi origin. Dùng để tra cứu dữ liệu sáp nhập tỉnh/huyện/xã Việt Nam sau đợt sáp nhập hành chính 01/07/2025.
Base URL
https://sapnhap.d4t0.com/api/v1
Endpoint
Trả về danh sách 63 tỉnh/thành cũ, kèm số huyện và số xã cũ trong mỗi tỉnh.
Ví dụ request
curl https://sapnhap.d4t0.com/api/v1/provinces
Ví dụ response
[
{ "name": "Thành phố Hà Nội", "slug": "ha-noi", "districtCount": 30, "wardCount": 794 },
{ "name": "Tỉnh Hà Giang", "slug": "ha-giang", "districtCount": 11, "wardCount": 196 },
...
]
Trả về danh sách huyện/xã cũ của một tỉnh, kèm tỉnh và xã mới tương ứng sau sáp nhập. Lấy slug từ endpoint /api/v1/provinces ở trên.
Ví dụ request
curl https://sapnhap.d4t0.com/api/v1/provinces/da-nang
Ví dụ response
[
{
"district": "Quận Hải Châu",
"wards": [
{ "ward": "Phường Thanh Bình", "newProvince": "Thành phố Đà Nẵng", "newWard": "Phường Hải Châu" },
...
]
},
...
]
Tra cứu trực tiếp một địa chỉ cũ (Tỉnh, Huyện, Xã) và trả về địa chỉ mới tương ứng.
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
province | Có | Tên tỉnh cũ (vd. "Thành phố Đà Nẵng") hoặc slug (vd. "da-nang") |
district | Có | Tên huyện/quận cũ, vd. "Quận Hải Châu" |
ward | Có | Tên xã/phường cũ, vd. "Phường Thanh Bình" |
Ví dụ request
curl "https://sapnhap.d4t0.com/api/v1/lookup?province=da-nang&district=Qu%E1%BA%ADn%20H%E1%BA%A3i%20Ch%C3%A2u&ward=Ph%C6%B0%E1%BB%9Dng%20Thanh%20B%C3%ACnh"
Ví dụ response
{
"old": {
"province": "Thành phố Đà Nẵng",
"district": "Quận Hải Châu",
"ward": "Phường Thanh Bình"
},
"new": {
"province": "Thành phố Đà Nẵng",
"ward": "Phường Hải Châu"
}
}
Nếu không khớp (404)
{ "error": "Ward not found: ..." }
Một số xã/phường cũ bị chia tách thành nhiều đơn vị mới khi sáp nhập. Trường hợp này, new.ward là đơn vị mới được khuyến nghị (khu vực/dân số chính), và response có thêm new.alternativeWards liệt kê các đơn vị mới khác mà một phần xã cũ cũng thuộc về.
Ví dụ response khi xã cũ bị chia tách
{
"old": {
"province": "Thành phố Hà Nội",
"district": "Huyện Thanh Trì",
"ward": "Thị trấn Văn Điển"
},
"new": {
"province": "Thành phố Hà Nội",
"ward": "Xã Thanh Trì",
"alternativeWards": ["Phường Hoàng Liệt", "Xã Đại Thanh"]
}
}
Giới hạn tần suất (Rate limiting)
Để chống lạm dụng và tấn công DDoS, mỗi địa chỉ IP bị giới hạn theo 2 ngưỡng song song (áp dụng chung cho /api/v1/*). Vượt ngưỡng nào cũng sẽ nhận 429 Too Many Requests kèm header Retry-After.
| Loại | Ngưỡng | Mục đích |
|---|---|---|
| Burst | 30 request / 10 giây | Chặn các đợt gửi dồn dập (dấu hiệu DDoS/bot) |
| Sustained | 300 request / 60 giây | Chặn lạm dụng kéo dài, vẫn thoải mái cho tích hợp bình thường |
Ví dụ response khi vượt giới hạn (429)
{ "error": "Too many requests, slow down." }
Giới hạn & lưu ý
API miễn phí, không cần đăng ký. Response được cache ở edge Cloudflare nên phản hồi rất nhanh. Dữ liệu tổng hợp dựa trên nguồn dữ liệu hành chính quốc gia; với mục đích pháp lý quan trọng, hãy đối chiếu thêm với quyết định chính thức của địa phương.