help.geoloc.imetroll.comIMETROLL Laboratory of Technology · Nominatim 5.1

geoloc.imetroll.com usage documentation

A Nominatim 5.1 gateway for address and POI search. This page covers the public endpoints, the token, rate limits, and a recipe for the nearest object — something the API itself does not rank by distance.

Updated 14 Nov 2026 · software version 5.1.0 · sublicence “IMETROLL Laboratory of Technology”

What geoloc is

Base URL: https://geoloc.imetroll.com. The service exposes a Nominatim 5.1-compatible API: /search, /reverse, /lookup, /details and /status. Results come from OpenStreetMap (ODbL). It is the default gateway for the Delphi TNominatimSearchProvider component and for Parcel reports.

This documentation is static and does not contain a real token. Examples use the placeholder YOUR_TOKEN only.

Endpoints

All methods are GET (or HEAD). Every request — including /status — must include token=YOUR_TOKEN. Without a token the server returns 401 (“Brak tokena – dodaj &token=…”).

Free-text or structured search. Results are ranked by Nominatim importance, not by distance. A large viewbox with a small limit can drop the object that is actually nearest.

ParameterDescription
qFree-text query. Many Polish category names and operators such as [railway=station] work (see special phrases).
street, city, county, state, country, postalcodeStructured search (instead of q).
formatjson (recommended); also jsonv2, geojson, xml.
limitNumber of results. For a “nearest” search use a generous limit (e.g. 20), not 1.
viewboxlon1,lat1,lon2,lat2. Preferred area.
bounded1 = only inside the viewbox.
countrycodese.g. pl.
accept-languagee.g. pl or en.
addressdetails, namedetails, extratagsNominatim 0/1 flags. extratags=1 is accepted but tags are not returned — the import style has no extratags (see below).
layer / featureTypeNominatim 5 layer filters where supported (address, poi, railway, …).
dedupe, exclude_place_ids, polygon_geojsonAs in Nominatim 5.1.
tokenRequired secret. Never paste a real token into documentation, URL logs, or public browser JS.
GET https://geoloc.imetroll.com/search?q=…&format=json&limit=20&namedetails=0&accept-language=pl&viewbox=W,N,E,S&bounded=1&countrycodes=pl&token=YOUR_TOKEN

GET /reverse

Address for a point: lat, lon. Optional zoom, format, addressdetails, accept-language, token.

GET https://geoloc.imetroll.com/reverse?lat=52.46412&lon=20.88074&format=json&zoom=18&accept-language=en&token=YOUR_TOKEN

GET /lookup

Objects by OSM ids: osm_ids=W123,R456,N789 (W/R/N prefix), plus format, addressdetails, token.

GET /details

Details for one place: place_id=… or osmtype=W&osmid=…, plus Nominatim 5.1 detail options.

GET /status

Liveness probe. Also requires a token (otherwise HTTP 401). With a valid token it returns, among other fields, software_version (5.1.0) and the sublicence “IMETROLL Laboratory of Technology”. Cache the probe on the client (in the Delphi component: StatusCacheSeconds).

Token and limits

The token is a secret. It is issued separately. It is not published here and must not appear in DFM files, URL logs, error messages, or public HTML/JS. Mask it in logs (token=***), as the Delphi RedactedURL method does. If the token is bound to a Referer/Origin, use the values given when the key was issued.

No “nearest” — recipe for the closest POI

There is no dedicated “give me the nearest X” endpoint. /search ranks by importance. To get the nearest POI (school, railway station, shop…):

  1. Build a viewbox around the point and set bounded=1.
  2. Search outward in tiers: 2 km → 5 km → 10 km → 25 km → 50 km. Do not stop at the first tier if the category still has no hit.
  3. For each candidate, compute a haversine (or equivalent) distance from the point and take the minimum. Do not trust API array order.
  4. Use a generous limit (around 20). A tiny limit plus a large viewbox drops nearby, less “important” objects.
  5. Reject hits beyond the current tier radius (with a small slack, e.g. 80 m) — otherwise a far hit blocks a better source on a wider tier.
  6. For Polish State Railways (PKP), always query station and halt: [railway=station] and [railway=halt] (or stacja kolejowa and przystanek kolejowy). “stacja kolejowa” alone does not return halts (e.g. Chotomów).
  7. The phrase stacja kolejowa near Skrzeszew with bounded=1 can return 0 hits — “near” + bounded is not a substitute for tiers + haversine.

Parcel reports implement this recipe in the family-POI module (every POI within 10 km; if none, the single nearest beyond 10 km, up to 50 km).

Special phrases and categories

On geoloc.imetroll.com, special phrases are imported: Polish category names and bracket operators work. On the local Nominatim at 127.0.0.1:8110 (Poland extract) special phrases are not imported — rely on tags / Overpass there.

Category (EN)Category (PL)OSM tags / class+typeExample q= (special phrases)
nurseryżłobekamenity=childcareżłobek, nursery
kindergartenprzedszkoleamenity=kindergartenprzedszkole, kindergarten
primary schoolszkoła podstawowaamenity=school + isced:level=1 / nazwaszkoła podstawowa, szkoła
secondary schoolliceum/technikumamenity=school + liceum/technikum / isced 2–3liceum, technikum, szkoła średnia
grocerysklep spożywczyshop=convenience|greengrocer|butcher|deli|general|grocery|kiosksklep spożywczy, sklep
supermarketmarketshop=supermarket|hypermarket|wholesalesupermarket, Biedronka, Lidl, market
bakerypiekarniashop=bakerypiekarnia, bakery
pharmacyaptekaamenity=pharmacyapteka, pharmacy
post officepocztaamenity=post_officepoczta, urząd pocztowy
parcel lockerPaczkomat/InPostamenity=parcel_locker, brand=InPostInPost, Paczkomat
fuel stationstacja paliwamenity=fuelOrlen, stacja paliw, Circle K, Shell, BP
primary clinicprzychodnia POZamenity=clinic / healthcare=clinicprzychodnia, ośrodek zdrowia, POZ
doctorlekarzamenity=doctors / healthcare=doctorlekarz, gabinet lekarski
dentistdentystaamenity=dentistdentysta, stomatolog
hospital / ERszpital/SORamenity=hospitalszpital, SOR, hospital
pitch / Orlikboisko/Orlikleisure=pitchOrlik, boisko
swimming poolpływalnialeisure=swimming_pool (pomiń access=private)pływalnia, basen
sports hallhala sportowaleisure=sports_hall|sports_centrehala sportowa
gymsiłownialeisure=fitness_centre / amenity=gymsiłownia, fitness, gym
playgroundplac zabawleisure=playgroundplac zabaw, playground
parkparkleisure=park|gardenpark, skwer
librarybibliotekaamenity=librarybiblioteka, library
community centredom kulturyamenity=community_centre|arts_centredom kultury, GOK
cinemakinoamenity=cinemakino, cinema
churchkościółamenity=place_of_worshipkościół, parafia, church
bus stopprzystanekhighway=bus_stop / amenity=bus_stationprzystanek autobusowy, bus stop
railway station / haltstacja kolejowa / przystanek PKPrailway=station oraz railway=haltstacja kolejowa, przystanek kolejowy, [railway=station], [railway=halt]
fire stationOSPamenity=fire_stationOSP, straż pożarna, remiza
policepolicjaamenity=police (nie straż miejska)policja, komisariat
ATMbankomatamenity=atmbankomat, ATM

Mapping must use OSM tags, not just the name (e.g. a grocery is a specific shop=*, not every hit for the word “shop”). Railway stations and halts are two classes.

extratags (not enabled)

The geoloc import style does not enable extratags. The extratags=1 parameter does not return an OSM tag dictionary. For tags (isced:level, access, healthcare, brand, wikidata, …) use Overpass. Preferred public instances, in this order: https://overpass.openstreetmap.fr/api/interpreter, then overpass-api.de, overpass.kumi.systems, overpass.private.coffee. An HTTP 200 with a non-date timestamp_osm_base (seen on overpass.osm.ch) must be rejected — that can be an empty or bad database, not a success.

Example queries and results

Test point: a plot at Familijna 16a, Skrzeszew (gmina Wieliszew), centroid about lon=20.88074, lat=52.46412. Measurements from 14 November 2026; the token in URLs is a placeholder. Distances are haversine from the centroid, not “/search order”.

1. Railway halt in a viewbox (finds Chotomów)

GET https://geoloc.imetroll.com/search?q=przystanek+kolejowy&format=json&limit=20&namedetails=0&accept-language=pl&viewbox=20.75,52.56,21.01,52.37&bounded=1&countrycodes=pl&token=YOUR_TOKEN

Result (short): halt Chotomów, about 5.4 km (5,391 m). q=[railway=halt] does the same. q=[railway=station] or q=stacja kolejowa returns stations only, not halts — Chotomów is then missing.

2. “near” + bounded — a trap

GET https://geoloc.imetroll.com/search?q=stacja+kolejowa+near+Skrzeszew&format=json&bounded=1&viewbox=20.75,52.56,21.01,52.37&countrycodes=pl&token=YOUR_TOKEN

Result: 0 hits. That does not mean there is no station nearby. Use the tiered + haversine recipe, and query station and halt separately.

3. Nearest stations and halts (after distance ranking, within 10 km)

  1. Chotomów (halt) — 5.4 km
  2. Legionowo Przystanek (halt) — 6.3 km
  3. Legionowo Piaski (station) — 7.1 km
  4. Michałów-Reginów (halt) — 7.2 km
  5. Wieliszew (station) — 7.5 km
  6. then Legionowo, Wieliszew Centrum, Janówek, Zegrze Południowe, Pomiechówek, among others

A “stacja kolejowa” query alone would omit Chotomów and the other halts.

4. Other typical POIs at the same point

Names and distances come from geoloc + local Nominatim + Overpass combined; geoloc alone does not guarantee that the first array element is the nearest.

geoloc vs local Nominatim :8110

geoloc.imetroll.comLocal Nominatim (127.0.0.1:8110)
SoftwareNominatim 5.1.0 (gateway)Nominatim 5.1 (mediagis container, Poland PBF)
Special phrasesyes (PL names and operators)no
extratagsnot enableddifferent import style — still use Overpass when you need the full tag set
Tokenrequired (YOUR_TOKEN)local service, no public token
Roleshared gateway (Parcel, Delphi components, other apps)complement / fallback on the application server

In practice, good results come from composing: geoloc first (phrases), then local Nominatim, then Overpass by tags, with coordinate deduplication and a nearest-distance pick.

Wikipedia / Wikidata

Wikipedia and Wikidata are not a search source for the nearest POI — they do not replace OSM tags or distance tiers. A name or description supplement only makes sense once the object has already been found and Overpass has a wikidata / wikipedia tag. Do not add a live Wikipedia API to the search path.

Licence and attribution

Map data: © OpenStreetMap contributors, ODbL licence. Applications must show “© OpenStreetMap contributors”. Nominatim is open-source software; the geoloc.imetroll.com gateway is operated by IMETROLL Laboratory of Technology.

The public nominatim.openstreetmap.org instance has its own, stricter rules (including 1 req/s and no autocomplete) — this documentation covers geoloc.imetroll.com only.