GET /api/v1/cities/{slug}/transit
ÖPNV-Haltestellen je Stadt (DELFI und HVV GTFS)
Normalisierte ÖPNV-Haltestellen einer Stadt aus dem bundesweiten DELFI-GTFS-Feed bzw. dem HVV-Feed im kanonischen Envelope. Die Daten werden offline aufbereitet und als Snapshot je Stadt gehalten, sodass der Abruf schnell antwortet, ohne den Feed pro Request zu parsen. Sonderfälle: sind beide Quellen deaktiviert, kommt 200 mit source_status="disabled"; liegt noch kein Snapshot vor, kommt 200 mit source_status="not_ingested" und leeren data, nie ein 5xx. Mit q (Namenssuche) oder near (Umkreissuche) lassen sich gezielt einzelne Haltestellen finden, statt die Vollliste abzurufen.
Parameter
| Name | In | Pflicht | Typ | Beschreibung |
|---|---|---|---|---|
slug | path | ja | string | |
q | query | nein | string | Case-insensitiver Substring-Filter auf den Haltestellennamen (stop_name), z.B. alsterdorf. |
near | query | nein | string | "lat,lon"; liefert nur Haltestellen im Umkreis, aufsteigend nach Distanz sortiert. Ungültige Werte -> 400. |
radius_m | query | nein | integer | Suchradius für near in Metern (Default 1000). |
page | query | nein | integer | Seitennummer der Default-Paginierung ohne q/near (Default 50 Einträge, Cap 200); meta.pagination weist total/returned/limit/offset/truncated aus. |
limit | query | nein | integer | Einträge pro Seite der Default-Paginierung ohne q/near (Default 50, Cap 200). |
Code-Beispiele
curl "https://infranode.dev/api/v1/cities/hamburg/transit"const res = await fetch("https://infranode.dev/api/v1/cities/hamburg/transit");
const data = await res.json();
console.log(data);import httpx
res = httpx.get("https://infranode.dev/api/v1/cities/hamburg/transit")
res.raise_for_status()
print(res.json())