I run a free service with an interactive map and currently use Mapbox for location autocomplete. At my current traffic level, the search box costs about $150 per month, which is becoming difficult to justify. Long term, I could host a Photon-based geocoder myself, but the estimated infrastructure would cost around $300 per month and require ongoing maintenance. I need worldwide coverage, especially for Japan and South Korea, but not China. Are there more affordable hosted services, self-hosted options, or architectural changes that could reduce the cost while keeping autocomplete reasonably accurate?
5 Answers
Nominatim is worth evaluating for a prototype or lower-volume use case, and OpenStreetMap coverage is fairly strong in Japan and South Korea. However, don't rely on the public instance for production traffic, and self-hosting a full-world Nominatim database can require considerably more storage than Photon. Check the service's usage policy and infrastructure requirements carefully.
If you eventually self-host, Photon on a couple of inexpensive NVMe machines with a cache or load balancer in front may be cheaper than a large dedicated server. The exact requirements depend on the geographic extracts, update frequency, and concurrency, so benchmark with your real queries rather than assuming the whole-world dataset will fit comfortably on any small instance.
If you're comfortable managing infrastructure, running Pelias or Photon in Docker could remove most per-request costs. Pelias with OpenAddresses is one possible starting point, though global data imports require substantial storage and the initial setup can take patience. Make sure the dataset actually has the coverage and language support you need for Japan and South Korea before committing.
You may not need autocomplete for every field or every keystroke. Another approach is to let users submit an address first, then validate or normalize it and offer a suggested match. Mapbox and several other providers have cheaper geocoding tiers, and government datasets can help for specific countries. This can greatly reduce the number of live search requests.
A hybrid setup may give you the best price-to-quality ratio. Keep a small local index for common city and town searches, cache repeated queries, and send only detailed address searches or misses to a hosted provider such as Stadia Maps, MapTiler, or a Pelias-based service. You can also disable location-biased results if that prevents effective caching. This avoids paying for every keystroke while preserving good results for harder searches.

The location bias is convenient, but it isn't always essential. You could cache results by normalized query and a coarse region or country instead of by exact user location, which would preserve some relevance while allowing repeated searches to be reused.