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
https://rufbusle.de/api/<stadt>/gtfs.zipDie 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
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
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
curl -sS -D - -o gtfs.zip \
https://rufbusle.de/api/musterstadt/gtfs.zip | grep -i etagcurl -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 DownloadEin 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
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.