Vamos API and MCP server
Book local appointments from your app or AI assistant: find a business, quote a slot and book it, only after the customer has explicitly agreed. Some businesses review requests before they confirm.
How a booking works
- 1
Search. Find businesses and their services, and list their open slots, a business's or one of its people's. No key is needed to search or to list slots.
- 2
Quote. Hold a slot for about eight minutes. The quote carries the price and terms the server computed, and a summary to show the customer exactly as written.
- 3
Book. Only after the customer says yes, in their own words: send that statement with the booking. In a chat app that renders MCP Apps, the booking card does this for you: the customer picks a time and confirms with a click, and the click is the consent. Keep the manage token the booking returns, because it cannot be recovered.
- 4
Approval. A business can require its approval for some bookings. The booking is then a request, pending until the business approves or declines it, and you hear by webhook or by checking the booking.
Quickstart
# Search. No key needed.
curl 'https://www.yovamos.com/v1/businesses?query=haircut'
# Open slots for one of its services, from a day on, after 5 PM local time.
curl 'https://www.yovamos.com/v1/businesses/<businessId>/slots?serviceId=<serviceId>&from=<yyyy-mm-dd>&startAfter=17:00'
# Quote a slot. This and everything after it needs your app key.
# Show quote.summary to the customer, word for word.
curl -X POST https://www.yovamos.com/v1/quotes \
-H 'Authorization: Bearer <app key>' \
-H 'Content-Type: application/json' \
-d '{"slotId":"<slot.id>"}'
# Only after the customer says yes, in their own words:
curl -X POST https://www.yovamos.com/v1/bookings \
-H 'Authorization: Bearer <app key>' \
-H 'Content-Type: application/json' \
-d '{"quoteId":"<quote.id>","customer":{"name":"Sam Rivera","email":"sam@example.com"},"consent":{"humanConfirmed":true,"statement":"Yes, book it."}}'