Required fields
The minimum fields each endpoint needs, by vertical.
Treat every field shown in a vertical's example as required for that vertical. Omitting any of them causes the booking to fail or produce unexpected results; the examples are the contract, not a suggestion.
Checked on every booking
These are refused with a 400 before anything is created, so a mistake costs nothing:
venue_id from a searchcustomer with at least a name, email or phonecustomer.name, party_size 1–20, and a datetime in the futurecustomer.namemissing_last_nameexample.com / .test emails, no US numbers in a 555 exchange, no names like "Customer Name" or "Test User"placeholder_customer (the field is named in the message)availability_id: the datetime it was offered atslot_not_offeredFitness (Mindbody): signing in
Mindbody identifies a member by their email. A new email gets a new Mindbody account. An email that already has an account signs in with a code Mindbody emails to that address: the booking returns requires_action with an otp next action, and you submit the code as otp_code to /continue. If you know the account's password you can send it in metadata.password instead; it is optional.
An account that signs in with Google or Apple is switched to email sign-in so the emailed code can be used; the link to Google or Apple is removed once the code is entered. If Mindbody does not offer that switch, the booking fails with mindbody_social_login. If an existing account is not offered a code sign-in at all, it fails with account_exists.