---
title: "Get all bookings"
method: GET
path: "/bookings"
tags: ["Bookings"]
---

# Get all bookings

`GET /bookings`

Get a list of all bookings. A booking is a customer reservation for one or more service time slots - for example, an appointment, an event registration, or a table reservation. Use filters such as `customer_id` and `booking_status` to narrow results. Set `add_booking_items` to include the individual time slot reservations in the response.

## Query parameters

- `count` integer
- `offset` integer
- `sort_field` string
- `sort_direction` 'ASC' | 'DESC'
- `customer_id` string
- `booking_status` string
- `booking_statuses` string[]
- `add_booking_items` 'full' | 'items-only' | 'none'

## Headers

- `Accept-Language` string

## Response `200`

OK

- object
  - `data` object
    - `bookings` Booking[] — Collection of bookings.
      - `booking_id` string — The unique ID of the booking.
      - `customer_id` string — The unique ID of the customer that created the booking. [GET /customers](https://carecloud.readme.io/reference/getcustomers)
      - `booking_items` BookingItem[], required — List of the booking items. Included in response of GET API call only if query parameter `add_booking_items` is `true`.
        - `booking_item_id` string — The unique ID of the booking item.
        - `customer_id` string — The unique ID of the customer. [GET /customers](https://carecloud.readme.io/reference/getcustomers)
        - `time_slot_id` string, required — The unique ID of the booking time slot.
        - `booking_ticket` BookingTicket — Ticket of the booking item. Structure is filled only when query parameter `add_booking_items` has value `full` or `items-only`.
          - `ticket_id` string — The unique ID of the booking ticket.
          - `name` string, required — Name of the booking ticket in language from request header.
          - `created_at` string — Timestamp of the ticket creation. Accepts the format `YYYY-MM-DD HH:MM:SS` or ISO-8601 format (`YYYY-MM-DDTHH:MM:SS`). All times must be in the local timezone.
          - `valid_from` string — Timestamp from which the ticket is valid. Accepts the format `YYYY-MM-DD HH:MM:SS` or ISO-8601 format (`YYYY-MM-DDTHH:MM:SS`). All times must be in the local timezone.
          - `valid_to` string — Timestamp until which the ticket is valid. Accepts the format `YYYY-MM-DD HH:MM:SS` or ISO-8601 format (`YYYY-MM-DDTHH:MM:SS`). All times must be in the local timezone.
          - `state` 0 | 1 — State of the booking ticket. *Possible values are: 0 - blocked / 1 - active*
          - `last_change` string — Date and time of the last change. *(YYYY-MM-DD HH:MM:SS)*
        - `valid_from` string — Date and time when time slot starts. *(YYYY-MM-DD HH:MM:SS)*
        - `valid_to` string — Date and time when time slot ends. *(YYYY-MM-DD HH:MM:SS)*
        - `capacity_taken` integer — How much capacity is taken by the booking item. If not set, value is 1.
        - `booking_item_status` string — The current status of the booking item. If not set, CareCloud uses the default booking status. [GET /booking-statuses](https://carecloud.readme.io/reference/getbookingstatuses)
        - `additional_properties` PropertyRecord[] — List of additional property records.
          - `property_record_id` string — The unique ID of the property record.
          - `property_id` string, required — The unique ID of the property.
          - `property_name` string — Name of the property.
          - `property_value` union — Value of the property record. The format depends on the data type of the property. - **string** – a plain text value: ```json { "property_id": "p1_note", "property_value": "VIP customer" } ``` - **date** – a date string in `YYYY-MM-DD` format: ```json { "property_id": "p1_birth_date", "property_value": "1985-06-15" } ``` - **integer** – a whole number: ```json { "property_id": "p1_visit_count", "property_value": 42 } ``` - **float** – a decimal number: ```json { "property_id": "p1_average_spend", "property_value": 149.90 } ``` - **enum** – a single-item array containing a PropertyItem object: ```json { "property_id": "p1_favourite_color", "property_value": [ { "id": "86e05affc7a7abefcd513ab400", "name": "Blue", "resource_record_id": null, "state": 1 } ] } ``` - **multiselect** – a multi-item array of PropertyItem objects: ```json { "property_id": "p1_favourite_color", "property_value": [ { "id": "86e05affc7a7abefcd513ab400", "name": "Blue", "resource_record_id": null, "state": 1 }, { "id": "81eaeea13b8984a169c490a325", "name": "Green", "resource_record_id": null, "state": 1 } ] } ``` - **custom data type** – the format depends on the specific data type configuration. For example, a serialized JSON object: ```json { "property_id": "p1_address", "property_value": "{\"street\":\"Main St\",\"city\":\"Prague\"}" } ```
            - string
            - number
            - integer
            - boolean
            - unknown[]
              - …
            - object
          - `last_change` string — Date and time of the last change. *(YYYY-MM-DD HH:MM:SS)*
        - `created_at` string, required — Timestamp of the booking item. Accepts the format `YYYY-MM-DD HH:MM:SS` or ISO-8601 format (`YYYY-MM-DDTHH:MM:SS`). All times must be in the local timezone.
        - `state` 0 | 1 | 2 — State of the booking item record. *Possible values are: 0 - deleted / 1 - active / 2 - non active*
        - `last_change` string — Timestamp of the last change. Format: `YYYY-MM-DD HH:MM:SS`. All times are in the local timezone.
      - `booking_status` string — The current status of the booking. If not set, CareCloud uses the default booking status. [GET /booking-statuses](https://carecloud.readme.io/reference/getbookingstatuses)
      - `utm` UTM — UTM structure for data from email campaign.
        - `utm_source` string — Use utm_source to identify a search engine, newsletter name, or other sources. (Example: google).
        - `utm_medium` string — Use utm_medium to identify a medium such as an email or cost-per-click. (Example: cpc).
        - `utm_campaign` string — Used for keyword analysis. Use utm_campaign to identify a specific product promotion or strategic campaign. (Example: utm_campaign=spring_sale).
      - `data` union — Additional data of the booking. Serialized data in JSON.
        - string
        - string[]
        - object
      - `created_at` string, required — Timestamp of the booking. Accepts the format `YYYY-MM-DD HH:MM:SS` or ISO-8601 format (`YYYY-MM-DDTHH:MM:SS`). All times must be in the local timezone.
      - `last_change` string — Date and time of the last change. *(YYYY-MM-DD HH:MM:SS)*
      - `state` 0 | 1 | 2 — State of the booking record. *Possible values are: 0 - deleted / 1 - active / 2 - non active*
    - `total_items` integer — The number of all found bookings.

## Other responses

- `400` — Bad input parameter. The response body's `error.error_data.invalid_params[]` array lists the parameters that caused the failure, each carrying a `reason` code. See the `BadRequestErrorBody` schema for the generic reason taxonomy. Operations with domain-specific business rules document additional reasons at the operation level.
- `401` — The client has invalid credentials or auth token.
- `403` — The client does not exist or the client tried to access an unauthorized property or resource.
- `404` — The resource was not found.
- `405` — The resource does not support the specified HTTP method.
- `429` — Too many requests - more than the resource limit.
- `500` — Server is not working as expected.
- `503` — Temporary state when the service is temporarily unavailable, overloaded or there is a maintenance window.

---

[API](https://skmtc.net/crmcarecloud/apis/rest-api-reference.md) · [All operations](https://skmtc.net/crmcarecloud/apis/rest-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crmcarecloud/rest-api-reference/revisions/329c06dbf8d9/schema)
