Bookings
List and retrieve bookings
Time booked at a venue: when, who, what, and its status. Money is on its order.
The booking object
A test key sees and writes only test rows of this object. See Test data.
idstringrequiredA booking id, bkg_ and 22 characters.
object"booking"requirednumberstringrequiredThe booking number a person reads out.
venuestringrequiredA venue id, ven_ and 22 characters.
statusobjectrequiredstatus.namestringrequirednullableThe venue's own name for the status.
status.typestringrequirednullableactive, completed, cancelled, hold or expired.
scheduled_atstringrequirednullableA UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.
local_datestringrequirednullableThe venue's own calendar day, yyyy-MM-dd.
local_timestringrequirednullableThe venue's own clock time, HH:mm, 24-hour.
timezonestringrequirednullableduration_minutesintegerrequirednullableguestsobjectrequiredguests.adultsintegerrequiredguests.juniorsintegerrequiredguests.additionalintegerrequiredpeoplearray of objectsrequiredpeople[].customerstringrequiredA customer id, cus_ and 22 characters.
people[].primarybooleanrequiredpeople[].adultbooleanrequirednullablepeople[].rolestringrequirednullablepeople[].checked_in_atstringrequirednullableA UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.
linesarray of objectsrequiredlines[].productobjectrequirednullablelines[].product.object"activity" | "package" | "event"requiredlines[].product.idstringrequiredact_, pkg_ or evt_ id.
lines[].product.namestringrequirednullablelines[].quantityintegerrequiredsourcestringrequirednullableWhere the booking came from.
blockedbooleanrequiredTrue for a staff block that holds time but is nobody's booking.
checked_in_atstringrequirednullableA UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.
hold_expires_atstringrequirednullableWhen an unpaid hold lapses.
livemodebooleanrequiredFalse for test data, true for real data.
created_atstringrequiredA UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.
updated_atstringrequiredA UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.
{
"id": "bkg_0TMXp8QPR6yGvKuV2GZQ10",
"object": "booking",
"number": "<string>",
"venue": "ven_0TMXp8QPR6yGvKuV2GZQ10",
"status": {
"name": "<string>",
"type": "<string>"
},
"scheduled_at": "2026-10-08T03:00:00.000Z",
"local_date": "2026-10-08",
"local_time": "14:30",
"timezone": "Australia/Sydney",
"duration_minutes": 1,
"guests": {
"adults": 1,
"juniors": 1,
"additional": 1
},
"people": [
{
"customer": "cus_0TMXp8QPR6yGvKuV2GZQ10",
"primary": true,
"adult": true,
"role": "<string>",
"checked_in_at": "2026-10-08T03:00:00.000Z"
}
],
"lines": [
{
"product": {
"object": "activity",
"id": "<string>",
"name": "<string>"
},
"quantity": 1
}
],
"source": "<string>",
"blocked": true,
"checked_in_at": "2026-10-08T03:00:00.000Z",
"hold_expires_at": "<string>",
"livemode": true,
"created_at": "2026-10-08T03:00:00.000Z",
"updated_at": "2026-10-08T03:00:00.000Z"
}List bookings
Every booking the key can see, newest first, a page at a time.
Query parameters
limitintegerHow many to return, 1 to 100. Defaults to 25.
starting_afterstringThe next_cursor of the page before. Omit it for the first page.
updated_sincestringOnly rows changed at or after this instant, ISO 8601 with an offset.
venuestringOnly those for this venue, by its ven_ id.
numberstringThe booking number.
scheduled_fromstringStarting at or after this instant.
scheduled_tostringStarting before this instant.
curl "https://api.hatcel.com/bookings?limit=25" \
-H "Authorization: Bearer $HATCEL_API_KEY" \
-H "Hatcel-Version: 2026-10-08"{
"object": "list",
"data": [
{
"id": "bkg_0TMXp8QPR6yGvKuV2GZQ10",
"object": "booking",
"number": "<string>",
"venue": "ven_0TMXp8QPR6yGvKuV2GZQ10",
"status": {
"name": "<string>",
"type": "<string>"
},
"scheduled_at": "2026-10-08T03:00:00.000Z",
"local_date": "2026-10-08",
"local_time": "14:30",
"timezone": "Australia/Sydney",
"duration_minutes": 1,
"guests": {
"adults": 1,
"juniors": 1,
"additional": 1
},
"people": [
{
"customer": "cus_0TMXp8QPR6yGvKuV2GZQ10",
"primary": true,
"adult": true,
"role": "<string>",
"checked_in_at": "2026-10-08T03:00:00.000Z"
}
],
"lines": [
{
"product": {
"object": "activity",
"id": "<string>",
"name": "<string>"
},
"quantity": 1
}
],
"source": "<string>",
"blocked": true,
"checked_in_at": "2026-10-08T03:00:00.000Z",
"hold_expires_at": "<string>",
"livemode": true,
"created_at": "2026-10-08T03:00:00.000Z",
"updated_at": "2026-10-08T03:00:00.000Z"
}
],
"has_more": true,
"next_cursor": "eyJ0IjoiMjAyNi0xMC0wOFQwMzowMDowMC4wMDBaIiwiaSI6IjBmOGZhZDViIn0"
}Retrieve a booking
One booking by its id, with its version in the ETag header. Another object's id, or one this key cannot see, is a 404.
Path parameters
idstringrequiredThe booking's id, bkg_ and 22 characters.
curl "https://api.hatcel.com/bookings/bkg_0TMXp8QPR6yGvKuV2GZQ10" \
-H "Authorization: Bearer $HATCEL_API_KEY" \
-H "Hatcel-Version: 2026-10-08"{
"id": "bkg_0TMXp8QPR6yGvKuV2GZQ10",
"object": "booking",
"number": "<string>",
"venue": "ven_0TMXp8QPR6yGvKuV2GZQ10",
"status": {
"name": "<string>",
"type": "<string>"
},
"scheduled_at": "2026-10-08T03:00:00.000Z",
"local_date": "2026-10-08",
"local_time": "14:30",
"timezone": "Australia/Sydney",
"duration_minutes": 1,
"guests": {
"adults": 1,
"juniors": 1,
"additional": 1
},
"people": [
{
"customer": "cus_0TMXp8QPR6yGvKuV2GZQ10",
"primary": true,
"adult": true,
"role": "<string>",
"checked_in_at": "2026-10-08T03:00:00.000Z"
}
],
"lines": [
{
"product": {
"object": "activity",
"id": "<string>",
"name": "<string>"
},
"quantity": 1
}
],
"source": "<string>",
"blocked": true,
"checked_in_at": "2026-10-08T03:00:00.000Z",
"hold_expires_at": "<string>",
"livemode": true,
"created_at": "2026-10-08T03:00:00.000Z",
"updated_at": "2026-10-08T03:00:00.000Z"
}