Truvisory › AI › API docs › book
POST /api/book
Claims a 30-minute consultation slot that was returned by GET /api/availability . On success, returns a Google Meet link and emits a calendar invite to both parties.
Quick reference
Method POST
URL https://truvisory.com/api/book
Request application/json
Response application/json
OpenAPI book.json
Request body
Field Required Type Description
slotStartyes ISO-8601 Slot start as returned by /api/availability.
nameyes string Attendee's name.
emailyes string (email) Attendee's email — receives the calendar invite.
phoneno string E.164 preferred.
sourceno enum web | chat | phone. Defaults to web.
sessionIdno UUID v4 Links the booking to a chat session if booked from chat.
{
"slotStart": "2026-05-20T09:00:00-06:00",
"name": "Alex Procurement",
"email": "alex@agency.gov",
"phone": "+12025551234",
"source": "web"
}
Response (200)
{
"booked": true,
"start": "2026-05-20T09:00:00-06:00",
"meetLink": "https://meet.google.com/abc-defg-hij"
}
Errors
Status Body Cause
400 { "error": "bad_request" }Missing/invalid required field.
409 { "error": "slot_taken" }Slot was claimed between availability fetch and booking.
429 { "error": "rate_limited" }Too many requests.