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.

RESTMCPTypeScript SDK

How a booking works

  1. 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. 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. 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. 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."}}'

Next