BYTETOOLS

Photon (Komoot) API

Free Photon geocoding API with no key: fast OpenStreetMap-based search built for typeahead, with forward and reverse geocoding. Self-hostable. Tested.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 20 Aug 2026

What is the Photon (Komoot) API?

Photon is a free, key-free geocoding API built on OpenStreetMap data and optimised for search-as-you-type, providing forward and reverse geocoding with GeoJSON output.

Photon exists because Nominatim, while excellent, is too slow and too rate-limited for autocomplete. Photon is built on Elasticsearch specifically for fast prefix matching, which makes it the right tool for a location search box.

Its public instance is run by Komoot and has no hard rate limit published, but the software is open source — self-hosting is the expected route for production use, and removes any dependency on someone else's goodwill.

Quick facts

Base URL
https://photon.komoot.io/api
Authentication
No API key required on the public instance.
Rate limit
No published hard limit, but the public instance is a courtesy — self-host for production.
Pricing
Free and open source. Data is ODbL, requiring OpenStreetMap attribution.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Photon (Komoot) API

Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Geocode a place name

GET https://photon.komoot.io/api/?q=berlin&limit=1

curl
curl 'https://photon.komoot.io/api/?q=berlin&limit=1'
JavaScript (fetch)
const res = await fetch("https://photon.komoot.io/api/?q=berlin&limit=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://photon.komoot.io/api/?q=berlin&limit=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "osm_type": "R",
        "osm_id": 62422,
        "osm_key": "place",
        "osm_value": "city",
        "type": "city",
        "name": "Berlin",
        "country": "Deutschland",
        "countrycode": "DE",
        "extra": {
          "admin_level": "4"
        },
        "extent": [
          13.088345,
          52.6755087,
          13.7611609,
          52.3382448
        ]
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.3951309,
          52.5173885
        ]
      }
    }
  ]
}

Parameters

ParameterTypeRequiredDescription
qstringRequiredSearch query — works well with partial input. berlin
limitintegerOptionalMaximum results. 5
langstringOptionalLanguage for returned names. en
lat / lonfloatOptionalBias results towards a location. 52.52
bboxstringOptionalRestrict to a bounding box. 13.0,52.3,13.7,52.7

Response fields

typestring
FeatureCollection — the response is GeoJSON.
features[].geometry.coordinatesarray
[longitude, latitude] — note the order.
features[].properties.namestring
Place name.
features[].properties.country / state / citystring
Administrative context.
features[].properties.osm_id / osm_typeinteger|string
OpenStreetMap object reference.
features[].properties.typestring
Feature classification such as city or street.

What you can build with the Photon (Komoot) API

  • Build a fast location autocomplete box
  • Geocode addresses without Nominatim's one-per-second limit
  • Bias search results towards the user's current position
  • Self-host geocoding for privacy or volume

Common errors and how to fix them

Coordinates plotted wrongly

GeoJSON orders coordinates [longitude, latitude].

Fix: Swap them — most mapping code expects latitude first.

Irrelevant results

Global search with no bias.

Fix: Pass lat/lon to bias towards the user, or bbox to constrain the area.

Public instance unavailable

It is a courtesy service.

Fix: Self-host Photon for anything production — it is open source and designed to be run yourself.

Photon (Komoot) API — frequently asked questions

Is Photon free?

Yes, the public instance is free with no API key. It is open source and intended to be self-hosted for production use.

How is it different from Nominatim?

Photon is built on Elasticsearch for fast prefix matching, which makes it suitable for search-as-you-type. Nominatim is more precise for full addresses but limited to one request per second.

Why are my markers in the wrong place?

The response is GeoJSON, which orders coordinates as [longitude, latitude] — the reverse of what most mapping code expects. Swap the first two values.

Do I need to attribute OpenStreetMap?

Yes. The underlying data is ODbL-licensed, so displaying results requires attributing OpenStreetMap contributors.

Tools that pair with this API

Alternatives to Photon (Komoot) API

If Photon (Komoot) does not fit, these geolocation & ip apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
ipifyipify is a free, unlimited API that returns your public IP address as text, JSON or JSONP. No key, no rate limit, IPv4 and IPv6 endpoints. Live curl example.No keyYes19 Aug 2026
ip-api.comFree IP geolocation API returning country, city, coordinates, timezone and ISP for any IP. No key on the free tier, 45 requests per minute. Tested curl example.No keyYes19 Aug 2026
ipwho.isFree IP geolocation API with HTTPS and no API key. Returns country, city, coordinates, timezone, currency and connection data. 10,000 requests/month free.No keyYes19 Aug 2026
Nominatim (OpenStreetMap)Free OpenStreetMap geocoding API: convert addresses to coordinates and back. No API key, open data, 1 request per second. Tested curl example and usage policy.No keyNo19 Aug 2026
Postcodes.ioFree UK postcode API with no key: coordinates, council, constituency, ward and NHS area for any UK postcode, plus reverse and nearest lookups. Tested.No keyYes19 Aug 2026
PSGC (Philippines)Free Philippine Standard Geographic Code API with no key: regions, provinces, cities, municipalities and all 42,000 barangays, with official PSGC codes. Tested example included.No keyYes21 Aug 2026
All Geolocation & IP APIs

Photon (Komoot) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.