Bookings
Search booking availability
Bookable slots for a party at a granted location inside a venue-local window (at most 31 days), in start order.
https://api.maple.inc/v1/locations/{locationId}/booking_availabilityAPI keyBookable slots for a party at a granted location inside a venue-local window (at most 31 days), in start order. Standard slots have experience: null; where the location offers experiences, their slots are listed too, each naming its experience, and experience_id narrows the search to one. Every slot carries an opaque signed slot_token: pass it unchanged to POST /booking_holds, never rebuild slot parameters yourself. Quotes are bound to the partner channel and expire after 15 minutes. Typed outcomes (party_size_out_of_bounds with the bounds, outside_booking_window, large_party_inquiry_required with the venue’s inquiry contact, bookings_not_enabled) come back as 422 with a code. Requires bookings:read.
Authorization
Send your API key as Authorization: Bearer <key>: mpk_test_… against the sandbox (https://api.staging.maple.inc/v1), mpk_live_… against production. See Authentication. The samples read the key from MAPLE_KEY and the base URL from MAPLE_BASE, as set up in the Quickstart.
Parameters
-
locationIdstring required -
party_sizestring required -
startstring required -
endstring required -
changing_booking_idstring or null -
experience_idstring or null
Responses
200 OK
-
objectstring requiredAlways
list. -
dataobject[] required -
data[].objectstring requiredAlways
booking_slot. -
data[].slot_tokenstring required -
data[].starts_atstring required -
data[].starts_at_localstring required -
data[].duration_minutesnumber or null required -
data[].areaobject or null requiredThe seating area the slot is quoted in, when the provider names one.
-
data[].area.refstring required -
data[].area.namestring or null required -
data[].cancellation_policyobject or null required -
data[].cancellation_policy.typestring required -
data[].cancellation_policy.currencystring or null requiredISO-4217.
-
data[].cancellation_policy.policy_textstring or null required -
data[].cancellation_policy.tiersobject[] required -
data[].cancellation_policy.tiers[].within_hours_before_startnumber required -
data[].cancellation_policy.tiers[].basisstring requiredper_partyorper_person. -
data[].cancellation_policy.tiers[].amount_centsnumber or null required -
data[].cancellation_policy.tiers[].percent_bpsnumber or null requiredBasis points of the party value, when the fee is a percentage.
-
data[].cancellation_policy.depositobject or null required -
data[].cancellation_policy.deposit.amount_centsnumber required -
data[].cancellation_policy.deposit.currencystring required -
data[].cancellation_policy.deposit.basisstring required -
data[].experienceobject or null requiredThe experience this slot books, or null for a standard reservation. The slot token is bound to it: holding and booking the slot books the experience.
-
data[].experience.idstring requiredThe experience id; pass it as
experience_idto search only its slots. -
data[].experience.namestring required -
data[].experience.descriptionstring or null required -
data[].experience.prepayment_requiredboolean requiredThe experience asks for payment up front. Maple cannot take payment yet, so holding such a slot answers 422
payment_instrument_required: show it, but offer a standard slot to book.
Errors
-
400Bad request -
401Unauthorized -
403Forbidden -
404Not found -
409Conflict -
422Unprocessable -
429Too many requests
Every error body names the error in _tag, explains it in message, and says where to report it in feedback. See Errors.
A 429 also sends Retry-After: Seconds to wait before retrying; also returned as retry_after in the body.