Skip to content

Reverse Geocoding





Reverse search helps you find addresses and other places nearest to some geographic coordinates. Like the other endpoints, it offers a number of parameters you can use to fine tune your search.


Example Code


Get started quickly with code samples using our official SDKs or cURL. Official SDKs include documentation of all request and response models, either as separate pages, or through docstrings and autocomplete in most IDEs. If you are building for another language or want to try out requests in a browser, refer to our interactive API reference.

import { GeocodingApi, Configuration } from '@stadiamaps/api';

// If you are writing for a backend application or can't use domain-based auth,
// then you'll need to add your API key like so:
// const config = new Configuration({ apiKey: "YOUR-API-KEY" });
// You can also use our EU endpoint to keep traffic within the EU using the basePath option:
// const config = new Configuration({ basePath: "" });
// const api = new GeocodingApi(config);
const api = new GeocodingApi();

const res = await api.reverse({ pointLat: 59.444351, pointLon: 24.750645 });
import os
import stadiamaps
from import ApiException

# You can also use our EU endpoint to keep traffic within the EU like so:
# configuration = stadiamaps.Configuration(host="")
configuration = stadiamaps.Configuration()

# Configure API key authentication (ex: via environment variable).
configuration.api_key['ApiKeyAuth'] = os.environ["API_KEY"]

with stadiamaps.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = stadiamaps.GeocodingApi(api_client)

        res = api_instance.reverse(59.444351, 24.750645)
    except ApiException as e:
        # Add your error handling here
        print("Exception when calling the Stadia Maps API: %s\n" % e)
// Imports (at the top of your source file; we've used some wildcard imports for simplicity)
import com.stadiamaps.api.apis.*
import com.stadiamaps.api.auth.ApiKeyAuth
import com.stadiamaps.api.infrastructure.*
import com.stadiamaps.api.models.*

// Set your API key (from an environment variable in this case)
val apiKey = System.getenv("STADIA_API_KEY") ?: throw RuntimeException("API Key not set")

// Defining the host is optional and defaults to
// You can also use our EU endpoint to keep traffic within the EU like so:
// val client = ApiClient(baseUrl = "")
val client = ApiClient()
client.addAuthorization("ApiKeyAuth", ApiKeyAuth("query", "api_key", apiKey))

// Configure a service for the group of APIs we want to talk to
val service = client.createService(

// Set up the request. Note: if you're using Kotlin with coroutines, you can also await
// rather than executing synchronously when using suspend functions.
val res = service.reverse(59.444351, 24.750645).execute()

if (res.isSuccessful) {
    println("Found result: ${res.body()}")
} else {
    println("Request failed with error code ${res.code()}")
import StadiaMaps

// This setup code can go anywhere before you actually make an API call (typically in your app init)
func setupStadiaMapsAPI() {
    // Set your API key
    StadiaMapsAPI.customHeaders = ["Authorization": "Stadia-Auth YOUR-API-KEY"]
    // Optionally use our EU endpoint to keep traffic within the EU
    // StadiaMapsAPI.basePath = ""

// This function demonstrates how to call the Stadia Maps API.
// If you have not yet adopted async/await in your Swift codebase, you can use the Task API
// to call async functions in a non-async context:
func myFunction() async throws {
    let res = try await GeocodingAPI.reverse(pointLat: 59.444351, pointLon: 24.750645)

    // Do something with the response...
curl ""
Storage of Geocoding API Results

Permanently storing results, in part or in whole, (e.g. in a database) from this API for future requires an active Standard, Professional, or Enterprise subscription. See our terms of service for the full legal terms.

Query String Parameters

Parameter Type Required Description Default Example float yes The latitude of the point at which to perform the search. none 48.858268
point.lon float yes The longitude of the point at which to perform the search. none 2.294471 float no The radius (in kilometers) of the circle to limit the search to. 1 35
layers comma-delimited string array no A list of layers, to limit the search to. all layers address,venue
sources comma-delimited string array no A list of sources, to limit the search to. all sources openstreetmap,wof comma-delimited string array no A list of countries to limit the search to. none GBR,FRA
boundary.gid Pelias GID no The Pelias GID of a region to limit the search to. none whosonfirst:locality:101748355
size integer no The maximum number of results to return. 10 3

Notes and tips

  • Use layers=coarse can be used for extremely fast, coarse-grained lookups.
  • The confidence score has a specific meaning for reverse search results.

Response format

All geocoding, autocomplete, and search endpoints share a common response format. See the response format documentation for details.

Next Steps