Booking Pro API
Api referenceClasses

Book a contact into a class

Reserves a spot on the roster. Nothing is charged: the spot records what will cover it at check-in (`membership`, `package`, `free_class`) or `none`. The class rules apply: capacity (409 `class_full`), signup cutoff / max per day / first-timers only (422 `booking_rule`), and, when the service requires a membership or package, entitlement (422 `entitlement_required`) unless `allow_without_entitlement` is true (a staff-style booking the desk charges at checkout). Send an `Idempotency-Key`.

POST
/classes/{id}/book

Authorization

ApiKeyAuth
AuthorizationBearer <token>

Send your API key as a bearer token: Authorization: Bearer bp_sk_live_.... Mint and revoke keys in your dashboard under Settings -> Developers.

In: header

Path Parameters

id*string
Formatuuid

Header Parameters

Idempotency-Key?string

A unique key you generate per logical create. Retrying with the same key returns the original result instead of creating a duplicate.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/classes/497f6eca-6276-4993-bfeb-53cbbbba6f08/book" \  -H "Content-Type: application/json" \  -d '{    "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598"  }'
{  "attendee_id": "83226cf6-9cc1-4adb-b536-110595637d19",  "class_id": "54be4e86-fa06-45fc-86e5-29ea93b4a062",  "contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",  "status": "reserved",  "paid_by": "membership",  "spots_left": 0,  "already_booked": true}