Nominatim website screenshot

Nominatim

Nominatim is an open-source (BSD-2-Clause) search engine for OpenStreetMap data, supporting forward geocoding (address to coordinates), reverse geocoding (coordinates to address), and address lookup by OSM ID. The OpenStreetMap Foundation runs a free public instance at nominatim.openstreetmap.org under a published usage policy, and the project is also widely self-hosted and resold by commercial providers (MapTiler, LocationIQ, Geocode Earth).

1 APIs 8 Features
GeocodingOpenStreetMapMapsLocationServicesOpenSourcePublic APIs

APIs

Nominatim API

HTTP API surface implemented by Nominatim. The same surface is exposed by the OSMF public instance, self-hosted Nominatim deployments, and most commercial Nominatim-compatible p...

Collections

Pricing Plans

Nominatim Plans Pricing

2 plans

PLANS

Rate Limits

Nominatim Rate Limits

0 limits

RATE LIMITS

Features

Forward Geocoding

Convert free-form or structured addresses into coordinates and full place metadata.

Reverse Geocoding

Identify the closest OSM feature to a coordinate at a chosen administrative zoom level.

OSM Object Lookup

Resolve up to 50 OSM nodes/ways/relations to detailed address breakdowns per call.

Multi-Format Output

Returns json, jsonv2, geojson, geocodejson, and xml from a single endpoint via `format`.

Polygon Geometry

Optional geometry output as GeoJSON, KML, SVG, or WKT with a simplification tolerance.

Country And Layer Filtering

Bias or restrict results by ISO country code, viewbox, layer (address/poi/etc.), or feature type.

Service Health

/status endpoint exposes data freshness, software version, and database version for monitoring.

Self-Hostable

Install on your own infrastructure from a planet.osm.pbf import; BSD-2-Clause licensed.

Use Cases

Map Search Box

Power "find a place" search boxes in OSM-based map applications.

Reverse Geocoding For Telemetry

Attach human-readable addresses to coordinates collected from devices, vehicles, or sensors.

Civic Tech And Open Data

Provide geocoding for public-interest tools where commercial pricing is a barrier.

Background Address Normalisation

When self-hosted, normalize address strings in pipelines without per-call costs.

AI Agents With Map Tools

Ground LLM agents in real-world places via an MCP server backed by Nominatim.

Integrations

geopy

Python geocoding library shipping a built-in Nominatim adapter.

GeoDjango

Django GIS framework with Nominatim geocoder support.

Leaflet Control Geocoder

Leaflet plugin offering a Nominatim geocoder out of the box.

OpenLayers

Web mapping library frequently paired with Nominatim for search.

QGIS MMQGIS

Desktop GIS plugin that batch-geocodes via Nominatim.

MapTiler Cloud Geocoding

Commercial hosted Nominatim-style API from MapTiler.

LocationIQ

Commercial Nominatim-compatible geocoding/routing platform.

Geocode Earth

Commercial Pelias deployment (Nominatim-compatible workloads).

Solutions

OSMF Public Instance

Free hosted Nominatim under the OSMF Usage Policy (1 req/sec ceiling).

Self-Hosted Nominatim

BSD-2-Clause stack you import a planet dump into; no upstream rate limits.

Commercial Hosted Nominatim

Paid hosted offerings from MapTiler, LocationIQ, Geocode Earth and others.

Semantic Vocabularies

Nominatim Context

33 classes · 3 properties

JSON-LD

API Governance Rules

Nominatim API Rules

9 rules · 5 errors 3 warnings 1 info

SPECTRAL

JSON Structure

Nominatim Address Structure

0 properties

JSON STRUCTURE

Nominatim Place Structure

0 properties

JSON STRUCTURE

Nominatim Status Structure

0 properties

JSON STRUCTURE

Example Payloads

Nominatim Address Example

12 fields

EXAMPLE

Nominatim Details Example

2 fields

EXAMPLE

Nominatim Lookup Example

2 fields

EXAMPLE

Nominatim Place Example

17 fields

EXAMPLE

Nominatim Reverse Example

2 fields

EXAMPLE

Nominatim Search Example

2 fields

EXAMPLE

Nominatim Status Example

2 fields

EXAMPLE

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
👥
Nominatim core (Python)
GitHubRepository
👥
Nominatim debug UI (Svelte)
GitHubRepository
👥
Data Analyser QA tool
GitHubRepository
👥
Wikipedia/Wikidata preprocessing
GitHubRepository
👥
US Census TIGER preprocessing
GitHubRepository
👥
GB postcode preprocessing
GitHubRepository
👥
Country grid preprocessing
GitHubRepository
👥
Secondary importance raster builder
GitHubRepository
📜
Nominatim Usage Policy
TermsOfService
🔗
RateLimits
RateLimits
🔗
Plans
Plans
🔗
Vocabulary
Vocabulary
🔗
SpectralRules
SpectralRules
🔧
osmmcp — OpenStreetMap MCP Server (Nominatim + Overpass + OSRM)
Tools
🔧
geocoding-ai/mcp — Nominatim Geocoding MCP Server (Node.js)
Tools
🔧
geocode-mcp — Nominatim Geocoding MCP Server (Python)
Tools
🔧
open-streetmap-mcp — OpenStreetMap MCP Server
Tools
🔧
Unofficial Nominatim OpenAPI spec
Tools

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Nominatim API
  version: 4.5.0
items:
- info:
    name: Search
    type: folder
  items:
  - info:
      name: Search OSM Objects By Name Or Address
      type: http
    http:
      method: GET
      url: https://nominatim.openstreetmap.org/search
      params:
      - name: q
        value: ''
        type: query
        description: Free-form query string. Cannot be combined with structured query parameters.
      - name: amenity
        value: ''
        type: query
        description: Name or type of point of interest.
      - name: street
        value: ''
        type: query
        description: House number and street name.
      - name: city
        value: ''
        type: query
      - name: county
        value: ''
        type: query
      - name: state
        value: ''
        type: query
      - name: country
        value: ''
        type: query
      - name: postalcode
        value: ''
        type: query
      - name: format
        value: ''
        type: query
        description: Output format.
      - name: json_callback
        value: ''
        type: query
        description: Wrap JSON output in a JSONP callback.
      - name: limit
        value: ''
        type: query
        description: Maximum number of returned results.
      - name: addressdetails
        value: ''
        type: query
        description: Include a breakdown of the address into elements.
      - name: extratags
        value: ''
        type: query
        description: Include additional information (Wikipedia link, opening hours, etc.).
      - name: namedetails
        value: ''
        type: query
        description: Include a full list of names for the result.
      - name: accept-language
        value: ''
        type: query
        description: 'Preferred language order for showing search results, in browser-style

          format (e.g. `en-US,en;q=0.5`). Overrides the HTTP Accept-Language

          header.

          '
      - name: countrycodes
        value: ''
        type: query
        description: Comma-separated list of ISO 3166-1 alpha-2 country codes to limit results to.
      - name: exclude_place_ids
        value: ''
        type: query
        description: Comma-separated list of place IDs to exclude from the result set.
      - name: viewbox
        value: ''
        type: query
        description: 'Bounding box `x1,y1,x2,y2` (longitudes and latitudes) used to bias

          results toward a geographic area.

          '
      - name: bounded
        value: ''
        type: query
        description: When set, restrict results strictly to the viewbox.
      - name: polygon_geojson
        value: ''
        type: query
        description: Output geometry as GeoJSON.
      - name: polygon_kml
        value: ''
        type: query
        description: Output geometry as KML.
      - name: polygon_svg
        value: ''
        type: query
        description: Output geometry as SVG.
      - name: polygon_text
        value: ''
        type: query
        description: Output geometry as WKT.
      - name: polygon_threshold
        value: ''
        type: query
        description: Simplification tolerance for polygon output, in degrees.
      - name: dedupe
        value: ''
        type: query
        description: Remove duplicate hits from the result set.
      - name: layer
        value: ''
        type: query
        description: 'Restrict results to one or more feature layers. Comma-separated list of

          `address`, `poi`, `railway`, `natural`, `manmade`.

          '
      - name: featureType
        value: ''
        type: query
        description: Restrict search results to a single feature type.
      - name: email
        value: ''
        type: query
        description: 'Email address identifying you when making high-volume requests. Required

          by the OSMF usage policy at sustained traffic levels.

          '
      - name: debug
        value: ''
        type: query
        description: Return verbose HTML output containing internal debugging information.
    docs: 'Forward-geocode a free-form or structured query and return matching

      OSM objects. Use the free-form `q` parameter or one of the structured

      parameters (`amenity`, `street`, `city`, `county`, `state`, `country`,

      `postalcode`) — the two query styles cannot be combined.

      '
- info:
    name: Reverse
    type: folder
  items:
  - info:
      name: Reverse Geocode A Coordinate
      type: http
    http:
      method: GET
      url: https://nominatim.openstreetmap.org/reverse
      params:
      - name: lat
        value: ''
        type: query
        description: Latitude of the coordinate to reverse geocode (WGS84).
      - name: lon
        value: ''
        type: query
        description: Longitude of the coordinate to reverse geocode (WGS84).
      - name: zoom
        value: ''
        type: query
        description: 'Level of administrative detail required. 3=country, 5=state, 8=county,

          10=city, 12=town/borough, 13=village/suburb, 14=neighbourhood, 15=any

          settlement, 16=major streets, 17=major and minor streets, 18=building.

          '
      - name: format
        value: ''
        type: query
        description: Output format.
      - name: json_callback
        value: ''
        type: query
        description: Wrap JSON output in a JSONP callback.
      - name: addressdetails
        value: ''
        type: query
        description: Include a breakdown of the address into elements.
      - name: extratags
        value: ''
        type: query
        description: Include additional information (Wikipedia link, opening hours, etc.).
      - name: namedetails
        value: ''
        type: query
        description: Include a full list of names for the result.
      - name: accept-language
        value: ''
        type: query
        description: 'Preferred language order for showing search results, in browser-style

          format (e.g. `en-US,en;q=0.5`). Overrides the HTTP Accept-Language

          header.

          '
      - name: layer
        value: ''
        type: query
        description: 'Restrict results to one or more feature layers. Comma-separated list of

          `address`, `poi`, `railway`, `natural`, `manmade`.

          '
      - name: polygon_geojson
        value: ''
        type: query
        description: Output geometry as GeoJSON.
      - name: polygon_kml
        value: ''
        type: query
        description: Output geometry as KML.
      - name: polygon_svg
        value: ''
        type: query
        description: Output geometry as SVG.
      - name: polygon_text
        value: ''
        type: query
        description: Output geometry as WKT.
      - name: polygon_threshold
        value: ''
        type: query
        description: Simplification tolerance for polygon output, in degrees.
      - name: email
        value: ''
        type: query
        description: 'Email address identifying you when making high-volume requests. Required

          by the OSMF usage policy at sustained traffic levels.

          '
      - name: debug
        value: ''
        type: query
        description: Return verbose HTML output containing internal debugging information.
    docs: 'Find the closest OSM object to a latitude/longitude pair and return its

      address information. The result is the closest suitable feature for the

      requested zoom level rather than a literal address for the exact point.

      '
- info:
    name: Lookup
    type: folder
  items:
  - info:
      name: Look Up Address Details For OSM Objects
      type: http
    http:
      method: GET
      url: https://nominatim.openstreetmap.org/lookup
      params:
      - name: osm_ids
        value: ''
        type: query
        description: 'Comma-separated list of OSM IDs each prefixed with type

          (N=node, W=way, R=relation). Maximum 50 IDs per request.

          '
      - name: format
        value: ''
        type: query
        description: Output format.
      - name: json_callback
        value: ''
        type: query
        description: Wrap JSON output in a JSONP callback.
      - name: addressdetails
        value: ''
        type: query
        description: Include a breakdown of the address into elements.
      - name: extratags
        value: ''
        type: query
        description: Include additional information (Wikipedia link, opening hours, etc.).
      - name: namedetails
        value: ''
        type: query
        description: Include a full list of names for the result.
      - name: accept-language
        value: ''
        type: query
        description: 'Preferred language order for showing search results, in browser-style

          format (e.g. `en-US,en;q=0.5`). Overrides the HTTP Accept-Language

          header.

          '
      - name: polygon_geojson
        value: ''
        type: query
        description: Output geometry as GeoJSON.
      - name: polygon_kml
        value: ''
        type: query
        description: Output geometry as KML.
      - name: polygon_svg
        value: ''
        type: query
        description: Output geometry as SVG.
      - name: polygon_text
        value: ''
        type: query
        description: Output geometry as WKT.
      - name: polygon_threshold
        value: ''
        type: query
        description: Simplification tolerance for polygon output, in degrees.
      - name: email
        value: ''
        type: query
        description: 'Email address identifying you when making high-volume requests. Required

          by the OSMF usage policy at sustained traffic levels.

          '
      - name: debug
        value: ''
        type: query
        description: Return verbose HTML output containing internal debugging information.
    docs: 'Look up address details for one or more OSM objects identified by their

      OSM type and ID. Up to 50 IDs may be passed per request.

      '
- info:
    name: Details
    type: folder
  items:
  - info:
      name: Show Internal Place Details
      type: http
    http:
      method: GET
      url: https://nominatim.openstreetmap.org/details
      params:
      - name: osmtype
        value: ''
        type: query
        description: OSM object type (N=node, W=way, R=relation).
      - name: osmid
        value: ''
        type: query
        description: OSM object ID.
      - name: class
        value: ''
        type: query
        description: 'Optional OSM tag key used to disambiguate between multiple places

          originating from the same OSM object.

          '
      - name: place_id
        value: ''
        type: query
        description: 'Internal Nominatim place identifier. Not portable across Nominatim

          instances.

          '
      - name: json_callback
        value: ''
        type: query
        description: Wrap JSON output in a JSONP callback.
      - name: format
        value: ''
        type: query
        description: Output format.
      - name: addressdetails
        value: ''
        type: query
        description: Include a breakdown of the address into elements.
      - name: keywords
        value: ''
        type: query
        description: Include name and address keywords used for indexing.
      - name: linkedplaces
        value: ''
        type: query
        description: Include details for linked places.
      - name: hierarchy
        value: ''
        type: query
        description: Include dependent POIs and addresses.
      - name: group_hierarchy
        value: ''
        type: query
        description: Group the hierarchy output by element type.
      - name: polygon_geojson
        value: ''
        type: query
        description: Output geometry as GeoJSON.
      - name: accept-language
        value: ''
        type: query
        description: 'Preferred language order for showing search results, in browser-style

          format (e.g. `en-US,en;q=0.5`). Overrides the HTTP Accept-Language

          header.

          '
    docs: 'Show internal details for an object. Intended for debugging — the

      endpoint is not part of the stable API surface and the place_id is not

      portable across Nominatim installations.

      '
- info:
    name: Status
    type: folder
  items:
  - info:
      name: Report Service And Database Status
      type: http
    http:
      method: GET
      url: https://nominatim.openstreetmap.org/status
      params:
      - name: format
        value: ''
        type: query
        description: Response format.
    docs: 'Report on the state of the Nominatim service and its underlying

      database. Useful for health checks.

      '
- info:
    name: Deletable
    type: folder
  items:
  - info:
      name: List Objects Deleted From OSM But Retained In Nominatim
      type: http
    http:
      method: GET
      url: https://nominatim.openstreetmap.org/deletable
    docs: 'List OSM objects that have been deleted upstream in OpenStreetMap but

      are still present in the Nominatim database. Used for data quality

      monitoring.

      '
- info:
    name: Polygons
    type: folder
  items:
  - info:
      name: List Problematic Polygon Geometries
      type: http
    http:
      method: GET
      url: https://nominatim.openstreetmap.org/polygons
    docs: 'List polygons whose geometries the Nominatim importer flagged as

      broken or otherwise problematic. Used for data quality monitoring.

      '
bundled: true