REST-API
Alle Endpunkte sind lesend und liefern JSON. Jeder hat eine eigene Seite mit Feldern, Beispielantwort und den Fallstricken, die man sonst erst beim zweiten Versuch findet.
https://rufbusle.de/api/v1Einstieg
Fahrplan & Netz
/api/v1/stopsHaltestellenread:scheduleHaltestellen und Bedienzonen der aktiven Fahrpläne, inklusive DHID zur Zuordnung zum deutschlandweiten Haltestellenkatalog.
/api/v1/linesLinienread:scheduleLinien der aktiven Fahrpläne, entsprechend GTFS routes.
/api/v1/tripsFahrtenread:scheduleFahrten als Fahrplan-Vorlagen inklusive Halte-Zeiten und Verkehrstagen — nicht als Einzeltermine. Konkrete Termine ergeben sich aus serviceDays.
/api/v1/feed/gtfs.zipGTFS-Feedread:scheduleDerselbe GTFS(-Flex)-Feed wie der öffentliche Stadt-Feed, nur schlüsselgeschützt. Unterstützt ETag/If-None-Match.
Bedarf & Betrieb
/api/v1/bookingsBuchungenread:bookingsDer tatsächliche Bedarf. Standardmäßig ohne personenbezogene Angaben; die Telefonnummer erscheint nur mit dem zusätzlichen Scope read:bookings:pii und fehlt sonst vollständig.
/api/v1/bookingsBuchung anlegenwrite:bookingsLegt eine Buchung im Namen eines Fahrgasts an (Gast-Buchung). Der Idempotency-Key-Header ist Pflicht — Wiederholungen mit demselben Key liefern dieselbe Buchung (200 statt 201) und buchen nie doppelt.
/api/v1/bookings/{id}/cancelBuchung stornierenwrite:bookingsStorniert eine Buchung der Stadt per ID. Idempotent: eine bereits stornierte Buchung antwortet 200 mit unverändertem Zustand; abgeschlossene Fahrten sind endgültig (409).
Fuhrpark
Maschinenlesbare Beschreibung
Die vollständige OpenAPI-3.1-Beschreibung steht unter /api/v1/openapi.json und wird aus denselben Schemas erzeugt, gegen die wir zur Laufzeit validieren. Sie kann der Implementierung also nicht davonlaufen.
curl -sS https://rufbusle.de/api/v1/openapi.json -o rufbusle.json
npx @openapitools/openapi-generator-cli generate \
-i rufbusle.json -g typescript-fetch -o ./src/generated/rufbusle