Dokumentation
overpass.ch betreibt die normale Overpass API. Alles, was Sie über Overpass QL wissen, funktioniert unverändert. Nur die URL ist anders, und sie enthält Ihren API-Schlüssel.
Schnellstart
- Erstellen Sie ein kostenloses Konto, und bestätigen Sie Ihre E-Mail-Adresse.
- Erstellen Sie auf der Seite API-Schlüssel einen Schlüssel.
- Senden Sie eine Abfrage:
curl https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter \ --data-urlencode 'data=[out:json][timeout:25];node["amenity"="drinking_water"](47.36,8.53,47.38,8.55);out;'
Die Antwort ist ein normales Overpass-Ergebnis. Ihr Feld osm3s.timestamp_osm_base zeigt, wie aktuell die Daten sind.
Neu bei Overpass QL? Die Beispiele erklären 93 häufige Abfragen Zeile für Zeile, mit Live-Ergebnissen.
Endpunkte
Ihre persönliche Basis-URL ist https://api.overpass.ch/v1/<API_SCHLÜSSEL>/.
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET, POST | /v1/<KEY>/interpreter | Eine Abfrage ausführen. GET mit ?data=; POST mit einem formularkodierten Feld data= oder der Abfrage selbst als Body. Overpass QL und XML werden beide angenommen. |
| GET | /v1/<KEY>/status | Ihre freien Abfrage-Slots, im selben Textformat wie /api/status auf overpass-api.de, das OSMnx, OSMPythonTools und andere Programme vor einer Abfrage lesen. Mit ?format=json: Ihr Tarif, die Limits, der Verbrauch in diesem Monat, laufende Abfragen und der Datenstand. |
| GET | /v1/<KEY>/timestamp | Der Zeitstempel der aktuellen Daten (wie /api/timestamp). |
| GET, POST | /v1/<KEY>/elevation | Höhe oder Tiefe von Orten oder von Punkten entlang eines Pfads. Siehe Höhen-API. |
| GET, POST | /v1/<KEY>/elevation/profile | Höhenprofil einer Route oder eines GPX-Tracks, mit Distanz, Aufstieg und Abstieg. |
| GET | /v1/<KEY>/maps/… | Kartenkacheln, Stile und Gelände. Siehe Kartenkacheln. |
| GET | /healthz | Zustand des Dienstes, ohne Authentifizierung: HTTP 200, wenn der Dienst läuft und die Daten aktuell sind. |
Auf overpass.ch zeigt /status die Slots Ihres Schlüssels: einen für jede Abfrage, die Ihr Tarif gleichzeitig ausführen darf. Wenn Sie die Anfragen pro Minute aufgebraucht haben, zeigt es, wann die nächste Anfrage erlaubt ist. Das Lesen von /status zählt nicht zu den Anfragen pro Minute. Den Endpunkt /api/kill_my_queries des Originals gibt es nicht, weil er andere Kunden betreffen würde.
Authentifizierung
Setzen Sie den Schlüssel wie oben in den Pfad. Das ist die einzige Möglichkeit für Programme, in denen Sie eine Server-URL einstellen können, aber keine Header. Sie können ihn auch in einem Header senden:
curl https://api.overpass.ch/v1/interpreter -H "X-API-Key: IHR_API_SCHLÜSSEL" \ --data-urlencode 'data=node(3470507586);out;'
Behandeln Sie Schlüssel wie Passwörter. Beschränken Sie Schlüssel, die in einem Browser verwendet werden, unter API-Schlüssel → Erlaubte Referer auf Ihre Websites. Anfragen von anderen Websites erhalten dann HTTP 403. Widerrufene Schlüssel funktionieren sofort nicht mehr.
Limits und Tarife
Die Limits gelten pro Konto und für alle seine Schlüssel zusammen.
| Tarif | Anfragen / Monat | Anfragen / Min. | Parallel | Max. Timeout | Max. maxsize | Höhenabfragen / Monat | Kartenkacheln / Monat |
|---|---|---|---|---|---|---|---|
| Free | 10'000 | 30 | 1 | 60 s | 256 MiB | 1 Million | 100'000 |
| Small | 100'000 | unbegrenzt | 2 | 180 s | 512 MiB | 125 Millionen | 100'000 |
| Medium | 1'000'000 | unbegrenzt | 4 | 300 s | 1 GiB | 500 Millionen | 100'000 |
| Large | 3'000'000 | unbegrenzt | 8 | 600 s | 2 GiB | 1,5 Milliarden | 100'000 |
| Elevation (nur Höhen-API) | – | – | – | – | – | 50 Millionen | 100'000 |
| Maps Free (zu jedem Tarif dazu) | – | – | – | – | – | 1 Million | 100'000 |
| Maps Small (zu jedem Tarif dazu) | – | – | – | – | – | 50 Millionen | 2 Millionen |
| Maps Medium (zu jedem Tarif dazu) | – | – | – | – | – | 200 Millionen | 10 Millionen |
| Maps Large (zu jedem Tarif dazu) | – | – | – | – | – | 500 Millionen | 40 Millionen |
- Anfragen pro Monat zählen erfolgreiche Aufrufe des Interpreters (HTTP 2xx), auch Antworten aus dem Cache. Der Zähler beginnt am 1. jedes Monats (UTC) wieder bei null.
- Jedes Konto hat zusätzlich einen Maps-Tarif, Maps Free, solange Sie keinen anderen abonnieren. Seine Kartenkacheln und Höhenabfragen zählen, wenn sie mehr sind als die Ihres Overpass- oder Elevation-Tarifs; es gilt das grössere der beiden Kontingente.
- Anfragen pro Minute: im kostenlosen Tarif ein Token-Bucket: Sie können die Anfragen einer ganzen Minute auf einmal senden, danach füllt er sich laufend wieder auf. Bezahlte Tarife haben kein Limit pro Minute; dort gilt das Limit für parallele Abfragen.
- Parallel ist die Anzahl Abfragen, die gleichzeitig laufen dürfen.
- Vorrang: Wenn der Server ausgelastet ist, kommen bezahlte Tarife zuerst an die Reihe. Kostenlose Konten können höchstens die Hälfte der Abfrage-Slots des Servers belegen und warten höchstens 3 Sekunden auf einen; sonst erhalten sie HTTP 503
server_busyund sollten es etwas später noch einmal versuchen.
Jede Antwort enthält X-RateLimit-Limit und X-RateLimit-Remaining. Ist ein Limit erreicht, erhalten Sie HTTP 429 mit einem Header Retry-After.
Timeout und maxsize
Mit [timeout:…] und [maxsize:…] (in XML mit den Attributen timeout und element-limit von <osm-script>) verlangt eine Overpass-Abfrage eine Laufzeit und ein Speicherbudget. Wir wenden Ihren Tarif so an:
- Werte über dem Maximum des Tarifs werden auf dieses gesenkt. Die Abfrage läuft trotzdem.
- Ohne Angabe verwenden wir den Standard-Timeout Ihres Tarifs und eine maxsize von 512 MiB (oder das Maximum des Tarifs, wenn es tiefer ist).
- Andere Einstellungen wie
[out:…],[bbox:…],[date:…]und[diff:…]gehen unverändert durch.
Die angewendeten Werte stehen in den Antwort-Headern X-Effective-Timeout (Sekunden) und X-Effective-Maxsize (Bytes). Der Einstellungsblock muss die erste Anweisung der Abfrage sein. Ein zweiter Einstellungsblock wird mit HTTP 400 abgelehnt.
Fehler
Fehler von Overpass selbst (Syntaxfehler, Timeouts, Meldungen «runtime error») geben wir unverändert weiter; ihre Ursachen und Lösungen stehen in Fehler der Overpass API erklärt. Fehler von overpass.ch kommen als JSON: {"error": "rate_limited", "message": "…"}.
| Status | error | Bedeutung |
|---|---|---|
| 400 | bad_query | Der Einstellungsblock konnte nicht gelesen werden. Die Meldung sagt, warum. |
| 400 | (Overpass) | Syntaxfehler in der Abfrage, mit der HTML-Fehlerseite von Overpass. |
| 400 | bad_request, too_many_locations | Höhen-API: fehlerhafte Orte oder Pfade, oder mehr Orte, als Ihr Tarif pro Anfrage erlaubt. |
| 401 | unauthorized | Fehlender, unbekannter oder widerrufener API-Schlüssel. |
| 403 | forbidden_referer | Der Schlüssel ist auf andere Websites beschränkt. |
| 403 | plan_without_overpass | Der Tarif Elevation umfasst nur die Höhen-API. |
| 413 | payload_too_large | Die Abfrage ist grösser als 1 MiB. |
| 429 | rate_limited | Zu viele Anfragen pro Minute (kostenloser Tarif). Warten Sie Retry-After Sekunden. |
| 429 | concurrency_limit | Zu viele parallele Abfragen für Ihren Tarif. |
| 429 | quota_exceeded | Das Monatskontingent ist aufgebraucht. Wechseln Sie den Tarif, oder warten Sie bis zum 1. |
| 503 | server_busy | Der Server ist ausgelastet (im kostenlosen Tarif früher, weil bezahlte Tarife Vorrang haben). Versuchen Sie es nach den Retry-After Sekunden noch einmal. |
| 504 | (beide) | Die Abfrage wurde nicht rechtzeitig fertig. Grenzen Sie sie ein, oder erhöhen Sie [timeout:] im Rahmen Ihres Tarifs. |
Cache
Gleiche Abfragen innerhalb von 60 Sekunden werden aus einem Cache beantwortet (X-Cache: HIT). Nur erfolgreiche Antworten bis 5 MiB kommen in den Cache. Für ein frisches Ergebnis senden Sie Cache-Control: no-cache.
Programme
Alles, was mit Overpass spricht, funktioniert. Verwenden Sie https://api.overpass.ch/v1/<KEY>/ für Programme, die interpreter selbst anhängen, und https://api.overpass.ch/v1/<KEY>/interpreter, wo ein vollständiger Endpunkt erwartet wird.
Overpass Turbo
Öffnen Sie overpass-turbo.eu → Einstellungen → Allgemeine Einstellungen → Server (englisch: Settings → General → Server), und geben Sie ein:
https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/
Lassen Sie den Schrägstrich am Ende stehen. Wenn Sie den Schlüssel auf Referer beschränken, ergänzen Sie overpass-turbo.eu. Mehr in der Anleitung zu Overpass Turbo.
JOSM
Bearbeiten → Einstellungen → Download (englisch: Edit → Preferences → Download; falls nötig den Expertenmodus einschalten) → Overpass server URL:
https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/
JOSM sendet keinen Referer. Verwenden Sie einen Schlüssel ohne Beschränkung auf Referer.
QGIS (QuickOSM)
QuickOSM → Parameters → Add a custom Overpass server: Fügen Sie https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/ hinzu (mit dem Schrägstrich am Ende; QuickOSM hängt interpreter an), und wählen Sie den Server aus. Ältere Versionen lesen ihn aus custom_config.json: siehe die Anleitung zu QuickOSM.
Python, R, JavaScript
Anleitungen Schritt für Schritt: Python (requests, overpy, overpass), OSMnx, osmdata für R.
import requests
URL = "https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter"
query = """
[out:json][timeout:60];
area["name"="Zürich"]["admin_level"="8"]->.a;
nwr(area.a)["shop"="bakery"];
out center;
"""
r = requests.post(URL, data={"data": query}, timeout=120)
r.raise_for_status()
for el in r.json()["elements"]:
print(el.get("tags", {}).get("name"))
import osmnx as ox
ox.settings.overpass_url = "https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL"
G = ox.graph_from_place("Bern, Switzerland", network_type="drive")
const res = await fetch("https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter", {
method: "POST",
body: new URLSearchParams({ data: '[out:json];node["amenity"="cafe"](47.36,8.53,47.38,8.55);out;' }),
});
if (!res.ok) throw new Error(await res.text());
const { elements } = await res.json();
library(osmdata)
set_overpass_url("https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter")
q <- opq("Lausanne") |> add_osm_feature("amenity", "fountain")
fountains <- osmdata_sf(q)
Höhen-API
Höhe über Meer an Land und Tiefe im Meer, für jeden Punkt der Erde, mit demselben API-Schlüssel. Jeder Tarif enthält sie, und der Tarif Elevation bietet sie allein an. Die Antworten folgen dem Format der Google Elevation API und von Open Topo Data, Programme für diese funktionieren also, sobald Sie die URL ändern.
curl 'https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/elevation?locations=46.0207,7.7491|35.95,-5.6'
{
"status": "OK",
"results": [
{ "elevation": 1606.3, "location": { "lat": 46.0207, "lng": 7.7491 },
"surface": "land", "dataset": "copernicus-glo90", "resolution": 90 },
{ "elevation": -678.3, "location": { "lat": 35.95, "lng": -5.6 },
"surface": "sea", "dataset": "gebco-2026", "resolution": 460 }
],
"lookups": 2
}
- locations:
lat,lon|lat,lon|…oder eine kodierte Polylinie von Google alsenc:…. Für viele Orte senden Sie besser JSON per POST:{"locations": [[lat, lon], …]}(Objekte mitlatundlonoderlnggehen auch). Bis 10'000 Orte pro Anfrage in den bezahlten Tarifen, 1'000 in Free. - path mit samples: gleichmässig entlang einer Linie verteilte Punkte, wie bei der Google API. Jedes Ergebnis hat dann auch seine
distancevom Start in Metern. - elevation ist in Metern, auf 0,1 m gerundet; im Meer negativ. Sie ist
null, wo es keine Daten gibt. surface istlandodersea; Seen und Flüsse zählen als Land und liefern die Höhe ihres Wasserspiegels. - Verbrauch: eine Höhenabfrage pro Ort oder Messpunkt, nur bei erfolgreichen Anfragen, vom Monatskontingent Ihres Tarifs (getrennt von den Overpass-Anfragen). Die Header
X-LookupsundX-Lookups-Remainingzeigen die Anzahl dieser Anfrage und den Rest in diesem Monat.
Höhen in Overpass-Ergebnissen
Hängen Sie elevation=1 an die URL einer Overpass-Abfrage, und jeder Node, jeder Mittelpunkt und jeder Geometriepunkt eines JSON-Ergebnisses erhält direkt nach seinem lon ein Feld elevation:
curl 'https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter?elevation=1' \ --data-urlencode 'data=[out:json];nwr["tourism"="alpine_hut"](46.0,7.6,46.2,7.9);out center;'
Das braucht eine Höhenabfrage pro Punkt, zusätzlich zur Overpass-Anfrage. Der Header X-Elevation sagt added, oder warum das Ergebnis unverändert zurückkam: eine andere Ausgabe als JSON, mehr als 200'000 Punkte, eine Antwort grösser als 32 MiB, oder nicht mehr genug Höhenabfragen in diesem Monat.
Routenprofile
/elevation/profile nimmt einen Pfad (wie oben, oder als GPX-Datei im POST-Body) und setzt alle 90 m einen Messpunkt, im Abstand der Daten. Mit interval (Meter, mindestens 10) oder samples ändern Sie das. Lange Routen erhalten weniger Messpunkte, damit sie in eine Anfrage passen. Neben den Punkten enthält die Antwort eine Zusammenfassung:
"profile": { "distance_m": 5087, "ascent_m": 508.4, "descent_m": 338.4,
"min_m": 2417.2, "max_m": 2913.1, "samples": 58, "interval_m": 89.2 }
curl https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/elevation/profile --data-binary @track.gpx
import requests
URL = "https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/elevation"
points = [[46.0207, 7.7491], [45.9763, 7.6586], [46.5300, 8.0000]]
r = requests.post(URL, json={"locations": points}, timeout=30)
r.raise_for_status()
for res in r.json()["results"]:
print(res["location"], res["elevation"], res["surface"])
const res = await fetch("https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/elevation/profile", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ path: [[46.53, 10.45], [46.54, 10.43], [46.52, 10.46]] }),
});
const { profile, results } = await res.json();
console.log(`${profile.distance_m} m, +${profile.ascent_m} m / -${profile.descent_m} m`);
Aufstieg und Abstieg übergehen Änderungen unter 2 m, um das Rauschen in den Daten herauszufiltern. Wie Sie Höhen in eine GPX-Datei schreiben, steht in Höhen zu einer GPX-Datei hinzufügen; Profile von Routen aus OpenStreetMap zeigen die Beispiele mit Höhen.
Höhendaten und Genauigkeit
- Land: Copernicus DEM GLO-90, ein weltweites 90-m-Raster aus der Radarmission TanDEM-X. Die Höhen beziehen sich auf das Geoid EGM2008, das nahe am mittleren Meeresspiegel liegt.
- Es ist ein Oberflächenmodell: Wälder und grosse Gebäude gehören zur Höhe. Die Werte werden zwischen Rasterpunkten im Abstand von 90 m interpoliert, spitze Gipfel erscheinen deshalb tiefer und enge Täler höher als das wirkliche Gelände. Bei nadelförmigen Gipfeln beträgt der Unterschied einige hundert Meter: das Matterhorn mit 4'210 m statt 4'478 m, der Everest mit 8'696 m statt 8'849 m. In Dörfern, Tälern und hügeligem Gelände liegen die Werte meist wenige Meter daneben (Zermatt: 1'606 m).
- Meer: das Raster von GEBCO (etwa 460 m), überall wo Copernicus Meer anzeigt. Tiefen fern von vermessenen Gebieten sind Schätzungen. Nicht für die Navigation.
- Geeignet für Höhenstufen, regionale Analysen, lange Routen, Karten und das Ergänzen von Orten. Nicht für Ingenieurwesen, Luftfahrt, Drohnen oder Navigation.
Kartenkacheln
Vektorkacheln der ganzen Welt, fertige Stile für MapLibre und Geländekacheln, mit demselben Schlüssel. Jeder Tarif enthält 100'000 Kartenkacheln im Monat, und die Maps-Tarife haben mehr, mit einem eigenen Abo. Für eine Webseite erstellen Sie einen Schlüssel vom Typ «Nur Karten» und setzen seine erlaubten Referer: Ein solcher Schlüssel funktioniert für die Endpunkte unten und für nichts anderes.
| Pfad | Antwort | Zählt als |
|---|---|---|
/v1/<KEY>/maps/styles/<style>.json | MapLibre-Stil; <style> ist outdoor, marine, relief, driving, light, dark, white, grayscale oder black. Parameter: lang (Sprache der Beschriftung, Standard en), hillshade=1 (Schummerung), terrain=1 (Schummerung und 3D-Gelände). | kostenlos |
/v1/<KEY>/maps/vector.json | TileJSON der Vektorkacheln: URL-Vorlage, Zoombereich, Layer mit ihren Feldern und das Datum der Daten. | kostenlos |
/v1/<KEY>/maps/vector/{z}/{x}/{y}.mvt | Vektorkachel (Mapbox Vector Tile, gzip), Zoomstufen 0 bis 14. | 1 Kartenkachel |
/v1/<KEY>/maps/terrain.json | TileJSON der Geländekacheln. | kostenlos |
/v1/<KEY>/maps/terrain/{z}/{x}/{y}.png | Geländekachel, 512 × 512 px, Zoomstufen 0 bis 10. | 1 Kartenkachel |
/v1/<KEY>/maps/contours.json | TileJSON der Höhenlinien. | kostenlos |
/v1/<KEY>/maps/contours/{z}/{x}/{y}.mvt | Höhenlinien als Vektorkachel (Layer contours, Felder ele in Metern und level, 1 auf der Hauptlinie), Zoomstufen 10 bis 14: alle 200 m auf Zoomstufe 10, 100 m auf 11, 50 m auf 12, 20 m ab Zoomstufe 13. | 1 Kartenkachel |
/v1/<KEY>/maps/trails.json | TileJSON der Wanderwege. | kostenlos |
/v1/<KEY>/maps/trails/{z}/{x}/{y}.mvt | Wege und Punkte aus den aktuellen OpenStreetMap-Daten unseres Overpass-Servers, Zoomstufen 11 bis 13 (Karten vergrössern Zoomstufe 13). Layer trails: grade 1 bis 6 aus sac_scale (1 Wandern, 2 Bergwandern, 3 anspruchsvolles Bergwandern, 4 Alpinwandern, 5 anspruchsvolles Alpinwandern, 6 schwieriges Alpinwandern; 0 für Wege ohne Skala, ab Zoomstufe 12), kind, name, ref, visibility. Layer points (Zoomstufe 13): Bus- und Tramhaltestellen, Bahnhöfe, Schiffsanlegestellen, Seilbahnstationen, Trinkwasser und Quellen, mit kind und name. Eine Kachel ist höchstens 7 Tage alt. | 1 Kartenkachel |
/v1/<KEY>/maps/bathymetry.json, …/isobaths.json, …/seamarks.json | TileJSON der Meerestiefen, der Tiefenlinien und der Seezeichen. | kostenlos |
/v1/<KEY>/maps/bathymetry/{z}/{x}/{y}.png | Meerestiefen im Terrain-RGB-Format der Geländekacheln, aus GEBCO im Meer und Copernicus an Land, Zoomstufen 0 bis 9. Zum Einfärben des Meeres nach Tiefe (MapLibre color-relief) und zum Schattieren des Meeresbodens. | 1 Kartenkachel |
/v1/<KEY>/maps/isobaths/{z}/{x}/{y}.mvt | Tiefenlinien als Vektorkachel (Layer contours, ele in Metern unter 0, level 1 bei 100 m und alle 1'000 m), Zoomstufen 5 bis 12: 200 m und alle 1'000 m bis Zoomstufe 7, dann auch 20, 50, 100 und 500 m, und ab Zoomstufe 10 auch 5 und 10 m. | 1 Kartenkachel |
/v1/<KEY>/maps/seamarks/{z}/{x}/{y}.mvt | Seezeichen aus den aktuellen OpenStreetMap-Daten unseres Overpass-Servers (die Tags seamark:*), Zoomstufen 9 bis 13. Layer seamarks: kind (lighthouse, light, lateral, cardinal, danger, safe_water, special, marina, harbour, anchorage, wreck, rock, mooring), colour, category, name und light in der Schreibweise der Seekarten, etwa Fl(2) R 6s. Leuchttürme, Häfen, Marinas und Ankerplätze ab Zoomstufe 9, der Rest ab Zoomstufe 11. Eine Kachel ist höchstens 7 Tage alt. | 1 Kartenkachel |
/maps/assets/fonts/…, /maps/assets/sprites/… | Schriften und Symbole der Stile, ohne Schlüssel. | kostenlos |
new maplibregl.Map({
container: "map",
style: "https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/maps/styles/light.json?lang=de&terrain=1",
center: [7.6586, 45.9763], zoom: 12, pitch: 60
});
- Outdoor färbt Wanderwege nach SAC-Wanderskala ein, wie auf Schweizer Wegweisern: gelb für Wanderwege (T1), rot für Bergwanderwege (T2 und T3), blau für Alpinwanderwege (T4 bis T6); Wege mit Skala erscheinen ab Zoomstufe 11. Der Stil zeigt auch Feldwege, Klettersteige, Hütten, Zeltplätze, Aussichtspunkte, Bahnhöfe und Haltestellen, Trinkwasser, Gipfel mit ihrer Höhe, Fels, Gletscher und Felswände, mit Schummerung und Höhenlinien. Marine färbt das Meer nach Tiefe ein und schattiert den Meeresboden, mit Tiefenlinien, der Küstenlinie, Fährrouten, Leuchttürmen und Leuchtfeuern, Tonnen und Baken in ihren Farben, Häfen, Marinas, Ankerplätzen, Wracks und Felsen; Schutzgebiete sind umrandet, weil viele ins Meer hinausreichen. Seine Tiefen stammen aus einem Raster von etwa 460 m und sind nicht für die Navigation. Driving hat breitere Strassen und zeigt Tankstellen, Ladestationen und Parkplätze. Relief färbt das Land nach Höhe ein, mit Schummerung und Höhenlinien, und braucht wie Marine MapLibre GL JS 5.6 oder neuer. Light, dark, white, grayscale und black sind die Stile von Protomaps; white, grayscale und black haben keine Points of Interest, damit Ihre eigenen Daten hervortreten. Outdoor, Marine und Driving laden einen zweiten Satz Symbole, wie es MapLibre erlaubt.
- Sprachen der Beschriftung für
lang: ar, bg, cs, da, de, el, en, es, et, fa, fi, fr, ga, he, hi, hr, hu, id, it, ja, ko, lt, lv, mr, mt, ne, nl, no, pl, pt, ro, ru, sk, sl, sv, tr, uk, ur, vi, zh-Hans und zh-Hant. Ein Regionscode wiede-CHverwendet seine Sprache. Orte ohne Namen in dieser Sprache zeigen ihren lokalen Namen. - Die Vektorkacheln folgen dem Schema der Protomaps-Basiskarte, Version 4, mit den Layern boundaries, buildings, earth, landuse, places, pois, roads und water. Sie enthalten ausserdem für die Zoomstufen 0 bis 7 einen Layer landcover, den unsere Stile weglassen; wenn Sie ihn zeigen, nennen Sie ESA WorldCover (CC BY 4.0). Die Daten stammen aus OpenStreetMap und Natural Earth und werden jede Woche aktualisiert;
data_dateim TileJSON gibt das Datum an. - Vektorkacheln gibt es bis Zoomstufe 14, und Karten vergrössern Zoomstufe 14 für nähere Ansichten. Auf Strassenebene fehlen dadurch Hausnummern und die meisten Läden und Restaurants. Geländekacheln gibt es bis Zoomstufe 10, passend zu den 90-m-Daten.
- Geländekacheln speichern die Höhe im Format Mapbox Terrain-RGB: Höhe = −10000 + (R × 65536 + G × 256 + B) × 0,1 m. Das Meer liegt auf 0 m, und Seen haben die Höhe ihres Wasserspiegels. MapLibre, Mapbox GL, deck.gl und maplibre-contour lesen dieses Format; in Ihrem eigenen Stil ergänzen Sie
{"type": "raster-dem", "url": "https://api.overpass.ch/v1/KEY/maps/terrain.json"}als Quelle. - Jede Vektor- oder Geländekachel, die mit HTTP 200 beantwortet wird, zählt als eine Kartenkachel vom Monatskontingent Ihres Tarifs, getrennt von den Overpass-Anfragen und den Höhenabfragen. Kacheln kommen mit
Cache-Control(ein Tag für Vektorkacheln, 30 Tage für Gelände) und einemETag, damit Browser sie behalten; eine Prüfung, die mit 304 beantwortet wird, ist kostenlos. Eine Kachel ohne Daten antwortet mit 204 und ist ebenfalls kostenlos. - Die kostenlosen Tarife erlauben bis 1'200 Kacheln pro Minute; bezahlte Tarife haben kein Limit pro Minute. Ist das Monatskontingent aufgebraucht, erhalten Kacheln HTTP 429
quota_exceeded, bis zum nächsten Monat oder einem Tarifwechsel. Wir schicken bei 80% und bei 100% jedes Kontingents eine E-Mail. - Weitere Fehler: 403
forbidden_referer(die Website gehört nicht zu den erlaubten Referern des Schlüssels), 403key_scope(ein Karten-Schlüssel für Overpass oder Höhen verwendet), 403no_map_tiles, 404 über der höchsten Zoomstufe, und 503maps_unavailableoderserver_busymitRetry-After. Die Fehler von Kartenbibliotheken und anderen Kacheldiensten erklärt die Anleitung Fehler von Kartenkachel-APIs.
Code für Leaflet, OpenLayers und QGIS und eine Live-Karte finden Sie auf der Seite Kartenkacheln.
Quellenangabe
Die Daten sind © OpenStreetMap-Mitwirkende und unter der Open Database Licence verfügbar. Wenn Sie Daten, die Sie über overpass.ch erhalten haben, anzeigen oder veröffentlichen, nennen Sie sie als «© OpenStreetMap-Mitwirkende» mit einem Link auf openstreetmap.org/copyright, und halten Sie die Bedingungen zur Weitergabe unter gleichen Bedingungen für abgeleitete Datenbanken ein. Wir entfernen den Copyright-Hinweis nicht aus den Antworten.
Höhendaten: Wenn Sie Ergebnisse der Höhen-API veröffentlichen oder anzeigen, nennen Sie beide Quellen. Verwenden Sie diesen Hinweis (die Lizenz verlangt ihn auf Englisch):
Produced using Copernicus WorldDEM™-90 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved. Sea depths: GEBCO Compilation Group (2026) GEBCO 2026 Grid.
Die Organisationen, die von Gesetzes wegen oder im Auftrag für das Copernicus-Programm zuständig sind, haften nicht für die Nutzung des Copernicus WorldDEM™-90. Weder sie noch GEBCO unterstützen oder empfehlen overpass.ch oder Ihre Nutzung der Daten.
Kartenkacheln: Unsere Stile und TileJSON enthalten die Quellenangaben (overpass.ch, Protomaps, © OpenStreetMap), und MapLibre zeigt sie in einer Ecke der Karte. Lassen Sie sie sichtbar. Karten mit Gelände zeigen eine Kurzform des Copernicus-Hinweises, die auf den vollständigen Hinweis oben verlinkt; das Meer ist in den Geländekacheln flach, GEBCO wird dort also nicht verwendet. Der Stil Marine und die Kacheln mit Meerestiefen nennen GEBCO und sagen, dass die Tiefen nicht für die Navigation sind.
Faire Nutzung
- Verwenden Sie ein Konto pro Person oder Organisation; erstellen Sie keine Konten, um Limits zu umgehen.
- Verkaufen Sie den API-Zugang nicht unverändert weiter, und machen Sie Ihren Schlüssel nicht ohne Beschränkung öffentlich (wenn Sie einen Schlüssel auf einer öffentlichen Webseite verwenden, setzen Sie dafür Erlaubte Referer und kreuzen Sie «Anfragen ohne Referer ablehnen» an; veröffentlichen Sie Schlüssel nirgendwo sonst, etwa in Code-Repositories).
- Verwenden Sie lieber Begrenzungsrahmen und Gebiete als Abfragen über den ganzen Planeten. Für den Export ganzer Länder passen Auszüge des Planeten (etwa von Geofabrik) meist besser.
Die vollständigen Regeln stehen in den Nutzungsbedingungen. Fragen? Schreiben Sie uns.