Custom fields
The system supports creating an unlimited number of custom fields that can be used to extend various objects with additional, user-defined data. Custom fields can have different data types, such as:
textselectcheckboxesmultiselect(and other supported input types)
For field types that require predefined choices (e.g., select, checkboxes, multiselect), the API allows you to define any number of selectable options.
Each custom field must be assigned to exactly one supported object type. Custom fields can be attached to the following objects:
BookingPersonApplicationFormWaiverBookingInquiryProduct
Once defined, custom field values are stored directly inside the corresponding object, under the JSON attribute custom_fields. This attribute contains a key–value structure representing the custom field identifiers and their assigned values.
This mechanism enables flexible data modeling and the ability to tailor object structures to specific business needs without modifying the core schema.
When a CustomField is deleted, all previously saved values associated with that field remain stored within the objects’ custom_fields JSON attribute. The system does not automatically remove or modify these legacy values, ensuring that historical data remains intact unless explicitly updated or cleaned up by the client.
Endpoint
Fetch all custom fields
Number of activity logs to return
10Page number
1Sorts the results based on the passed field. All possible values can be appended with ",asc" or ",desc"
Filter by custom field ID(s)
Filter by the entity the custom field is bound to
Filter by custom field type
A list of custom fields
GET /private/custom_fields HTTP/1.1
Host: api.bookinglayer.io
Accept: */*
A list of custom fields
[
{
"years_past": 1,
"bind_to": "person",
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label",
"helper_text": "helper_text"
},
"en": {
"label": "label",
"helper_text": "helper_text"
}
},
"years_future": 6,
"options": [
{
"is_enabled": true,
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label"
},
"en": {
"label": "label"
}
},
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"backoffice_title": "Google",
"position": 0,
"deleted_at": "2000-01-23T04:56:07.000+00:00"
},
{
"is_enabled": true,
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label"
},
"en": {
"label": "label"
}
},
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"backoffice_title": "Google",
"position": 0,
"deleted_at": "2000-01-23T04:56:07.000+00:00"
}
],
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "where_did_you_find_us_65b91fdb78781",
"backoffice_title": "Where did you find us?",
"type": "text",
"deleted_at": "2000-01-23T04:56:07.000+00:00"
}
]Fetch a single custom field
Custom field ID
A single custom field
Invalid ID supplied
Custom field not found
GET /private/custom_fields/{custom_field_id} HTTP/1.1
Host: api.bookinglayer.io
Accept: */*
{
"years_past": 1,
"bind_to": "person",
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label",
"helper_text": "helper_text"
},
"en": {
"label": "label",
"helper_text": "helper_text"
}
},
"years_future": 6,
"options": [
{
"is_enabled": true,
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label"
},
"en": {
"label": "label"
}
},
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"backoffice_title": "Google",
"position": 0,
"deleted_at": "2000-01-23T04:56:07.000+00:00"
},
{
"is_enabled": true,
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label"
},
"en": {
"label": "label"
}
},
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"backoffice_title": "Google",
"position": 0,
"deleted_at": "2000-01-23T04:56:07.000+00:00"
}
],
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "where_did_you_find_us_65b91fdb78781",
"backoffice_title": "Where did you find us?",
"type": "text",
"deleted_at": "2000-01-23T04:56:07.000+00:00"
}Delete a single custom field
Custom field ID
Custom field deleted
Invalid ID supplied
DELETE /private/custom_fields/{custom_field_id} HTTP/1.1
Host: api.bookinglayer.io
Accept: */*
[
{
"years_past": 1,
"bind_to": "person",
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label",
"helper_text": "helper_text"
},
"en": {
"label": "label",
"helper_text": "helper_text"
}
},
"years_future": 6,
"options": [
{
"is_enabled": true,
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label"
},
"en": {
"label": "label"
}
},
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"backoffice_title": "Google",
"position": 0,
"deleted_at": "2000-01-23T04:56:07.000+00:00"
},
{
"is_enabled": true,
"updated_at": "2000-01-23T04:56:07.000+00:00",
"translations": {
"de": {
"label": "label"
},
"en": {
"label": "label"
}
},
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"backoffice_title": "Google",
"position": 0,
"deleted_at": "2000-01-23T04:56:07.000+00:00"
}
],
"created_at": "2000-01-23T04:56:07.000+00:00",
"id": "where_did_you_find_us_65b91fdb78781",
"backoffice_title": "Where did you find us?",
"type": "text",
"deleted_at": "2000-01-23T04:56:07.000+00:00"
}
]Last updated