Waitlist
Add a party to the waitlist
Adds a party to the end of the queue and returns its entry with its position and quoted wait.
https://api.maple.inc/v1/waitlist_entriesAPI keyAdds a party to the end of the queue and returns its entry with its position and quoted wait. A closed waitlist answers 409 waitlist_closed; a phone Maple cannot text, such as one with an extension, answers 400. Requires bookings:write.
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.
Request body
application/json, required.
-
location_idstring requiredA granted location.
-
party_sizeinteger requiredAt least 1.
-
guestobject required -
guest.first_namestring required -
guest.last_namestring or null -
guest.phonestring required -
guest.emailstring or null -
idempotency_keystring requiredYour unique key for this join, scoped to your app across all its locations. Retrying with the same key and the same request returns the same entry; the same key with a different request, including another location, answers 409
idempotency_key_reused. Up to 255 characters.
Responses
200 OK
-
objectstring requiredAlways
waitlist_entry. -
idstring requiredOpaque, prefixed
bkw_…. -
livemodeboolean required -
creatednumber required -
location_idstring required -
statusstring requiredOne of
waiting,notified,on_my_way,seated,removed_by_guest,removed_by_venue,expired_no_response. -
party_sizeinteger required -
positioninteger or null required1-based place in the queue while the entry is active; null once it is seated, removed, or expired.
-
quoted_waitobject or null requiredThe wait quoted when the party joined, refreshed when it is notified. Null when none could be quoted.
-
quoted_wait.parties_aheadinteger required -
quoted_wait.wait_minutesobject required -
quoted_wait.wait_minutes.mininteger required -
quoted_wait.wait_minutes.maxinteger required -
joined_atstring requiredISO-8601 UTC instant.
-
notified_atstring or null requiredISO-8601 UTC instant the table-ready text was sent.
-
booking_idstring or null requiredThe walk-in booking created when the party was seated; read it with
GET /bookings/{bookingId}. -
channelstring requiredThe channel the party joined on, e.g.
api_partner,voice_ai,internal. -
guestobject required -
guest.first_namestring or null required -
guest.last_namestring or null required -
guest.phonestring or null requiredE.164, when the guest left one.
-
guest.phone_last_fourstring or null required -
guest.emailstring or null required
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.