Geocoding API

Find any address,
while your users type.

Search for addresses and places worldwide, suggest them as people type, and turn a point on the map into an address. On OpenStreetMap data, with the API of Photon and the API of Nominatim, so the libraries you already use work with it.

  • 100'000 requests a month in every plan
  • Results may be stored
  • Servers in the EU
search as you type
curl 'https://api.overpass.ch/v1/YOUR_KEY/geocode/api?q=kapellbr'

{
  "features": [{
    "geometry": { "coordinates": [8.3077, 47.0518] },
    "properties": {
      "name": "Kapellbrücke",
      "city": "Luzern", "postcode": "6002",
      "osm_key": "man_made", "osm_value": "bridge"
    }
  }, …]
}
Live

Try it

Type into the box, or click the map to find the address of a point. Every answer comes live from our servers, with the request you would send.

  1. Results show here.
Loading the map…
Request: –
–

Data © OpenStreetMap contributors (ODbL). Map: Protomaps, OpenStreetMap.

Examples

Requests to try

Each one runs in the box above. Change it from there: type something else, remove a filter, or switch between the Photon and the Nominatim API.

Addresses, places and postcodes, also while the user types.

Narrow it down

Near a point, inside a box, one kind of place, one language.

Reverse geocoding

From a point on the map to an address, a street or a town.

Nominatim compatible

The same data in the format of the Nominatim API, for code written for it.

What you get

Search for your app, on open data

Addresses and places

Addresses with house numbers, streets, towns, postcodes, shops, stations, peaks, huts and everything else with a name in OpenStreetMap. Typing mistakes and missing umlauts are forgiven.

Search as you type

Answers in a fraction of a second, fast enough to suggest places with every keystroke. Partial words match: kapellbr finds the Kapellbrücke.

Reverse geocoding

From a point to the nearest address, the nearest street, or the town, county, state and country it lies in.

Two APIs you know

The Photon API for autocomplete, and the Nominatim API with the same fields as the public Nominatim. geopy, Leaflet geocoders and your own scripts work after changing the base URL.

Keep your results

Store the coordinates in your database and show them on any map. Only the OpenStreetMap credit is required.

Simple counting

One answered request counts once, whatever it returns. Status requests and errors are free. Geocoding has its own allowance and never uses up Overpass requests or map tiles.

Use it from your code

Create a key in your dashboard. For a search box in a web page, use a key of the type "Maps only" and enter your website as an allowed referer: it works for map tiles and geocoding and nothing else.

const API = "https://api.overpass.ch/v1/YOUR_KEY/geocode";
const input = document.querySelector("#search");
let timer, latest = 0;

input.addEventListener("input", () => {
  clearTimeout(timer);
  timer = setTimeout(async () => {   // wait until the user pauses
    const q = input.value.trim();
    if (q.length < 3) return;
    const id = ++latest;
    const res = await fetch(`${API}/api?q=${encodeURIComponent(q)}&limit=5`);
    const { features } = await res.json();
    if (id !== latest) return;       // a newer answer is on its way
    for (const f of features) {
      const p = f.properties;
      console.log(p.name ?? p.street, p.postcode, p.city, f.geometry.coordinates);
    }
  }, 250);
});

All endpoints, parameters and error codes are in the documentation.

Pricing

Geocoding plans

Every account includes 100'000 geocoding requests a month. The Geocoding plans have more. They are a subscription of their own, next to your Overpass plan, and work with the keys you have.

Geocoding Free

Try search in your app
Free
with every account
  • Geocoding requests / month100'000
  • Requests / minute300
  • No commercial use
  • Search, autocomplete and reverse geocoding
  • Photon and Nominatim compatible API
  • Results may be stored
  • OpenStreetMap data, updated weekly
  • No e-mail support
Start free

Geocoding Small

A website or app with a search box
€19/mo + VAT
billed monthly
  • Geocoding requests / month1 million
  • Requests / minute1'500
  • Commercial use
  • Search, autocomplete and reverse geocoding
  • Photon and Nominatim compatible API
  • Results may be stored
  • OpenStreetMap data, updated weekly
  • E-mail support
Purchase Geocoding Small

Geocoding Large

Large apps and address lists
€129/mo + VAT
billed monthly
  • Geocoding requests / month20 million
  • Requests / minute6'000
  • Commercial use
  • Search, autocomplete and reverse geocoding
  • Photon and Nominatim compatible API
  • Results may be stored
  • OpenStreetMap data, updated weekly
  • Priority support
Purchase Geocoding Large

1 million requests a month elsewhere

ProviderFor 1 million requests a monthNotes
overpass.ch Geocoding Small$25OpenStreetMap data, Photon and Nominatim API. Results may be stored. Hosted in the EU.
OpenCageUSD 125Small: 30,000 requests a day (soft limit).
GeoapifyUSD 179API 50: 50,000 credits a day, one per geocoding request.
LocationIQUSD 200Startup: 60,000 requests a day.
Mapboxabout USD 675100,000 free, then USD 0.75 per 1,000. These results may not be stored; storable ones cost USD 5 per 1,000.

Prices as listed by the providers on 24 October 2026. Plans with a daily limit need about 33,000 requests a day for 1 million a month.

What to expect

  • House numbers come from OpenStreetMap. Most of Europe has them; in the US, the UK and many countries outside Europe some streets have none, and a search then finds the street.
  • There is no address interpolation: a number between two mapped houses is not guessed.
  • The data is updated every week.
  • Names come in English, German, French, Italian and the local language.
  • The Nominatim API has the fields most clients read. /lookup, /details, the XML format and polygon output are not available, and results are ranked as Photon ranks them.
FAQ

Questions

Is there a free geocoding API?

Yes. Every account includes 100'000 geocoding requests a month, together with Overpass, elevation and map tiles, for evaluation and for personal, educational and non-profit projects. Commercial use needs a paid plan.

Can I use it instead of the public Nominatim?

Yes. The public Nominatim allows one request per second and no autocomplete. Point your client at https://api.overpass.ch/v1/YOUR_KEY/nominatim instead of https://nominatim.openstreetmap.org; the search and reverse requests and answers keep their format.

How many requests does a search box use?

One per request you send. Wait about 250 ms after the last keystroke before sending, and start at three letters: a typical search then uses 3 to 6 requests.

May I store the results?

Yes, in your own database and for as long as you like. The data comes from OpenStreetMap under the Open Database Licence, so show “© OpenStreetMap contributors” where you use it.

What happens when the allowance is used up?

Requests get HTTP 429 until the next month starts or you upgrade, and we send an e-mail at 80% and at 100%. We never bill overage.

Get your key in under a minute

Free plan, no credit card. The same key works for geocoding, map tiles, Overpass and elevation.