Skip to main content

Booking Form Status

Has everyone on a booking signed? Returns two separate lists:

  • forms: the waivers each person signs before the activity. Counts are per participant: a form is complete only when every person on the booking has signed, and a consent on file (a signature still within its validity period) counts as signed. These are the same numbers as the "N of N signed" on the booking page.
  • surveys: feedback forms asked for after the trip. A survey is never a signature, so it never affects all_signed.

Endpointโ€‹

GET /v1/bookings/{id}/form-status

Authenticationโ€‹

Requires an API key with the bookings:read scope.

Path Parametersโ€‹

ParameterTypeDescription
idintegerBooking ID

Responseโ€‹

Success (200 OK)โ€‹

{
"data": {
"booking_reference": "BK-2026-00123",
"customer_name": "Sam Lee",
"all_signed": false,
"signed": 5,
"required": 8,
"forms": [
{
"form_id": 9,
"form_name": "Liability Waiver",
"signed_count": 4,
"total_count": 4,
"completed": true,
"still_to_sign": []
},
{
"form_id": 11,
"form_name": "Medical Declaration",
"signed_count": 1,
"total_count": 4,
"completed": false,
"still_to_sign": ["Ana Ruiz", "Ben Ortiz", "Kim Park"]
}
],
"surveys": [
{
"form_id": 14,
"form_name": "Post-Trip Review",
"sends": "after_trip",
"status": "sends_after_trip"
}
],
"how_to_read": "forms are what each person signs before the activity; ..."
}
}

Fieldsโ€‹

FieldDescription
all_signedtrue when every person has signed every form in forms. Also true when nothing needs signing (forms is empty).
signed / requiredSignatures collected and needed, across every person and form.
customer_nameThe booking's customer. An organization shows as its own name with the contact person in brackets, for example Hill School (Sam Lee).
forms[].signed_count / total_countPeople who have signed this form, out of everyone who needs to.
forms[].still_to_signThe names of everyone who has not signed this form yet. Empty once everyone has.
surveys[].sendsafter_trip (goes out by itself once the booking is returned or completed) or when_you_send_it (sent by hand from the booking).
surveys[].statussends_after_trip, scheduled, sent, answered, not_sent (a hand-sent survey nobody has sent), will_not_send (this booking does not get surveys) or not_delivered (the email bounced or failed).

Errorsโ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
403insufficient_scopeKey lacks bookings:read scope
403forbiddenBooking belongs to another supplier
404not_foundBooking not found