OpenStreetMap Reverse Geocoding
Paste any latitude & longitude and get the street address from OpenStreetMap data — instantly, free, and shown on a map. Need it in code? Use the reverse geocoding API below.
📍 Reverse geocode coordinates
Get an address from latitude and longitude
Reverse geocoding turns a pair of coordinates — a latitude and longitude — into a human-readable address. This page uses OpenStreetMap data, the world's largest open mapping database, so you get global coverage down to street and house-number level in well-mapped areas, with no Google dependency.
Try it above: type or paste something like 51.175807 10.4541194 (space or comma both work), press Get Address, and the nearest OSM address appears with the point marked on the map.
OpenStreetMap reverse geocoding API
Everything the tool does is one HTTPS request, so you can call it from any language. The endpoint takes lat and lon and returns GeoJSON:
# curl — 51.175807, 10.4541194 → address
curl "https://api.latlng.work/reverse?lat=51.175807&lon=10.4541194" \
-H "X-Api-Key: YOUR_API_KEY"
// JavaScript (fetch)
const res = await fetch(
"https://api.latlng.work/reverse?lat=51.175807&lon=10.4541194"
);
const { features } = await res.json();
console.log(features[0].properties); // { street, city, state, country, ... }
# Python (requests)
import requests
r = requests.get("https://api.latlng.work/reverse",
params={"lat": 51.175807, "lon": 10.4541194})
print(r.json()["features"][0]["properties"])
Response fields
Each result is a GeoJSON feature whose properties may include:
- name — place or building name (when present)
- housenumber & street — the street-level address
- district, city, county, state
- postcode, country, countrycode
- type — the OSM place classification (house, street, city…)
LatLng vs. Nominatim for OpenStreetMap geocoding
Nominatim is the official OpenStreetMap geocoder. It's excellent, but the free public server has a strict usage policy that makes it unsuitable for production apps. LatLng serves the same OpenStreetMap data without those limits:
| Public Nominatim | LatLng OSM API | |
|---|---|---|
| Rate limit | 1 request / second | No 1 req/s throttle |
| Bulk / heavy use | Not allowed | Allowed on paid plans |
| Free tier | Fair-use only | 300 requests / day |
| Data source | OpenStreetMap | OpenStreetMap |
| Response format | Custom JSON | GeoJSON (RFC 7946) |
If you're hitting Nominatim's rate limit or getting blocked, this is a drop-in hosted alternative — the same open data, faster, with an API key.
Common uses
- Mobile apps — show a user's GPS position as an address
- Fleet & asset tracking — label vehicle coordinates with street names
- Photo geotagging — add place names to GPS-tagged images
- Data enrichment — turn columns of lat/long into addresses
Frequently asked questions
How do I reverse geocode a coordinate with OpenStreetMap?
Paste the latitude and longitude into the tool above (e.g. 51.175807, 10.4541194) and it returns the nearest street address from OpenStreetMap data — street, city, state, postcode and country — shown on a map. To do it in code, call https://api.latlng.work/reverse?lat=LAT&lon=LON.
Is OpenStreetMap reverse geocoding free?
Yes. The tool on this page is free to use with no sign-up. The API gives you 300 free reverse geocoding requests per day; higher volumes are available on paid plans. All results are derived from open OpenStreetMap data.
What is the difference between this and Nominatim?
Nominatim is the official OpenStreetMap geocoder, but its public server has a strict usage policy — a maximum of 1 request per second and no heavy or bulk use. LatLng serves the same OpenStreetMap data from a fast, hosted API with higher limits, an API key, and no 1 req/s throttle, so you can use it in production without running your own Nominatim instance.
What address fields does the API return?
A GeoJSON response with properties including name, house number, street, district, city, county, state, postcode, country, country code and the OSM place type. Empty fields are simply omitted for that location.
Can I get an address from latitude and longitude in Python or JavaScript?
Yes — it is a single HTTPS GET request, so it works from any language. Code samples for curl, JavaScript (fetch) and Python (requests) are shown below.
How accurate is OpenStreetMap reverse geocoding?
Accuracy depends on how well an area is mapped in OpenStreetMap. In cities and well-mapped regions you get house-number precision; in remote areas you may get the nearest road, locality or administrative area instead of an exact street address.