Skip to main content

Photon vs Nominatim: which OSM geocoder should you use?

Both Photon and Nominatim are open-source geocoders built on OpenStreetMap data, and both do forward and reverse geocoding. They're often presented as competitors, but they're closer to complementary — Photon's search index is actually derived from Nominatim's data. The right pick depends on what kind of search you're doing and how much hardware you want to run.

What each is good at

Photon is built for fast, typo-tolerant, search-as-you-type geocoding. It's OpenSearch-based and shines at autocomplete and fuzzy matching — the "start typing and get instant suggestions" experience. Reverse geocoding is fast and lightweight.

Nominatim is the authoritative, structured geocoder — the same engine behind the OSM website's search. It excels at precise, structured address queries and detailed address breakdowns. It's less forgiving of typos and not designed for type-ahead, but it's the reference for correctness.

PhotonNominatim
Best atAutocomplete, fuzzy/typo-tolerant searchStructured, authoritative address lookup
Underlying techOpenSearchPostgreSQL / PostGIS
Data sourceDerived from Nominatim/OSMOSM planet, direct
Reverse geocodingFast, lightDetailed, structured

The self-hosting cost gap

This is where the practical decision usually gets made. Numbers are from each project's own documentation (2026):

PhotonNominatim
Disk (full planet)~95 GB (prebuilt index)at least 1 TB working space
RAM64 GB recommended128 GB strongly recommended
SetupDownload + unpack two filesFull OSM planet import into Postgres
Import timeMinutes to unpackA long import, even on a good machine
Storage typeSSD strongly recommendedNVMe essential

Photon is dramatically lighter to run because you download a prebuilt index rather than importing the raw planet. Nominatim's full-planet import is a serious undertaking — over a terabyte of fast disk and 128 GB-class RAM.

The public-server limits (if you're not self-hosting)

Neither public instance is built for production load:

  • nominatim.openstreetmap.org: absolute maximum 1 request/second, no bulk use. Notably, "periodic requests from apps are considered bulk geocoding and are strongly discouraged," and access can be withdrawn without notice.
  • photon.komoot.io: "reasonable" use only; "extensive usage will be throttled or completely banned," with no availability guarantee. See photon.komoot.io rate limits.

For anything beyond hobby traffic, both point you to running your own instance — or using a hosted one.

How to choose

  • Autocomplete / type-ahead search → Photon.

  • Precise structured address lookup, correctness-first → Nominatim.

  • Reverse geocoding for a tracking/history app (Traccar, Dawarich, Reitti) → Photon — it's what those apps integrate with, and it's far cheaper to run.

  • You want Photon's behavior without the 64 GB box → a hosted Photon like ChibiGeo: the same API, flat-rate and EU-hosted, with a hard cap. Swap the base URL, add a key, done.

  • What it takes to self-host Photon

  • Use hosted Photon with Traccar