GET /api/v1/live/{city}/transit/departures
Live-ÖPNV-Abfahrten je Halt mit Verspätung (GTFS-RT, Tier B)
Liefert die Live-Abfahrten eines Halts mit aktueller Verspätung aus dem GTFS-RT-Feed (gtfs.de bzw. Mobilithek-DELFI, CC-BY-SA = Tier B) im Live-Envelope (meta mit as_of und refresh_seconds=45, dem Poller-Takt). Der Request-Pfad liest NUR aus Redis: ein Hintergrund-Poller parst den Feed einmal je Takt, sodass nicht bei jedem Request ein 68-MB-Feed geparst wird. RT-only-Semantik: ausgeliefert werden ausschliesslich Trips mit Echtzeit-Update; Fahrplan-Sollzeiten sind NICHT enthalten. Traegt ein Update eine absolute Abfahrtszeit (z.B. Berlin/VBB), wird sie auf Zukunft geprueft (90-s-Grace) und aufsteigend sortiert; Delay-only- Updates ohne absolute Zeit (Regelfall im bundesweiten Feed) kommen MIT delay_s/delay_min und departure_time/minutes_until = null nach den zeitbehafteten Eintraegen. stop_id darf Parent- ODER Steig-Ebene sein (de:AGS:nr bzw. de:AGS:nr:bereich:steig), beide werden aufgeloest. meta weist zusaetzlich raw_updates_total und filtered_out aus (ehrliche Rohzahlen, keine stille Kappung). Toggle aus -> 200 source_status="disabled"; kein Update in Redis oder alles gefiltert -> 200 source_status="no_data"; ungültige stop_id -> 400. Reine Live-Daten, nur im Redis-Cache gehalten (Tier B).
Parameter
| Name | In | Pflicht | Typ | Beispiel | Beschreibung |
|---|---|---|---|---|---|
city | path | ja | string | berlin | |
stop_id | query | ja | string | de:11000:900003101::6 | DELFI-Halt-ID im Muster de:<AGS>:<id> (gegen eine Allowlist geprüft). Gültige IDs je Stadt liefert GET /api/v1/cities/{slug}/transit im Feld stop_id. NICHT die trip_stop_id der Bahnhofstafeln, die bezeichnet einen Halt einer Zugfahrt. |
Code-Beispiele
curl "https://infranode.dev/api/v1/live/berlin/transit/departures?stop_id=de%3A11000%3A900003101%3A%3A6"const res = await fetch("https://infranode.dev/api/v1/live/berlin/transit/departures?stop_id=de%3A11000%3A900003101%3A%3A6");
const data = await res.json();
console.log(data);import httpx
res = httpx.get("https://infranode.dev/api/v1/live/berlin/transit/departures?stop_id=de%3A11000%3A900003101%3A%3A6")
res.raise_for_status()
print(res.json()) Try it
Für diesen Endpunkt steht keine Live-Konsole bereit. Er ist eine Betriebs- oder Demo-Operation (z.B. erzwungener Fehler) und wird hier nur dokumentiert. Nutze die Code-Beispiele oben für einen direkten Aufruf.