GPS Coordinates to Vietnam Ward & Province Online

Turn latitude / longitude into the current (post-07/2025) province and phường / xã of Vietnam with their codes; batch up to 1000 points, ward boundaries.

Free tool: 20 requests per minute.

Result

Press “Run” to see the result.

Send lat and lng (WGS 84, as given by phones and GPS) and get the province (34 units) and the phường / xã / đặc khu (3,321 units) that contain the point after the 1 July 2025 reorganisation, with the same GSO codes, names and postal codes as /v1/vn-provinces. distance=1 adds the distance to the ward boundary; ward=<code> with a point tells whether the point is inside that ward (geofencing, attendance check-in), and ward=<code> alone returns its bounding box, centroid, area and, with geometry=1, its simplified boundary as GeoJSON.

For batches, POST points as [[lat, lng], …] or [{"lat": …, "lng": …}] (up to 1000 points per request). A point just outside every ward (on a beach, a river bank, a few metres off a simplified edge) is matched to the nearest ward within max_distance metres (default 250) and flagged inside: false with its distance_m; farther away (open sea, neighbouring countries) the answer is found: false with the nearest ward for information.

Boundaries come from the GIS add-on of the open dataset ThangLeQuoc/vietnamese-provinces-database (MIT), derived from the official reference map sapnhap.bando.com.vn, simplified to about 30 m while keeping shared edges consistent (no gaps or overlaps between neighbours). Points within a few dozen metres of a boundary can therefore land in the neighbouring ward: the answer is marked approximate and is not a cadastral or legal determination. No house-number geocoding.

Use this in your code

curl "https://apibox.io.vn/v1/vn-geo?lat=10.7725&lng=106.698" \
  -H "Authorization: Bearer YOUR_API_KEY"

API documentation → Get a free API key

FAQ

Are these the new units after 1 July 2025?

Yes: 34 provinces and 3,321 phường / xã / đặc khu, with the codes of /v1/vn-provinces. The data is checked weekly against the latest dataset release.

How precise is it?

Boundaries are simplified to about 30 m; in tests 99.7% of random points match the full-resolution map, the rest are within a few dozen metres of a boundary.

What happens at sea or outside Vietnam?

Points within max_distance (250 m by default) of the coast snap to the nearest ward; farther away found is false and the nearest ward is given with its distance.