Reservations
PREVIEWAPI, CLI & MCP preview. Reservation commands require the development client.
Ask
Italian in Manhattan. Two people, Friday at 7 pm. Vegetarian options.
Required details
- Diner
- Name, country, phone number.
- Booking
- Location, date, time, party size.
- Preferences
- Cuisine, budget, dietary or accessibility needs.
Choose
Compare up to six options at a time. Pick a restaurant and an available time.
Confirm
Check the booking summary. Confirm it with your agent to book.
Use it in your app or agent
Request JSON
Use the same fields for the API, CLI file, or create_reservation. Put date, local time, party size, and preferences in request. Do not supply coordinates or a time zone.
{
"diner": {
"country": "US",
"first_name": "Ada",
"last_name": "Lovelace",
"phone_number": "+12125550123"
},
"location": {
"query": "Times Square, New York"
},
"request": "Dinner tomorrow for two around 7:30 PM. Quiet Italian, vegetarian choices, about $80 per person."
}CLI commands · development client
shopstack reservation run --file reservation.json
shopstack reservation get RESERVATION_ID
shopstack reservation options RESERVATION_ID --offset 6 --limit 6
shopstack reservation option RESERVATION_ID OPTION_ID
shopstack reservation message RESERVATION_ID --revision N --content "Your reply"
shopstack reservation cancel RESERVATION_ID --revision Nrun asks follow-up questions, displays options, and asks you to confirm the exact booking summary. Use the latest returned revision for a message or cancellation.
MCP tools · local preview
create_reservation- Start with the request fields above.
poll_reservation- Read the current turn with
reservation_id. list_reservation_options- Use
reservation_id, optionaloffsetandlimitfor more stored options. get_reservation_option- Use
reservation_idandoption_idfor photos, provider details, and times. send_reservation_message- Send
reservation_id,expected_revision, andcontent. Select only current option and time IDs. Send confirmation only after the user agrees to the exact summary. cancel_reservation- Cancel a confirmed booking with
reservation_idandexpected_revision.
API routes & state
POST /reservations
GET /reservations/{id}
GET /reservations/{id}/options
GET /reservations/{id}/options/{option_id}
POST /reservations/{id}/messages
POST /reservations/{id}/cancelCreate returns 201 and a conversation, not a booking. Messages require content and expected_revision; cancellation requires expected_revision. Send an Idempotency-Key with mutations and keep it for retries.
Statuses are active, confirmation_required, confirmed, cancelled, booking_unknown, and cancellation_unknown.
Read the current reservation after a revision conflict. An unknown outcome is not success or failure. Do not submit another booking to resolve it.
More options, status & cancellation
Ask your agent for more restaurants, photos, or times. After booking, ask it to check the reservation or request cancellation.