reverse: Reverse geocoding - get address from coordinates

API: nominatim.org:nominatim-geocoding-api
Endpoint: /reverse
Response format: application/json
Auth: unknown
Method: GET
Last Status: 200
Latency: 314ms

Description

Returns a single result containing the address details, place type, and display name for the given coordinates. Use this to convert GPS coordinates into human-readable addresses or identify what location exists at specific coordinates.

From spec: Search for an OSM object at a specific coordinate location. Returns exactly one result or an error when the coordinate has no OSM data coverage.

Usage Tips

- Rate limit: 1 request per second maximum - Must include User-Agent header with contact info - Free usage requires attribution: Data © OpenStreetMap contributors, ODbL 1.0 - Returns exactly one result or an error if coordinates have no OSM coverage - Coordinates must be in decimal degrees (WGS84)

Parameters (17)

accept-language (string, query, optional)

Preferred language for results

addressdetails (integer, query, optional, default: 1)

Include a breakdown of the address (1=yes, 0=no)

Constraints: {'enum': [0, 1]}

debug (integer, query, optional, default: 0)

Output debug info (returns HTML, 1=yes, 0=no)

Constraints: {'enum': [0, 1]}

email (string, query, optional)

Valid email for identification

entrances (integer, query, optional, default: 0)

Include tagged entrances (1=yes, 0=no)

Constraints: {'enum': [0, 1]}

extratags (integer, query, optional, default: 0)

Include additional information (1=yes, 0=no)

Constraints: {'enum': [0, 1]}

format (string, query, optional, default: xml)

Output format

Constraints: {'enum': ['xml', 'json', 'jsonv2', 'geojson', 'geocodejson']}

lat (number, query, required)

Latitude in WGS84 projection

Constraints: {'minimum': -90, 'maximum': 90}

layer (string, query, optional, default: address,poi)

Filter by layer (comma-separated: address, poi, railway, natural, manmade)

lon (number, query, required)

Longitude in WGS84 projection

Constraints: {'minimum': -180, 'maximum': 180}

namedetails (integer, query, optional, default: 0)

Include full list of names (1=yes, 0=no)

Constraints: {'enum': [0, 1]}

polygon_geojson (integer, query, optional, default: 0)

Add geometry in GeoJSON format (1=yes, 0=no)

Constraints: {'enum': [0, 1]}

polygon_kml (integer, query, optional, default: 0)

Add geometry in KML format (1=yes, 0=no)

Constraints: {'enum': [0, 1]}

polygon_svg (integer, query, optional, default: 0)

Add geometry in SVG format (1=yes, 0=no)

Constraints: {'enum': [0, 1]}

polygon_text (integer, query, optional, default: 0)

Add geometry in WKT format (1=yes, 0=no)

Constraints: {'enum': [0, 1]}

polygon_threshold (number, query, optional, default: 0.0)

Geometry simplification tolerance in degrees

zoom (integer, query, optional, default: 18)

Level of detail required (0-18, where 0=country, 18=building)

Constraints: {'minimum': 0, 'maximum': 18}

Examples (2)

Reverse geocode coordinates near Big Ben probe-gate

Demonstrates reverse geocoding to get address from latitude/longitude coordinates

curl 'https://nominatim.openstreetmap.org/reverse?lat=51.5008&lon=-0.1243&format=json'
import requests

resp = requests.get(
    "https://nominatim.openstreetmap.org/reverse",
    params={
        'lat': '51.5008',
        'lon': '-0.1243',
        'format': 'json',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("nominatim-geocoding")
result = api.fetch("reverse", lat=51.5008, lon=-0.1243, format="json")

for item in result:
    print(item)
const resp = await fetch("https://nominatim.openstreetmap.org/reverse?lat=51.5008&lon=-0.1243&format=json");
const data = await resp.json();
Reverse geocode Eiffel Tower area probe-gate

Demonstrates reverse geocoding near the Eiffel Tower in Paris

curl 'https://nominatim.openstreetmap.org/reverse?lat=48.8583&lon=2.2944&format=json'
import requests

resp = requests.get(
    "https://nominatim.openstreetmap.org/reverse",
    params={
        'lat': '48.8583',
        'lon': '2.2944',
        'format': 'json',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("nominatim-geocoding")
result = api.fetch("reverse", lat=48.8583, lon=2.2944, format="json")

for item in result:
    print(item)
const resp = await fetch("https://nominatim.openstreetmap.org/reverse?lat=48.8583&lon=2.2944&format=json");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 16:53:49.377037 200 314ms
2026-04-16 04:16:52.244086 200 575ms
2026-04-16 03:38:12.483526 200 311ms
2026-04-15 00:32:53.512889 200 374ms
2026-04-15 00:26:33.268896 200 291ms
2026-04-14 02:12:51.532608 200 276ms
2026-04-14 00:25:18.329567 200 347ms
2026-04-12 16:24:37.680058 200 323ms
2026-04-12 13:13:42.354209 200 238ms
2026-04-10 04:06:34.998046 200 1678ms
2026-04-10 00:11:11.645855 200 308ms
2026-04-09 02:31:24.131612 200 524ms
2026-04-09 02:27:38.935901 200 258ms