Skip to content
Public API v1 is live: geocoding, reverse geocoding and routing
API v1

Location APIs for Mongolia

Search places, turn coordinates into addresses and calculate routes with one API key. Built on local data, in Latin and Cyrillic.

Try the API

    GET /v1/geocode

    Geocoding

    Place names and addresses to coordinates, and coordinates back to the nearest place.

    GET /v1/route

    Routing

    Routes, distances and travel times.

    Everything location, behind one API

    The same endpoints power the map on this site. What you see is what your application gets.

    Geocoding

    Find any place, in Latin or Cyrillic

    Type as little as two letters. Results are ranked as you type and come back with coordinates, an address and a category.

    • Sukhbaatar District7-р хороо, Сүхбаатар
    • Sukhbaatar District General Hospital11-р хороо, Сүхбаатар
    • Сүхбаатар дүүргийн нийгмийн даатгал6-р хороо, Чингэлтэй

    Reverse geocoding

    Turn a tap on the map into an address

    Send a latitude and longitude, get the nearest address, place or street with its khoroo and district, and how far away it is.

    place47.91840, 106.91770 · 49 m

    Сүхбаатарын талбай

    6-р хороо, Сүхбаатар, Mongolia

    Routing

    Routes, distances and travel times

    Routes as GeoJSON, with the distance and estimated travel time you need for ETAs and delivery planning.

    Driving Walking
    10 min4.2 km

    Fastest route for the selected travel mode

    For developers

    From API key to first request in minutes

    API keys
    Create, rename, rotate and revoke keys. Secrets are hashed and shown once.
    Live usage
    Requests, errors and latency per key, updated as they happen.
    OpenAPI schema
    A versioned /v1 contract, described by an OpenAPI schema. Plain HTTPS and JSON.
    Predictable errors
    One error envelope with stable codes and rate-limit headers.
    type RouteResponse = {
      route: { distance_meters: number; duration_seconds: number };
    };
    
    const params = new URLSearchParams({
      origin: "106.9177,47.9184",
      destination: "106.9057,47.9220",
      mode: "driving",
    });
    
    const response = await fetch(`https://developers.ubhub.mn/v1/route?${params}`, {
      headers: { Authorization: `Bearer ${process.env.GEO_API_KEY}` },
    });
    const { route } = (await response.json()) as RouteResponse;
    console.log(route.distance_meters, route.duration_seconds);

    Live

    Try every endpoint

    Real requests against the live API, made by this site on your behalf. No key needed here.

    Send a request to see the response
    { }

    Start building today

    Create an account, get a key and make your first request.