search: Forward geocoding - search for places by name or address
Description
Returns an array of matching locations with coordinates, address details, and bounding boxes. Use this to convert human-readable addresses or place names into geographic coordinates for mapping or location-based services.
From spec: Search for OSM objects (places, addresses, POIs) by name or address. Returns matching locations with coordinates and address details.
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
- Results include importance score for ranking
- Use 'limit' parameter to control result count (default: 10)
Parameters (29)
accept-language
(string, query, optional)
Preferred language order for showing search results (e.g., 'en-US,en;q=0.9')
addressdetails
(integer, query, optional, default: 1)
Include a breakdown of the address into elements (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
amenity
(string, query, optional)
Name or category of the POI (for structured search)
bounded
(integer, query, optional, default: 0)
Restrict results to items within viewbox (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
city
(string, query, optional)
City name (for structured search)
country
(string, query, optional)
Country name (for structured search)
countrycodes
(string, query, optional)
Limit search to countries by ISO 3166-1alpha2 codes (comma-separated, e.g., 'us,ca,gb')
county
(string, query, optional)
County name (for structured search)
debug
(integer, query, optional, default: 0)
Output debug information (returns HTML, 1=yes, 0=no)
Constraints: {'enum': [0, 1]}
dedupe
(integer, query, optional, default: 1)
Remove duplicate results (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
email
(string, query, optional)
Valid email address for identification (recommended for heavy usage)
entrances
(integer, query, optional, default: 0)
Include tagged entrances in the result (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
exclude_place_ids
(string, query, optional)
Comma-separated list of place_id values to exclude from results
extratags
(integer, query, optional, default: 0)
Include additional information in the result (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
featureType
(string, query, optional)
Filter by feature type (country, state, city, settlement)
Constraints: {'enum': ['country', 'state', 'city', 'settlement']}
format
(string, query, optional, default: jsonv2)
Output format
Constraints: {'enum': ['xml', 'json', 'jsonv2', 'geojson', 'geocodejson']}
layer
(string, query, optional)
Filter by layer type (comma-separated: address, poi, railway, natural, manmade)
limit
(integer, query, optional, default: 10)
Maximum number of results (max 40)
Constraints: {'minimum': 1, 'maximum': 40}
namedetails
(integer, query, optional, default: 0)
Include a full list of names for the result (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
polygon_geojson
(integer, query, optional, default: 0)
Add full geometry to result output in GeoJSON format (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
polygon_kml
(integer, query, optional, default: 0)
Add full geometry to result output in KML format (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
polygon_svg
(integer, query, optional, default: 0)
Add full geometry to result output in SVG format (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
polygon_text
(integer, query, optional, default: 0)
Add full geometry to result output in WKT format (1=yes, 0=no)
Constraints: {'enum': [0, 1]}
polygon_threshold
(number, query, optional, default: 0.0)
Tolerance in degrees for geometry simplification
postalcode
(string, query, optional)
Postal code (for structured search)
q
(string, query, optional)
Free-form query string to search for (e.g., '135 Pilkington Avenue, Birmingham')
state
(string, query, optional)
State name (for structured search)
street
(string, query, optional)
Street name and house number (for structured search)
viewbox
(string, query, optional)
Preferred area to find search results (left,top,right,bottom)
Examples (3)
Search for Big Ben landmark
probe-gate
Demonstrates basic forward geocoding to find a famous landmark by name
Curl
Python Requests
Zingu Apis
Javascript Fetch
curl 'https://nominatim.openstreetmap.org/search?q=Big+Ben&format=json&limit=1'
import requests
resp = requests.get(
"https://nominatim.openstreetmap.org/search",
params={
'q': 'Big Ben',
'format': 'json',
'limit': '1',
},
)
data = resp.json()
import zingu_apis
api = zingu_apis.api("nominatim-geocoding")
result = api.fetch("search", q="Big Ben", format="json", limit=1)
for item in result:
print(item)
const resp = await fetch("https://nominatim.openstreetmap.org/search?q=Big+Ben&format=json&limit=1");
const data = await resp.json();
Run
Truncate
Auto
Table
Raw
Search for Eiffel Tower with city context
probe-gate
Demonstrates searching for a landmark with city context for better accuracy
Curl
Python Requests
Zingu Apis
Javascript Fetch
curl 'https://nominatim.openstreetmap.org/search?q=Eiffel+Tower%2C+Paris&format=json&limit=1'
import requests
resp = requests.get(
"https://nominatim.openstreetmap.org/search",
params={
'q': 'Eiffel Tower, Paris',
'format': 'json',
'limit': '1',
},
)
data = resp.json()
import zingu_apis
api = zingu_apis.api("nominatim-geocoding")
result = api.fetch("search", q="Eiffel Tower, Paris", format="json", limit=1)
for item in result:
print(item)
const resp = await fetch("https://nominatim.openstreetmap.org/search?q=Eiffel+Tower%2C+Paris&format=json&limit=1");
const data = await resp.json();
Run
Truncate
Auto
Table
Raw
Search for Times Square
probe-gate
Demonstrates searching for a famous city landmark by name only
Curl
Python Requests
Zingu Apis
Javascript Fetch
curl 'https://nominatim.openstreetmap.org/search?q=Times+Square&format=json&limit=1'
import requests
resp = requests.get(
"https://nominatim.openstreetmap.org/search",
params={
'q': 'Times Square',
'format': 'json',
'limit': '1',
},
)
data = resp.json()
import zingu_apis
api = zingu_apis.api("nominatim-geocoding")
result = api.fetch("search", q="Times Square", format="json", limit=1)
for item in result:
print(item)
const resp = await fetch("https://nominatim.openstreetmap.org/search?q=Times+Square&format=json&limit=1");
const data = await resp.json();
Run
Truncate
Auto
Table
Raw
Probe History
Time Status Latency Size
2026-04-16 16:59:43.469061
200
884ms
2026-04-16 03:56:29.250372
200
476ms
2026-04-16 02:43:39.033659
200
248ms
2026-04-16 00:58:00.374184
200
851ms
2026-04-15 03:28:38.411900
200
244ms
2026-04-15 00:41:54.071276
200
456ms
2026-04-15 00:28:56.095849
200
260ms
2026-04-14 01:39:27.923837
200
364ms
2026-04-14 01:07:54.795797
200
218ms
2026-04-14 00:21:05.507104
200
450ms
2026-04-12 14:53:27.692812
200
893ms
2026-04-12 14:06:53.377847
200
260ms
2026-04-12 13:50:18.396814
200
233ms
2026-04-10 06:49:30.994937
200
208ms
2026-04-10 03:19:33.711837
200
254ms
2026-04-10 01:14:37.688737
200
257ms
2026-04-09 03:28:35.963860
200
471ms
2026-04-09 03:02:46.818562
200
792ms
2026-04-09 02:48:02.307650
200
762ms