Developers

Availability

Ask which days are bookable, then which times on a day. Availability is live: it reflects the same rules the operator's own checkout uses.

Updated 2026-10-20

Which days are available?

GET/availability
Query parameterRequiredNotes
experienceYesExperience slug
fromYesFirst date, YYYY-MM-DD
toNoLast date, inclusive. Defaults to from.

A request covers at most 92 days. A longer range is rejected with 400 VALIDATION (details.maxDays), not truncated.

curl
curl "https://<your-booking-domain>/api/partner/v1/availability?experience=supercar-drive&from=2026-11-13&to=2026-11-16" \
  -H "Authorization: Bearer pk_test_AbC123dEf456GhI7.xxxxxxxxxxxxxxxx"
json200 OK
{
  "ok": true,
  "data": {
    "experience": "supercar-drive",
    "from": "2026-11-13",
    "to": "2026-11-16",
    "days": [
      { "date": "2026-11-13", "status": "open",     "remaining": 6, "bestTime": "09:00" },
      { "date": "2026-11-14", "status": "sold_out", "remaining": 0, "bestTime": null },
      { "date": "2026-11-15", "status": "closed",   "remaining": 0, "bestTime": null },
      { "date": "2026-11-16", "status": "open",     "remaining": 8, "bestTime": "08:30" }
    ]
  },
  "requestId": "req_c41a77"
}

bestTime is the earliest slot with the most room (HH:mm), or null when the day is not open. remaining is the most seats in any open slot of that day, and 0 unless the day is open.

Which times are available on a day?

GET/availability/slots
Query parameterRequiredNotes
experienceYesExperience slug
dateYesThe day, YYYY-MM-DD

Slots start at opening time and run at the experience's slot size (slotMinutes). A closed day returns status: "closed" and an empty slots array.

curl
curl "https://<your-booking-domain>/api/partner/v1/availability/slots?experience=supercar-drive&date=2026-11-13" \
  -H "Authorization: Bearer pk_test_AbC123dEf456GhI7.xxxxxxxxxxxxxxxx"
json200 OK
{
  "ok": true,
  "data": {
    "experience": "supercar-drive",
    "date": "2026-11-13",
    "status": "open",
    "slotMinutes": 30,
    "slots": [
      { "time": "09:00", "remaining": 6, "status": "open" },
      { "time": "09:30", "remaining": 4, "status": "open" },
      { "time": "10:00", "remaining": 0, "status": "sold_out" },
      { "time": "10:30", "remaining": 0, "status": "blocked" }
    ]
  },
  "requestId": "req_9d02be"
}

What do the statuses mean?

LevelStatusMeaning
Day (and slot-list day)openThe experience runs that day and at least one slot can be booked.
sold_outIt runs, but no capacity is left.
closedIt does not run that day (blacked out or no opening hours).
past_cutoffToo late to book: inside the experience lead time or, for today, the site-wide booking lead time.
SlotopenBookable, with the seat indicator in remaining.
sold_outNo capacity left at this time.
blockedClosed by the operator’s staff for this time.
past_cutoffOutside the lead time.

A slot is open only when the experience runs that day, the slot is not blocked, it is outside the lead time, and resource capacity remains.

What does remaining mean?

A seat indicator, not an exact count

remaining is the number of resources with room in the tightest resource group, or 8 when the experience has no resource limits. Use it to show "a few left"; do not promise an exact number. The authoritative answer is always a quote or a booking attempt.
  • Availability changes constantly. Never cache slots for long, and always handle 409 UNAVAILABLE when you book.
  • A quote holds nothing. Capacity is only taken when a live booking is created.