Dokumentation

Offene Fahrplandaten

Jede Stadt kann ihren Fahrplan als GTFS(-Flex) freigeben. Der Feed ist ohne Anmeldung abrufbar — er erfüllt eine Veröffentlichungspflicht und ist deshalb kein kostenpflichtiges Extra.

Adresse

Ein Pfad pro Stadt, ohne Schlüssel.
Feed-Adresse
https://rufbusle.de/api/<stadt>/gtfs.zip

Die konkrete Adresse einer Stadt steht auf ihrer Datenangebot-Seite unter https://rufbusle.de/<stadt>/daten — zusammen mit Lizenz, Namensnennung, Kontakt und dem Stand der Daten. Diese Seite ist auch die, die man bei der Mobilithek oder beim zuständigen DELFI-Aufgabenträger hinterlegt.

Was im Archiv liegt

Standard-GTFS, ergänzt um die GTFS-Flex-Dateien, wo Flächenbedienung im Spiel ist.

Immer enthalten

agency.txt
Verkehrsunternehmen, Zeitzone, Sprache.
stops.txt
Haltestellen mit Koordinaten; wo gepflegt, trägt stop_code die bundesweite DHID.
routes.txt
Linien. Bedarfsverkehr trägt route_type 715.
trips.txt
Fahrten je Linie und Verkehrstagegruppe.
stop_times.txt
Halte-Zeiten; bei Flex-Fahrten die Abholfenster.
calendar.txt
Verkehrstage als Wochenmuster mit Gültigkeitszeitraum.
feed_info.txt
Herausgeber, Sprache, Gültigkeit und feed_version.

Enthalten, wenn zutreffend

calendar_dates.txt
Abweichungen vom Wochenmuster — Feiertage, Zusatztage.
attributions.txt
Lizenz und Namensnennung, sobald die Stadt sie hinterlegt hat.
booking_rules.txt
GTFS-Flex: Vorbuchungsfristen und Buchungswege.
location_groups.txt · location_group_stops.txt
GTFS-Flex: Gruppen von Halten, die als ein Ziel gelten.
locations.geojson
GTFS-Flex: die Bediengebiete als Polygone.

GTFS-Flex verstehen

Der Teil, an dem Werkzeuge stolpern, die nur klassischen Linienverkehr kennen.

Ein Rufbus hat oft keine feste Abfahrt an einer festen Haltestelle, sondern ein Zeitfenster in einem Gebiet. Im Feed erscheint das als Fahrt, deren Halte auf ein Gebiet aus locations.geojson verweisen, mit start_pickup_drop_off_window und end_pickup_drop_off_window statt einer Abfahrtszeit.

Werkzeuge ohne Flex-Unterstützung lesen den Feed trotzdem — sie ignorieren die Zusatzdateien und sehen dann nur den linienhaften Teil des Angebots. Das ist kein Fehler im Feed, sondern eine Grenze des lesenden Werkzeugs.

Sparsam abrufen

Der Feed unterstützt ETag; nutzen Sie ihn.
Erster AbrufShell
curl -sS -D - -o gtfs.zip \
  https://rufbusle.de/api/musterstadt/gtfs.zip | grep -i etag
FolgeabrufShell
curl -sS -o /dev/null -w '%{http_code}\n' \
  -H 'If-None-Match: "<etag aus dem ersten Abruf>"' \
  https://rufbusle.de/api/musterstadt/gtfs.zip
# 304 = unverändert, kein Download

Ein täglicher Abruf reicht in aller Regel. Wer sofort erfahren will, dass sich etwas geändert hat, abonniert zusätzlich das Ereignis feed.updated.

Lizenz und Namensnennung

Steht im Feed selbst, nicht nur auf der Website.

Hat die Stadt eine Lizenz hinterlegt, liegt sie als attributions.txt im Archiv und ist damit auch für Werkzeuge sichtbar, die nur das ZIP verarbeiten. Dieselbe Angabe steht menschenlesbar auf der Datenangebot-Seite der Stadt. Bitte halten Sie sich an die dort genannte Namensnennung, wenn Sie die Daten weiterverwenden.