Geocoding · head-to-head
Nominatim vs OpenStreetMap
Nominatim provides worldwide forward and reverse geocoding built entirely on OpenStreetMap data, needing no API key — only a descriptive User-Agent or Referer header identifying the calling application (the policy states a stock HTTP-library User-Agent will not do). The public instance at nominatim.openstreetmap.org mainly exists to power the search bar on openstreetmap.org and runs on donated servers with very limited capacity: its usage policy caps requests at an absolute maximum of 1 per second, forbids autocomplete-style querying outright, and requires results to be cached on the caller's side. Bulk geocoding is restricted rather than banned — a smaller one-time task is permissible on a single thread and a single machine, with distributed scripts disallowed and anything running longer than a day capped at 4 requests per minute. The policy points larger users first at commercial third-party providers, and the largest at running their own Nominatim instance.
The core OpenStreetMap API serves and edits the raw map database underlying OSM — nodes, ways, and relations — over HTTPS at api.openstreetmap.org. Reading map data requires no authentication at all, while creating or modifying data requires an OAuth 2.0 token tied to an OSM account (the older Basic Auth/OAuth 1.0a login methods were retired in June 2024). It's a general-purpose data API rather than a geocoding service specifically — OSM points address-lookup users to the separate Nominatim service, and bulk-read users to Overpass.
| Nominatim | OpenStreetMap | |
|---|---|---|
| Authentication | None | None |
| Pricing | free | free |
| Formats | JSON, XML, GeoJSON | XML, JSON |
| CORS | yes | yes |
| HTTPS | Yes | Yes |
Nominatim supports 3 response formats, while OpenStreetMap offers fewer — pick Nominatim for more integration flexibility.