Nominatim API
Sep 23,2026

GISBox is a one-stop 3D GIS data editing, conversion and publishing platform that supports editing in multiple GIS formats such as OSGB/GEOTIFF/RVT, converting to 3DTiles/Terrain and publishing.

Introduction

Nominatim API is an open-source geocoding and reverse geocoding service officially provided by OpenStreetMap. It supports forward geocoding—converting human-readable addresses (e.g., "Xihu District, Hangzhou, Zhejiang, China") into precise latitude/longitude coordinates—as well as reverse geocoding, which converts latitude/longitude coordinates (e.g., 30.2642, 120.1667) back into structured address information. All data relies on OpenStreetMap map information contributed by volunteers worldwide. It supports both free-form text searches and structured parameter filtering, and is widely used in fields such as map applications, location search, and data analysis. It is also available for free through the official public interface, but users must comply with the usage policy of no more than one request per second.

File Structure

The file structure of Nominatim can be understood at the following three levels:

  • Source code directories: nominatim/api/ (API interface layer), nominatim/tokenizer/ (tokenizer), lib-sql/ (database functions), settings/ (configuration files), sql/ (table creation scripts), test/ (test suite), etc.
  • Deployment environment file system: data/osm/ (raw OSM data files), postgres/ (PostgreSQL database storage area, which consumes the most disk space), config/settings/local.php (custom configuration), logs/ (runtime logs), docker-compose.yml (container deployment configuration).
  • Main database tables: place (stores all locations), search_name (search index), place_addressline (address hierarchy relationships), location_area/road (auxiliary tables for regions and roads). PostGIS spatial indexes enable fast searching.

Pros

  1. Open-source and free: Completely open-source with no licensing fees. Data transparency is high, making it suitable for personal projects and non-commercial applications.
  2. Globally crowdsourced data: Based on OpenStreetMap data contributed by volunteers worldwide, it offers global coverage and supports approximately 167 languages and regional address formats.
  3. Supports multiple search methods: Provides a rich set of features including forward geocoding (address → coordinates), reverse geocoding (coordinates → address), structured parameter searches, and batch searches.
  4. Fully offline operation possible: If self-hosted and self-managed, the service can operate without connecting to external networks, meeting data privacy and compliance requirements.
  5. High customizability: Supports custom tokenization rules, ranking algorithms, and country-specific behavior settings. Its modular design also makes extension easy.

Cons

  1. Strict rate limits on the public API: The official public interface limits anonymous users to no more than one request per second. High-frequency usage requires self-hosting or purchasing a commercial alternative service.
  2. Regional differences in data quality: Data quality depends heavily on the level of contribution from the OSM community. Data in Europe and North America is well-developed, but data in rural areas of developing countries may be incomplete.
  3. Self-hosting is complex and resource-intensive: PostgreSQL and PostGIS databases must be managed manually, and global data requires over 1 TB of storage. At least 32 GB of memory and an NVMe SSD are recommended, and data import also takes a long time.
  4. Limited search performance: Response times for complex searches or reverse searches can range from several hundred milliseconds to several seconds. Under high-concurrency conditions, performance bottlenecks and OOM issues are more likely to occur.
  5. Limited functional scope: It only provides geocoding and reverse geocoding. It does not include routing, navigation, or map tile rendering, so it cannot fulfill the requirements of a complete map application.

Application Scenario

The Nominatim API is widely used in various situations that require converting between addresses and coordinates. For example, it can display an address entered by a user on a map in map navigation, standardize delivery addresses for route planning in logistics and delivery systems, or automatically attach geotags to content in social services and travel platforms. It is also used in fields such as real estate, urban planning, emergency rescue, commercial data analysis, and IoT asset management. Developers can batch-convert text-format addresses into latitude/longitude coordinates to enable location-based search, visualization, and spatial decision-making.

Example

1. Building a containerized Nominatim geocoding service using the Docker image.

13_1788861412449.jpg

File Opening Mode

1. Loading the OpenStreetMap map in the web version.

image_1788860908434.png

Related GIS Services

LocationIQ API

Geoapify Maps & Location API

Stadia Maps API

Thunderforest Maps API

References

  1. https://www.geoapify.com/nominatim-geocoder/
  2. https://nominatim.org/release-docs/develop/api/Overview/