Dokumentation
GET/api/v1/bookings

Buchungen

Der 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.

Wofür

Der Endpunkt, den die meisten Integrationen wirklich wollen: Was ist für morgen gebucht? Damit lässt sich entscheiden, ob eine Fahrt stattfindet, wie viele Plätze belegt sind und ob ein Rollstuhlplatz gebraucht wird.

Anfrage

Erfordert das Recht read:bookings.
AnfrageShell
curl -sS \
  -H "Authorization: Bearer rb_live_…" \
  "https://rufbusle.de/api/v1/bookings?from=…&to=…"

Query-Parameter

limit
Seitengröße, 1–200. Ohne Angabe 50.
cursor
Wert aus nextCursor der vorigen Seite.
from
Ab diesem Servicedatum (YYYY-MM-DD, einschließlich).
to
Bis zu diesem Servicedatum (YYYY-MM-DD, einschließlich).

Antwort

Seitenweise: data mit den Einträgen, nextCursor für die Folgeseite.
BeispielantwortJSON
{
  "data": [
    {
      "id": "bkg_5Rt8wY",
      "tripId": "trp_9Vc4mQ",
      "rideDate": "2026-08-12",
      "boardingStopId": "stp_7Kq2vX",
      "alightingStopId": "stp_1Ax9bN",
      "seats": 2,
      "wheelchairUsers": 0,
      "status": "SCHEDULED",
      "canceled": false,
      "transportMode": "BUS",
      "source": "WEB",
      "sourcePluginSlug": "phone-agent",
      "pickupWindowStart": "08:15",
      "pickupWindowEnd": "08:15",
      "createdAt": "2026-08-10T14:32:05.000Z",
      "phone": "+4915112345678"
    }
  ],
  "nextCursor": "bkg_5Rt8wY"
}

Beispielwerte, keine echten Daten. Unbekannte Felder bitte ignorieren — es können jederzeit welche hinzukommen.

Felder je Eintrag (Booking)

Die Hülle mit data und nextCursor ist bei allen Listen gleich; hier stehen die Felder eines einzelnen Eintrags.
FeldTypBeschreibung
idstringInterne ID der Buchung.
tripIdstringFahrt, auf die gebucht wurde.
rideDatestring | nullServicedatum der Fahrt (YYYY-MM-DD).
boardingStopIdstringEinstieg — Verweis auf einen Halt.
alightingStopIdstringAusstieg — Verweis auf einen Halt.
seatsintegerGebuchte Sitzplätze.
wheelchairUsersintegerDavon Rollstuhlplätze.
statusstringStand der Durchführung: SCHEDULED | PICKED_UP | COMPLETED | NOSHOW.
canceledbooleanStorniert. Stornos verschwinden nicht, sie werden markiert.
transportModestringDurchführung als BUS oder TAXI.
sourcestringHerkunft der Buchung: WEB | RECURRING | PLUGIN | API.
sourcePluginSlugstring | nullSlug des erzeugenden Plugins (bei source PLUGIN oder plugin-gebundenen API-Schlüsseln); sonst null. Erlaubt Integrationen, eigene Buchungen zu erkennen.
pickupWindowStartstring | nullBeginn des zugesagten Abholfensters; sonst null.
pickupWindowEndstring | nullEnde des zugesagten Abholfensters; sonst null.
createdAtstringZeitpunkt der Buchung, ISO 8601 (UTC).
phoneoptionalstring | nullNur mit Scope read:bookings:pii; sonst nicht enthalten.

Worauf zu achten ist

Die Punkte, an denen Integrationen erfahrungsgemäß hängen bleiben.
  • Ohne from/to bekommen Sie alles ab heute. Für einen Nachtlauf ist ein enger Zeitraum sparsamer und schneller.
  • Stornierte Buchungen verschwinden nicht, sie tragen canceled: true. Wer nur auf neue Zeilen achtet, plant Storni mit.
  • Ohne Scope read:bookings:pii fehlt das Feld phone vollständig — es ist dann nicht null, sondern nicht vorhanden.