Bahn API Chaos?

Ein Einblick in die Daten von https://bahn.expert

@marudor@chaos.social

Warum weißt du den Kram eigentlich?

  • Fahre viel Bahn
     
  • Entwicklung bahn.expert
     
  • mindestens seit 31 Aug 2015
  • monatlich ~8500 ~140000 ~240000 ~360000 User

Was für Daten aggregierst du?
(damals)

  • Haltestellendaten
  • Abfahrts und Ankunfts Echtzeitdaten
  • Wagenreihung
  • Auslastungsprognose
  • Routen

Was für Daten aggregierst du?

  • Haltestellendaten (2x)
  • Abfahrt und Ankunft je Haltestelle (2x)
  • Echtzeitdaten von Fahrten (2x)
  • Wagenreihung (4x)
  • Planwagenreihung
  • Planzugläufe
  • Auslastungsprognose
  • Routen

Die Bahn hat doch ein neues Open API Portal?

Ja, aber...

Upstream API Request count (Pro Woche)

Haltestellen 457.069
Abfahrt/Ankunft 6.589.835
Fahrten 6.990.051
Wagenreihung 1.192.796
Routing 254.081

Haltestellendaten

  • Haltestellendaten (CSV)
  • Stationsdaten (CSV)
  • StaDa - Stationsdaten
  • OpenDB
  • Hafas (ajax-getstop/mgate)
  • Timetable (noncd/OpenDB)
  • Favendo

Haltestellendaten (damals)

  • Haltestellendaten (CSV)
  • Stationsdaten (CSV)
  • StaDa - Stationsdaten
  • OpenDB
  • Hafas (ajax-getstop/mgate)
  • Timetable (noncd/OpenDB)
  • Favendo
  • RIS::Stations
     
  • HAFAS (DB Navigator)
     
  • Timetables (IRIS-TTS)

Haltestellendaten

  • Kennt ÖPNV & Schiene
     
  • Kennt alles wo Deutschland involviert ist
     
  • Sortiert Ergebnisse passend

RIS::Stations

Bahnhofsgruppierung

München

RIS::Stations

Umstiegsgruppierung

Dortmund Uni

RIS::Stations

HAFAS (mgate)

Nur Fallback falls RIS::Stations down

Timetables

Nur nötig um RIS::Stations auf Ergebnisse zu filtern die diese Quelle kennt

Abfahrtsdaten

Timetables (IRIS-TTS)

  • bekannte gute Daten
  • komisches XML
  • fast nur Heavy Metal
  • Manchmal down :(
  • Gibt einen Fallback
  • Leider auch manchmal down
  • iris.noncd.db.de/iris-tts/timetable/station/Karlsruhe
     
  • iris.noncd-test.db.de/iris-tts/timetable/station/Karlsruhe

HAFAS (Regionale Abfahrten, ÖPNV)

  • Gleiche Daten wie DB Navigator.
  • Etwas ungenau
  • "Unwichtiges" wird nicht angezeigt
  • Kann Verkehrsmittel filtern

Gibts auch als OpenDB Variante (Fahrplan)

RIS::Boards

  • Datenqualität wie RIS-Info
     
  • kein XML!
     
  • Kann alle Verkehrsarten
     
  • Kennt Ist-Zeiten

RIS::Boards

Timetables vs RIS::Boards

Timetables vs RIS::Boards

Journeydaten

RIS::Journeys

  • Datenqualität wie RIS-Info
     
  • Kennt Ist-Zeiten
     
  • Leider nur ~20h in die Zukunft

RIS::Journeys

HAFAS

RIS::Journeys

RIS::Journeys

HAFAS

RIS::Journeys

RIS::Journeys

RIS::Journeys

Wagenreihung

Wagenreihung (DB Navigator)

www.apps-bahn.de/wr/wagenreihung/1.0/22/202305102145

  • Zugnummer
     
  • Planabfahrtszeit an der gewünschten Haltestelle

Wagenreihung (Nummer 2)

ist-wr.noncd.db.de/wagenreihung/1.0/22/202305102145

  • <Zugnummer>
     
  • Planabfahrtszeit an der gewünschten Haltestelle

Wagenreihung

Gibt es Unterschiede?

  • Im Response - nein
     
  • In der Verfügbarkeit von Zügen - ja
     
  • Zusammen immer noch nicht alles abgedeckt

Wagenreihung (DB Navigator, neu)

www.apps-bahn.de/wgr/wr/81/20230510/ICE/22/8000105/202305102145

  • Administration (Betreiber)
  • Datum der initialen Abfahrt
  • Kategorie
  • Zugnummer
  • Evanummer der Haltestelle
  • Planabfahrtszeit an der gewünschten Haltestelle

www.apps-bahn.de/wgr/wr/80/20230510/ICE/22/8000105/202305102145

Wagenreihung Nummer drei

www.apps-bahn.de/wgr/wr/80/20230512/IC/2205/8007768/202305121351

www.apps-bahn.de/wgr/wr/NZ/20230512/RE/52205/8007768/202305121351

www.apps-bahn.de/wgr/wr/NZ/20230512/RE/52205/8007768/202305121351

Wagenreihung Unterschiede?

Vorher

Nachher

Wagenreihung

All das nur für das was es vorher schon gab?

Wagenreihung

Das waren aber nur 2?

Das ist GraphQL kram und SEHR SBB spezifisch. Die machen was völlig anderes

Wagenreihung

Das waren aber nur 3?

live.oebb.at/backend/info?trainNr=369&station=8503000&date=2023-07-13

Quirks der Wagenreihung

ICEs von / nach Frankreich

Vorher

Nachher

Baureihen spezifika

BR 4110/4010 (IC2 KISS)

Vorher

Nachher

Baureihen spezifika

BR 401 (modernisiert / kurz)

Vorher

Nachher

Planwagenreihung

Planwagenreihung

  • Nur Fernverkehr
     
  • Baureihenerkennung ungenau
     
  • Umläufe
     
  • Sondersitz Nummern
     
  • Linieninfos

Planwagenreihung

Planwagenreihung

BR 408 12.07.2023 (Auszug)

Es wird besser

Fazit

langsam

und nicht open

Fragen?

Bahn API Chaos? - hackover2023

By marudor

Bahn API Chaos? - hackover2023

  • 84