Free developer tool

Reverse Geocoding Tool

Enter latitude and longitude to find the address at that location, or click anywhere on the map to reverse geocode a point.

Coordinates to address

Turn GPS coordinates into a human-readable location.

Loading map…
Click the map or enter coordinates

The matching address appears here.

Address and road data © OpenStreetMap contributors (ODbL) and other open datasets.

What is reverse geocoding?

Reverse geocoding is the opposite of geocoding: you start with a latitude and longitude and get back the nearest address or place. It is how a GPS position becomes “10 Downing Street, London”.

When results are approximate

A coordinate is a point, an address is a feature. A point can fall on a road, inside a park or in an area with little address data, so applications should be ready for a street-level match, several candidates, or no result at all. The layer and accuracy fields tell you how specific the match is.

Where is it useful?

GPS tracking, delivery apps, vehicle telemetry, location history, and turning coordinates stored in a database into locations people can read.

Frequently asked questions

Why did I get a street instead of a house number?

Coordinates rarely sit exactly on a building. The API returns the nearest known feature, so a point on a road can resolve to the street, and a point in a park to the surrounding area. Check the layer and accuracy fields.

Can I get several candidates?

Yes. The limit parameter controls how many results are returned, ordered by relevance.

What coordinate format does the API expect?

Decimal degrees: lat between -90 and 90, lon between -180 and 180, passed as separate lat and lon parameters.

API

Reverse geocode coordinates with the API

GET /v1/reverse?lat=51.5033635&lon=-0.1276248&limit=5
cURL
curl -H "X-API-Key: YOUR_MAPSI_API_KEY" \
  "https://mapsi.dev/v1/reverse?lat=51.5033635&lon=-0.1276248&limit=5"
JavaScript
const response = await fetch(
  "https://mapsi.dev/v1/reverse?lat=51.5033635&lon=-0.1276248&limit=5",
  { headers: { "X-API-Key": "YOUR_MAPSI_API_KEY" } }
);

const data = await response.json();

console.log(data.results[0].formatted_address);
Python
import requests

response = requests.get(
    "https://mapsi.dev/v1/reverse",
    params={"lat": 51.5033635, "lon": -0.1276248, "limit": 5},
    headers={"X-API-Key": "YOUR_MAPSI_API_KEY"},
)

data = response.json()
print(data)
Example response
{
  "success": true,
  "results": [
    {
      "formatted_address": "10 Downing Street, London, England, United Kingdom",
      "house_number": "10",
      "street": "Downing Street",
      "city": "London",
      "region": "Greater London",
      "region_code": null,
      "postcode": "SW1A 2AA",
      "country_code": "GB",
      "country": "United Kingdom",
      "coordinates": {
        "lat": 51.50333,
        "lon": -0.127603
      },
      "confidence": 0.9,
      "accuracy": "point",
      "layer": "address",
      "source": "openstreetmap",
      "source_id": "relation/1879842"
    }
  ]
}