{"id":"nominatim-api","name":"Nominatim (OpenStreetMap Geocoding)","homepage":"https://nominatim.org","repo_url":"https://github.com/osm-search/Nominatim","category":"geospatial","subcategories":["geocoding","open-source","open-data"],"tags":["nominatim","osm","openstreetmap","geocoding","reverse-geocoding","free","open-source","self-hosted"],"what_it_does":"Free, open-source geocoder built on OpenStreetMap data for converting addresses to coordinates and coordinates to addresses, available as a hosted public API or self-hosted service.","use_cases":["Free geocoding for development, prototyping, and small-scale production use","Self-hosted geocoding for organizations requiring data sovereignty","Address lookup in open-source and non-commercial applications","Reverse geocoding in offline or air-gapped environments (self-hosted deployment)","Bulk geocoding when self-hosting to avoid per-request costs"],"not_for":["High-throughput commercial applications (public instance limited to 1 req/second, no SLA)","Applications requiring consistent high accuracy in less-mapped regions","Production use on the public OSM Nominatim instance (violates usage policy for commercial use)","Address validation for shipping — OSM coverage varies too much for business-critical use"],"best_when":"You're building an open-source or non-commercial application that needs free geocoding, or you can self-host Nominatim for unlimited internal use.","avoid_when":"You need production-grade SLAs, commercial use at scale, or high-accuracy geocoding in regions with sparse OSM coverage.","alternatives":["opencage-api","tomtom-api"],"af_score":71.9,"security_score":null,"reliability_score":null,"package_type":"mcp_server","discovery_source":["github"],"priority":"low","status":"evaluated","version_evaluated":"current","last_evaluated":"2026-03-01T09:50:06.006210+00:00","performance":{"latency_p50_ms":300,"latency_p99_ms":1500,"uptime_sla_percent":null,"rate_limits":"Public: 1 request/second hard limit; no SLA; self-hosted: unlimited","data_source":"llm_estimated","measured_on":null}}