Artikel: GTFS und GTFS-RT
GTFS und GTFS-RT Datenströme pro Geschäftsfeld und Regionalbereich
Informationsumfang
Die GTFS und GTFS-RT Datenströme beinhalten planerische Informationen und Echtzeit Informationen zu Fahrten der DB Fernverkehr AG und DB Regio AG. Übergreifende stabile Fahrt-IDs ermöglichen eine einfache Verknüpfung der beiden Datenströme.
GTFS (Plan)
- Fahrtnummern, Linien, Verwaltungen / Betreiber
- Haltestellen, Ankunfts- & Abfahrtszeiten
- Richtungstexte, Fahrradmitnahme, Rollstuhlmitnahme
- Bahnhöfe, Haltestellen und Gleise
- Umsteigezeiten und Informationen zur barrierefreiem Einstieg
Die Reichweite der statischen GTFS Datenströme liegt bei mindestens 30 Tagen, je nach Aktualisierungsfrequenz.
GTFS-RT (Echtzeit)
- Echtzeit-Informationen wie Verspätungen, Haltausfälle, Zusatzfahrten und Gleiswechsel
- Störungsinformationen
Die Reichweite der dynamischen GTFS-RT Datenströme beträgt 24 Stunden.
Zugangsberechtigung
Der Abruf der nachfolgenden Mandanten ist nur mit Zugangsdaten möglich (siehe Technische Anbindung).
Mandanten
Mandant | GTFS | GTFS-RT |
---|---|---|
DB Fernverkehr | ||
DB Regio Baden-Württemberg | ||
DB Regio Bayern | ||
DB Regio Mitte | ||
DB Regio Netze | ||
DB Regio Nord | ||
DB Regio Nordost | ||
DB Regio Nordrhein-Westfalen | ||
DB Regio Start | ||
DB Regio Südost | ||
DB Regio S-Bahn Berlin | ||
DB Regio S-Bahn Hamburg | ||
DB Regio S-Bahn München | ||
DB Regio S-Bahn Rhein-Main | ||
DB Regio S-Bahn Stuttgart |
Technische Anbindung
Die Datenströme können in einer beliebigen Programmiersprache via HTTP heruntergeladen werden. Der GTFS Datenstrom wird als ZIP-Archiv und der GTFS-RT Datenstrom als serialisierter Protocol Buffer bereitgestellt. Die Authentifizierung erfolgt hierbei mit dem DB-Api-Key Header.
Am Beispiel curl:
curl -H 'DB-Api-Key: <SECRET>' \
https://gtfs-datenstroeme.tech.deutschebahn.com/db-fernverkehr/gtfsrt_trip_updates.proto
Kontinuierlicher Datenabruf
Um bei einem regelmäßigem Abruf ("Polling") das herunterlanden von nicht veränderten Daten zu unterbinden, wird der ETag Standard verwendet:
- Feed initial abrufen und aus der HTTP Antwort den ETag Header extrahieren
- Beim nächsten Abruf des Feeds den ETag aus dem letzten Abruf via If-None-Match Header übergeben
- Wenn der sich der Feed nicht geändert hat, wird eine leere Antwort zurückgegeben
- Hat sich der Feed geändert, wird der neue Feed und ein aktualisierter ETag zurückgegeben
- Den alten ETag mit dem neuen Wert aktualisieren und zurück zu Punkt 2
Beispielaufruf mit curl:
curl -H 'DB-Api-Key: <SECRET>' \
https://gtfs-datenstroeme.tech.deutschebahn.com/db-fernverkehr/gtfsrt_trip_updates.proto
ETag: "afdc161c07970c6883a3655a68417ccc" wird in Antwort geliefert
curl -H 'DB-Api-Key: <SECRET>' -H 'If-None-Match: afdc161c07970c6883a3655a68417ccc' \
https://gtfs-datenstroeme.tech.deutschebahn.com/db-fernverkehr/gtfsrt_trip_updates.proto
Wir empfehlen folgende Abfrageintervalle:
- GTFS Feed alle 5m mit ETag
- GTFS-RT Feed alle 20s mit ETag
Kontakt
Bei Fragen oder Feedback zu den GTFS Datenströmen: ris-gtfs@deutschebahn.com