Create a new booking request. Returns either approval_required (host must approve), instant checkout URL, or payment sheet credentials.
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
When true, validates and simulates the request but performs no writes. Recommended when calling from docs.
true Booking line items (venue and/or services)
Booking date (ISO date)
"2025-12-04"
Start time
"09:00"
Duration in hours
4
Start timestamp (ISO)
"2025-12-04T09:00:00Z"
End timestamp (ISO)
"2025-12-04T13:00:00Z"
DEPRECATED: Use items[].selectedPackages instead
If provided, upgrade existing booking instead of creating new one
Optional message to host (e.g. purpose of event)
Payment flow: hosted_checkout (redirect) or payment_sheet (native)
hosted_checkout, payment_sheet Success
Result mode
approval_required, instant_booking "instant_booking"
Booking ID (when mode is approval_required or instant_booking with payment sheet)
"550e8400-e29b-41d4-a716-446655440000"
Message for user when approval is required
"Your request has been sent to the host."
Stripe Checkout URL (when mode is instant_booking and payment flow is hosted_checkout)
"https://checkout.stripe.com/c/pay/cs_..."
Stripe PaymentIntent client secret (when mode is instant_booking and payment flow is payment_sheet)
"pi_xxx_secret_xxx"
Stripe publishable key (when mode is instant_booking and payment flow is payment_sheet)
"pk_test_..."