Entwicklerdokumentation

Verfügbarkeit

Abfragen, welche Slots eine Location für Ressourcentyp, Datum, Gruppengröße und optionale Buchungsdauer anbieten kann – der Aufruf vor jeder Reservierung.

Die Verfügbarkeit macht aus Ressourcentyp, Datum und Gruppengröße die Liste der Slots, die ein Gast wählen kann. Sie berücksichtigt bereits Öffnungszeiten, bestehende Reservierungen, Kapazität und Buchungsdauer jeder Ressource sowie die Preise der Location – ein als verfügbar markierter Slot lässt sich also unverändert reservieren, und eine Reservierung für einen nicht angebotenen Slot wird abgelehnt.

Endpunkte

GET /api/venues/{venueSlug}/availability

Query-Parameter

Parameter Erforderlich Bedeutung
date ja Datum in Ortszeit, yyyy-MM-dd (Datum, Uhrzeit und Zeitzonen)
partySize nein, Standard 2 Gäste oder Spieler. Größeren Gruppen werden ggf. Gruppen-Slots über mehrere Ressourcen angeboten
resourceType nein, Standard RestaurantTable Einer der resourceTypes der Location – RestaurantTable, BilliardTable, DartBoard, Shuffleboard, BowlingLane, EventArea
durationMinutes nein Eine Buchungsdauer, die die Location für diesen Typ anbietet (siehe bookingDurations im Profil). Weggelassen oder 0 bedeutet den Standard der Location

Antwort 200 OK

Feld Typ Bedeutung
slug, date, resourceType, partySize Die Anfrage, zurückgespiegelt
durationMinutes integer Die Buchungsdauer, die die Slots darstellen – der Standard, wenn Sie keine gesendet haben
slots[] object[] Jeder Kandidaten-Slot des Tages, verfügbar oder nicht

Slots

Feld Typ Bedeutung
start, end string Ortszeit HH:mm
resourceId, resourceName string Die Ressource dieses Slots – senden Sie resourceId beim Reservieren zurück, um genau diese zu bekommen
available boolean false für einen Slot, der auf dem Raster existiert, aber bereits vergeben ist; ausgegraut zeigen, nie buchen
priceEstimate, currency decimal, string Was die Buchung nach dem Preismodell der Ressource kosten würde; 0 bei kostenlosen Ressourcen
pricingModel string oder null Free, PerHour, PerGame, PerSession, FixedFee, Deposit, MinimumSpend – sagt, worauf sich die Schätzung bezieht
groupResourceCount, groupResourceNames integer, string[] (beide null bei Einzel-Slots) Einer für eine Ressource zu großen Gruppe wird ein Gruppen-Slot über mehrere angeboten; resourceId ist dann das erste Mitglied

Ein geschlossener Tag oder eine Gruppe, die die Location gar nicht unterbringen kann, ist eine leere slots-Liste mit 200 – kein Fehler.

{
  "slug": "demo-sportsbar",
  "date": "2026-10-16",
  "resourceType": "RestaurantTable",
  "partySize": 4,
  "slots": [
    {
      "start": "15:00",
      "end": "17:00",
      "resourceId": "table-6a",
      "resourceName": "Corner table",
      "available": true,
      "priceEstimate": 0,
      "currency": "EUR",
      "groupResourceCount": null,
      "groupResourceNames": null,
      "pricingModel": "Free"
    },
    {
      "start": "15:00",
      "end": "17:00",
      "resourceId": "table-4a",
      "resourceName": "Table 4",
      "available": true,
      "priceEstimate": 0,
      "currency": "EUR",
      "groupResourceCount": null,
      "groupResourceNames": null,
      "pricingModel": "Free"
    },
    {
      "start": "15:00",
      "end": "17:00",
      "resourceId": "table-4b",
      "resourceName": "Table 7",
      "available": true,
      "priceEstimate": 0,
      "currency": "EUR",
      "groupResourceCount": null,
      "groupResourceNames": null,
      "pricingModel": "Free"
    }
  ],
  "durationMinutes": 120
}

Listen im Beispiel sind auf drei Einträge gekürzt.

Fehler400 mit errors.date, wenn date nicht yyyy-MM-dd ist; 404 keine Location mit diesem Slug; Schlüsselprobleme wie unter Fehler.

curl

curl "https://api.bookdineplay.com/api/venues/your-venue/availability?date=2026-10-16&partySize=4&resourceType=RestaurantTable" \
  -H "X-BookDinePlay-Key: bdp_pk_your_publishable_key" \
  -H "Origin: https://www.your-venue.example"

JavaScript

const params = new URLSearchParams({ date: '2026-10-16', partySize: '4', resourceType: 'RestaurantTable' });
const availability = await (await fetch(`https://api.bookdineplay.com/api/venues/your-venue/availability?${params}`, {
  headers: { 'X-BookDinePlay-Key': 'bdp_pk_your_publishable_key' }
})).json();
const open = availability.slots.filter(s => s.available);
console.log(`${open.length} Slots à ${availability.durationMinutes} min`);

C#

var availability = await client.GetAvailabilityAsync(
    "your-venue", new DateOnly(2026, 10, 16), partySize: 4, BookableResourceType.RestaurantTable,
    cancellationToken: cancellationToken);
var open = availability?.Slots.Where(s => s.Available).ToList() ?? [];

Buchungsdauer wählen

Lässt die Location Gäste wählen (guestSelectable in den bookingDurations des Profils), bieten Sie die options-Liste des Typs an, übergeben die Wahl als durationMinutes und senden denselben Wert mit der Reservierung. Eine Dauer, die die Location nicht anbietet, wird mit dem Standard beantwortet, nicht mit einem Fehler – vergleichen Sie durationMinutes in der Antwort mit Ihrer Anfrage.

Nächste Schritte

  • Reservierungen – den vom Gast gewählten Slot buchen.
  • Venue – die Ressourcentypen und Dauern, nach denen Sie fragen können.