Wysyłanie zapytania
Wyślij zapytanie metodą POST jako data na adres https://geo.runningcat.dev/v1/overpass/interpreter, razem z kluczem.
Python
import requests
query = """
[out:json][timeout:25];
node["amenity"="drinking_water"](around:2000,46.204,6.143);
out center;
"""
answer = requests.post(
"https://geo.runningcat.dev/v1/overpass/interpreter",
data={"data": query},
headers={"Authorization": "Bearer YOUR_KEY"},
timeout=60,
)
answer.raise_for_status()
for element in answer.json()["elements"]:
print(element["id"], element.get("tags", {}).get("name"))
JavaScript
const query = `[out:json];
node["amenity"="cafe"](50.05,19.92,50.07,19.96);
out;`
const answer = await fetch('https://geo.runningcat.dev/v1/overpass/interpreter', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_KEY' },
body: new URLSearchParams({ data: query }),
})
const { elements } = await answer.json()
Klient, który nie może wysyłać nagłówków, może podać klucz w adresie: /v1/overpass/interpreter?key=YOUR_KEY.
Wokół punktu
Woda pitna w promieniu 2 km od dworca w Genewie: 185 fontann w niecałe 2 sekundy. Z nwr zamiast node polecenie out center zwraca jeden punkt także dla fontann zmapowanych jako obszary.
[out:json][timeout:25];
node["amenity"="drinking_water"](around:2000,46.204,6.143);
out center;
W prostokącie
Kawiarnie w centrum Krakowa. Prostokąt podaje się jako południe, zachód, północ, wschód, tak jak w Overpass. 234 kawiarnie w niecałe pół sekundy.
[out:json];
node["amenity"="cafe"](50.05,19.92,50.07,19.96);
out;
Ustawienie [bbox] stosuje jeden prostokąt do wszystkich zapytań w skrypcie; tu zlicza stoły piknikowe zamiast je wypisywać.
[out:json][bbox:50.0,19.8,50.1,20.1];
node["leisure"="picnic_table"];
out count;
W obrębie miasta lub parku
area[...] znajduje granicę administracyjną lub obszar chroniony po tagach, a (area.name) zostawia to, co leży w jego środku. Piekarnie w granicach Krakowa: 408 sklepów w około 3 sekundy.
[out:json][timeout:60];
area["name"="Kraków"]["admin_level"="8"]->.city;
nwr["shop"="bakery"](area.city);
out center;
Dodanie admin_level lub boundary=protected_area do filtra obszaru przyspiesza wyszukiwanie. Działają też identyfikatory obszarów: 3600000000 plus id relacji albo 2400000000 plus id drogi.
Żeby zapytać odwrotnie, które granice obejmują dany punkt:
[out:json];
is_in(46.204,6.143);
out tags;
Wzdłuż linii
around z kilkoma parami współrzędnych mierzy odległość od linii przez nie poprowadzonej. Toalety i woda pitna w promieniu 300 m od trasy z Genewy do Chamonix, w jednej sumie:
[out:json];
(
node["amenity"="toilets"](around:300,46.204,6.143,46.07,6.40,45.924,6.869);
node["amenity"="drinking_water"](around:300,46.204,6.143,46.07,6.40,45.924,6.869);
);
out;
Dla długiej, zarejestrowanej trasy endpoint POI wzdłuż trasy przyjmuje linię GeoJSON i zwraca każdy przystanek z jego kilometrem.
Relacje tras z geometrią
Szlaki piesze w dolinie Chamonix, pierwsze trzy z geometrią. Każdy element to droga niosąca własną geometrię, więc można narysować trasę bez pobierania węzłów.
[out:json];
rel["route"="hiking"](45.85,6.8,46.0,6.95);
out geom 3;
Wyrażenia regularne
Nazwy zaczynające się od „saint” w dowolnej wielkości liter, z ,i:
[out:json];
nwr["name"~"^saint",i]["amenity"="place_of_worship"](45.85,6.8,46.0,6.95);
out center;
Nazwane zbiory
Zapytanie może zapisać wynik jako ->.name, a następne zapytanie może ten zbiór filtrować. Sam zbiór wewnątrz sumy, na przykład (.a; .b;);, nie jest obsługiwany; umieść w sumie oba zapytania.
[out:json];
node["amenity"="bicycle_parking"](46.19,6.12,46.22,6.16)->.parking;
node.parking["covered"="yes"];
out;
Miejsca otwarte o danej porze
Dodaj do adresu open_at jako lokalną datę i godzinę, YYYY-MM-DDTHH:MM, w strefie czasowej każdego miejsca, a odpowiedź zachowa tylko miejsca, których tag opening_hours mówi, że są wtedy otwarte. To nie jest część Overpass. Piekarnie w Wiedniu otwarte o 06:59 we wtorek, czyli sposób na te, które otwierają się przed 7:
POST /v1/overpass/interpreter?open_at=2026-11-10T06:59
[out:json][timeout:60];
area["name"="Wien"]["admin_level"="4"]->.city;
nwr["shop"="bakery"](area.city);
out center;
Miejsca bez tagu opening_hours lub z takim, którego nie da się odczytać, są pomijane. Obiekt open_at w odpowiedzi zlicza miejsca otwarte, zamknięte i nieznane, więc widać, ile z nich nie miało godzin. Reguły dla świąt państwowych i szkolnych (PH, SH) są odczytywane bez uwzględniania świąt.
Gdy zapytanie zostaje odrzucone
Zapytanie, na które endpoint nie potrafi odpowiedzieć, dostaje status 400 i remark z podaną przyczyną, na przykład static error: line 3: recursion ">" is not supported: ways come without their nodes; use out geom or out center. Zapytanie trwające dłużej niż 30 sekund lub zwracające więcej elementów, niż pozwala plan (10 000 w Free, 25 000 w Developer, 50 000 w Pro), dostaje status 200 bez elementów i uwagę runtime error:, tak jak wysyła Overpass. Poradnik o błędach Overpass opisuje 429 i 504.