Skip to contentSkip to navigation
Hatcel
Developers
2026-10-08API status

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.

idstringrequired

A booking id, bkg_ and 22 characters.

object"booking"required
numberstringrequired

The booking number a person reads out.

venuestringrequired

A venue id, ven_ and 22 characters.

statusobjectrequired
status.namestringrequirednullable

The venue's own name for the status.

status.typestringrequirednullable

active, completed, cancelled, hold or expired.

scheduled_atstringrequirednullable

A UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.

local_datestringrequirednullable

The venue's own calendar day, yyyy-MM-dd.

local_timestringrequirednullable

The venue's own clock time, HH:mm, 24-hour.

timezonestringrequirednullable
duration_minutesintegerrequirednullable
guestsobjectrequired
guests.adultsintegerrequired
guests.juniorsintegerrequired
guests.additionalintegerrequired
peoplearray of objectsrequired
people[].customerstringrequired

A customer id, cus_ and 22 characters.

people[].primarybooleanrequired
people[].adultbooleanrequirednullable
people[].rolestringrequirednullable
people[].checked_in_atstringrequirednullable

A UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.

linesarray of objectsrequired
lines[].productobjectrequirednullable
lines[].product.object"activity" | "package" | "event"required
lines[].product.idstringrequired

act_, pkg_ or evt_ id.

lines[].product.namestringrequirednullable
lines[].quantityintegerrequired
sourcestringrequirednullable

Where the booking came from.

blockedbooleanrequired

True for a staff block that holds time but is nobody's booking.

checked_in_atstringrequirednullable

A UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.

hold_expires_atstringrequirednullable

When an unpaid hold lapses.

livemodebooleanrequired

False for test data, true for real data.

created_atstringrequired

A UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.

updated_atstringrequired

A UTC instant, ISO 8601, e.g. 2026-10-08T03:00:00.000Z.

The booking object
{
  "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

GEThttps://api.hatcel.com/bookings
Any key

Every booking the key can see, newest first, a page at a time.

Query parameters

limitinteger

How many to return, 1 to 100. Defaults to 25.

starting_afterstring

The next_cursor of the page before. Omit it for the first page.

updated_sincestring

Only rows changed at or after this instant, ISO 8601 with an offset.

venuestring

Only those for this venue, by its ven_ id.

numberstring

The booking number.

scheduled_fromstring

Starting at or after this instant.

scheduled_tostring

Starting before this instant.

curl "https://api.hatcel.com/bookings?limit=25" \
  -H "Authorization: Bearer $HATCEL_API_KEY" \
  -H "Hatcel-Version: 2026-10-08"
200 response
{
  "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

GEThttps://api.hatcel.com/bookings/{id}
Any key

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

idstringrequired

The 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"
200 response
{
  "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"
}