---
title: "List Sessions"
method: GET
path: "/shop/sessions"
tags: ["Sessions"]
---

# List Sessions

`GET /shop/sessions`

This endpoint lists all `Session`s.

## Query parameters

- `cancelled` boolean
- `id` string
- `include_bookings` boolean
- `include_cancelled` boolean
- `practitioner_id` string
- `recurrence_group_id` string
- `room_id` string
- `session_type_id` string
- `zone_id` string
- `date` string, date
- `dateFrom` string, date
- `dateTo` string, date
- `page` integer
- `per_page` integer
- `site_id` string
- `start_time_from` string, date-time
- `start_time_to` string, date-time

## Response `200`

The `Session`s were successfully retrieved.

- object
  - `data` SchemasSession[], required
    - `id` string, required — Stable identifier for the session occurrence. A `Session` is one scheduled instance of a `SessionType` — bookings are made against this `id`, not against the underlying type or recurrence group.
    - `bookings` SessionBooking[] — If requested, an array of bookings for this session.
      - `id` string, required — The ID of the session.
      - `checked_in_at` string, date-time, nullable, required — The time this booking was checked in.
      - `checked_out_at` string, date-time, nullable, required — The time this booking was checked out.
      - `customer_id` string, required — The ID of the customer this booking is for.
      - `email` string, required — The email address of the customer.
      - `first_name` string, required — The first name of the customer.
      - `guests` Guest[], required
        - `id` string, object-id, required — Stable identifier for the guest slot on an order. Used to attach intake-form answers, check the guest in or out, and link the slot to a `Customer` once one is resolved.
        - `checked_in_at` string, date-time, nullable, required — ISO-8601 timestamp at which the guest checked in for their visit. `null` until check-in happens.
        - `checked_out_at` string, date-time, nullable, required — ISO-8601 timestamp at which the guest checked out / finished their visit. `null` while the visit is still in progress.
        - `customer_id` string, uuid, nullable, required — The `Customer` the guest slot has been linked to, if any. `null` for walk-ins or anonymous guests that haven't been matched to a customer record yet.
        - `email` string, email, nullable — Email address captured for this guest, used to send the pre-visit intake form and post-visit follow-ups. `null` when no email has been supplied for the slot.
        - `first_name` string, required — The first name of the guest.
        - `intake_form_submission_id` string, object-id — Identifier of the most recent intake-form submission for this guest, if one exists. Use this to fetch the submitted answers from the guest-intake API.
        - `intake_form_complete` boolean, required — Whether the intake form for the guest is complete.
        - `is_lead_booker` boolean, required — Whether the guest is the lead booker.
        - `last_name` string, required — The last name of the guest.
        - `name` string, required — Full display name for the guest — typically `first_name` plus `last_name`, but kept as a separate field so the platform can render it consistently across receipts, intake forms and check-in screens.
      - `intake_forms_completed` boolean, required — Whether the required intake form has been completed.
      - `intake_form_required` boolean, required — Whether the session booking requires an intake form to be completed.
      - `is_no_show` boolean, required — Whether this booking was marked as a no-show.
      - `last_name` string, required — The last name of the customer.
      - `order_id` string, required — The ID of the order associated with this session.
      - `order_item_id` string, required — The ID of the order item associated with this session.
      - `order_ref` string, required — The order reference associated with this session.
      - `organisation_id` string, required — The ID of the organisation the session booking belongs to.
      - `phone` string, required — The customer's phone number.
      - `session_id` string, required — The ID of the session this booking is for.
      - `session_type_id` string, required — The ID of the session type.
      - `session_type_name` string, required — The name of the session type.
      - `site_id` string, required — The ID of the site the session booking belongs to.
      - `stage` 'not_arrived' | 'arrived' | 'in_treatment' | 'checked_out', required — The current stage of the order the session belongs to.
      - `status` 'new' | 'in_progress' | 'confirmed' | 'waitlisted', required — The status of the booking.
      - `created_at` string, date-time, required — A datetime string of when the resource was created.
      - `updated_at` string, date-time, required — A datetime string of when the resource was last updated.
    - `capacity` integer, required — The total capacity of the session.
    - `currency` string, required — The ISO-4217 currency code in lower case.
    - `duration` integer, required — The duration of the session.
    - `end_time` string, date-time, required — The date and time the session ends.
    - `max_baskets` integer, nullable, required — The maximum number of baskets that may have bookings for this session.
    - `num_checked_in` integer, required — If bookings are included, this is the number of bookings that have been checked in.
    - `num_no_show` integer, required — If bookings are included, this is the number of bookings that have marked as no-show.
    - `num_waitlisted` integer, required — The number of customers currently on the waiting list for this session.
    - `organisation_id` string, required — Organisation the session belongs to. Sessions are scoped to a single organisation and are invisible to API callers from other organisations.
    - `practitioner` PractitionerSummary, required — The summary of a `Practitioner` object
      - `id` string, object-id, required — The ID of the practitioner.
      - `name` string, required — The full name of the practitioner.
    - `practitioner_id` string, nullable, required — The practitioner scheduled to lead this session. `null` for sessions that don't require a specific staff member (e.g. a free-access spa slot). Must reference an active practitioner on `site_id`.
    - `price` integer, required — The cost of the session, in the smallest denomination (eg pence or cents).
    - `remaining_capacity` integer, required — The remaining capacity of the session.
    - `room` RoomSummary, required — The summary of a `Room` object
      - `id` string, object-id, required — The ID of the room.
      - `capacity` integer, required
      - `name` string, required — The name of the room.
    - `room_id` string, required — The room the session takes place in. Must reference a room configured on `site_id`. Used by the staff console to colour the session in the schedule view and to enforce per-room capacity caps.
    - `session_type_id` string, required — The `SessionType` this session is an occurrence of. Inherits defaults (default capacity, default duration, default price) from this type unless overridden on the session itself.
    - `session_type_name` string, required — Cached display name copied from the parent `SessionType` at the time the session was created. Useful for reporting where the type may since have been renamed.
    - `site_id` string, required — Site the session is hosted at. Sessions never span more than one site; bookings on the session inherit this `site_id` for rota and revenue-reporting purposes.
    - `start_time` string, date-time, required — The date and time the session starts.
    - `waitlist_enabled` boolean, required — Whether the waitlist is enabled for this session.
    - `max_waitlist_size` integer, nullable, required — The maximum number of customers allowed on the waitlist for this session. Null means the waitlist is unlimited.
    - `created_at` string, date-time, required — The date and time the session was created.
    - `deleted_at` string, date-time — The date and time the session was deleted (cancelled).
    - `updated_at` string, date-time, required — The date and time the session was last updated.
  - `links` PaginationLinks, required — Hypermedia navigation links for paging through a list response. Each property is a fully-qualified URL that preserves the original query string (filters, sort, page size) and only swaps the `page` parameter. `next` and `prev` are `null` at the ends of the result set; `first` and `last` are always present.
    - `first` string, required — The url of the first page for the paginated results set
    - `next` string, nullable, required — The url of the next page for the paginated results set
    - `prev` string, nullable, required — The url of the previous page for the paginated results set
    - `last` string, required — The url of the last page for the paginated results set
  - `meta` PaginationMeta, required — Counts and positional information for the current page of a list response. Use `current_page` and `last_page` to drive pagination UI, `total` for result counts, and `per_page` to confirm the page size the server actually applied (which may differ from the requested value when capped).
    - `from` integer, required — The item number from which this results set starts from
    - `to` integer, required — The item number from which this results set ends at
    - `total` integer, required — The total number of results
    - `current_page` integer, required — The current page number
    - `last_page` integer, required — The page number of the last result set
    - `per_page` integer, required — The number of results per page
    - `path` string, required — The path of this api request

## Other responses

- `401` — The user is unauthenticated

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
