Booking
Bookings
Create, manage, and transition bookings through their lifecycle. Bookings link a customer to a resource for a specific time slot and support status transitions, updates, and event history.
Create a booking
POST
/modules/booking/bookings
Create a new booking.
curl
curl -X POST https://api.saasignal.saastemly.com/modules/booking/bookings \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"resource_id":"...","start_time":{}}'
json — 201 Created
{ "status": "ok" }
Body field
Type
Description
resource_id requiredstring
customer_idstring
start_time requiredstring (ISO 8601)
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$end_timestring (ISO 8601)
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$duration_minutesinteger
range ≥1 .. ≤1440
titlestring
max 256 chars
notesstring
max 2000 chars
metadataobject
Error responses
401 Unauthorized
402 Insufficient tokens
422 Unprocessable entity
429 Rate limited
List bookings
GET
/modules/booking/bookings
List bookings.
curl
curl https://api.saasignal.saastemly.com/modules/booking/bookings \
-H "Authorization: Bearer sk_live_..."
json — 200 OK
{ "status": "ok" }
Query param
Type
Description
statusstring
resource_idstring
customer_idstring
fromstring (ISO 8601)
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$tostring (ISO 8601)
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$limitinteger
range ≥1 .. ≤100default
25cursorstring
Error responses
401 Unauthorized
402 Insufficient tokens
429 Rate limited
Get a booking
GET
/modules/booking/bookings/{booking_id}
Retrieve a single booking with recent events.
curl
curl https://api.saasignal.saastemly.com/modules/booking/bookings/{booking_id} \
-H "Authorization: Bearer sk_live_..."
json — 200 OK
{ "status": "ok" }
Path param
Type
Description
booking_id requiredstring
Error responses
401 Unauthorized
402 Insufficient tokens
404 Not found
429 Rate limited
Update a booking
PATCH
/modules/booking/bookings/{booking_id}
Update a pending/confirmed booking.
curl
curl -X PATCH https://api.saasignal.saastemly.com/modules/booking/bookings/{booking_id} \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{}'
json — 200 OK
{ "status": "ok" }
Path param
Type
Description
booking_id requiredstring
Body field
Type
Description
titlemixed
notesmixed
metadataobject
Error responses
401 Unauthorized
402 Insufficient tokens
404 Not found
422 Unprocessable entity
429 Rate limited
Delete a booking
DELETE
/modules/booking/bookings/{booking_id}
Delete a pending/cancelled booking.
curl
curl -X DELETE https://api.saasignal.saastemly.com/modules/booking/bookings/{booking_id} \
-H "Authorization: Bearer sk_live_..."
json — 200 OK
{ "status": "ok" }
Path param
Type
Description
booking_id requiredstring
Error responses
401 Unauthorized
402 Insufficient tokens
404 Not found
429 Rate limited
Transition booking status
POST
/modules/booking/bookings/{booking_id}/transition
Transition booking to a new status. Valid transitions: pending→[confirmed,cancelled], confirmed→[checked_in,cancelled,no_show], checked_in→[completed].
curl
curl -X POST https://api.saasignal.saastemly.com/modules/booking/bookings/{booking_id}/transition \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"status":"completed"}'
json — 200 OK
{ "status": "ok" }
Path param
Type
Description
booking_id requiredstring
Body field
Type
Description
status requiredstring
values:
confirmed, checked_in, completed, cancelled, no_showcancel_reasonstring
max 1000 chars
actorstring
max 256 chars
Error responses
401 Unauthorized
402 Insufficient tokens
404 Not found
422 Unprocessable entity
429 Rate limited
Get booking events
GET
/modules/booking/bookings/{booking_id}/events
List audit events for a booking.
curl
curl https://api.saasignal.saastemly.com/modules/booking/bookings/{booking_id}/events \
-H "Authorization: Bearer sk_live_..."
json — 200 OK
{ "status": "ok" }
Path param
Type
Description
booking_id requiredstring
Error responses
401 Unauthorized
402 Insufficient tokens
404 Not found
429 Rate limited