GTFS und GTFS-RT

Zum Inhalt springen

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

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:

  1. Feed initial abrufen und aus der HTTP Antwort den ETag Header extrahieren
  2. Beim nächsten Abruf des Feeds den ETag aus dem letzten Abruf via If-None-Match Header übergeben
  3. Wenn der sich der Feed nicht geändert hat, wird eine leere Antwort zurückgegeben
  4. Hat sich der Feed geändert, wird der neue Feed und ein aktualisierter ETag zurückgegeben
  5. 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

Links