openapi: 3.0.0
info:
title: Momence Public auth host API
description: ''
version: '2.0'
contact: {}
servers:
- url: https://api.momence.com
description: Production API
security:
- OAuth2: []
OAuth2ApiClient: []
tags:
- name: host
paths:
/api/v2/host/appointments/reservations:
get:
operationId: ApiV2HostAppointmentsController_getHostAppointmentReservations
summary: Get all appointment reservations
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- startsAt
type: string
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
- name: includeCancelled
required: false
in: query
schema:
type: boolean
- name: includeCancelledAttendees
required: false
in: query
schema:
type: boolean
- name: isPaid
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/ApiV2HostAppointmentReservationDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/appointments:
get:
operationId: ApiV2HostMembersAppointmentsController_getAppointmentReservations
summary: Get appointments by a specific member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- startsAt
type: string
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
- name: includeCancelled
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberAppointmentReservationDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/active:
get:
operationId: ApiV2HostMembersBoughtMembershipsController_list
summary: Get all active subscriptions and packs of a specific member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: includeFrozen
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/ApiV2HostBoughtMembershipsDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/{boughtMembershipId}/credits:
put:
operationId: ApiV2HostMembersBoughtMembershipsController_updateClassCredits
summary: Update credits of package-events or package-money bought membership for a specific member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostMemberBoughtMembershipsUpdateClassCreditsRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostMemberBoughtMembershipsUpdateClassCreditsResponseDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/{boughtMembershipId}/membership-freeze:
put:
operationId: ApiV2HostMembersBoughtMembershipsController_freezeMembership
summary: Freeze bought membership immediately or schedule freeze/unfreeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2BoughtMembershipFreezeRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/{boughtMembershipId}/membership-schedule-freeze:
put:
operationId: ApiV2HostMembersBoughtMembershipsController_scheduleMembershipFreeze
summary: Schedule bought membership freeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2BoughtMembershipScheduleFreezeRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostMembersBoughtMembershipsController_removeMembershipFreeze
summary: Unfreeze bought membership or remove scheduled freeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/bought-memberships/{boughtMembershipId}/membership-schedule-unfreeze:
put:
operationId: ApiV2HostMembersBoughtMembershipsController_scheduleMembershipUnfreeze
summary: Schedule bought membership unfreeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2BoughtMembershipScheduleUnfreezeRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostMembersBoughtMembershipsController_removeMembershipUnfreeze
summary: Remove bought membership scheduled unfreeze
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: boughtMembershipId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members:
get:
operationId: ApiV2HostMembersController_list
summary: Get members
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- lastSeenAt
- firstSeenAt
- firstName
- lastName
- email
type: string
- name: query
required: false
in: query
description: Search customers by query
schema:
type: string
- name: filterPreset
required: false
in: query
schema:
enum:
- with-active-membership
type: string
- name: staticSegmentId
required: false
in: query
description: Filter customers by static segment ID
schema:
type: integer
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberDto'
description: ''
tags:
- host
security:
- OAuth2: []
post:
operationId: ApiV2HostMembersController_create
summary: Add member
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostMemberCreateRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostMemberCreateResponseDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/list:
post:
operationId: ApiV2HostMembersController_listPost
summary: Get members (with filters)
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostMembersListRequestWithFilterDto'
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberDto'
description: ''
'201':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}:
get:
operationId: ApiV2HostMembersController_get
summary: Get member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostMemberDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/name:
put:
operationId: ApiV2HostMembersController_updateName
summary: Update member name
parameters:
- name: memberId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostMemberUpdateNameRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/phone-number:
put:
operationId: ApiV2HostMembersController_updatePhoneNumber
summary: Update member phone number
parameters:
- name: memberId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostMemberUpdatePhoneNumberRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostMembersController_deleteMemberPhoneNumber
summary: Delete all phone number records for a member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/email:
put:
operationId: ApiV2HostMembersController_updateEmail
summary: Update member e-mail
parameters:
- name: memberId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostMemberUpdateEmailRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/memberships:
get:
operationId: ApiV2HostMembershipsController_list
summary: Get available host memberships
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
- orderNumber
type: string
- name: includeDisabled
required: false
in: query
schema:
type: boolean
- name: onlyFeatured
required: false
in: query
schema:
type: boolean
- name: compatibleWithSessionId
required: false
in: query
schema:
type: integer
- name: compatibleWithAppointmentId
required: false
in: query
schema:
type: integer
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/ApiV2HostMembershipDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/notes:
get:
operationId: ApiV2HostMembersNotesController_list
summary: Get notes for a specific member
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- createdAt
- modifiedAt
type: string
- name: memberId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberNoteDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/sessions:
get:
operationId: ApiV2HostMembersSessionBookingsController_list
summary: Get session bookings by a specific member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- startsAt
type: string
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
- name: includeCancelled
required: false
in: query
schema:
type: boolean
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostMemberSessionBookingDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/members/{memberId}/tags/{tagId}:
post:
operationId: ApiV2HostMemberTagsController_assign
summary: Assign a tag to a member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: tagId
required: true
in: path
schema:
type: number
responses:
'201':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostMemberTagsController_unassign
summary: Unassign a tag from a member
parameters:
- name: memberId
required: true
in: path
schema:
type: number
- name: tagId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sales:
get:
operationId: ApiV2HostSalesController_list
summary: Get sales
description: "**Note:** This is an experimental feature, please contact support if you want to utilize this endpoint. \n \nThis endpoint returns a list of host sales. \nThe default sorting mode is DESC (newest sales first), but you can also specify ASC (oldest sales first). \nFor session and appointment sales, additional meta data is returned in the response."
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostSaleDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/session-bookings/{bookingId}/check-in:
post:
operationId: ApiV2HostSessionBookingCheckInController_addSessionBookingCheckIn
summary: Mark session booking as checked-in
parameters:
- name: bookingId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
delete:
operationId: ApiV2HostSessionBookingCheckInController_removeSessionBookingCheckIn
summary: Mark session booking as not checked-in
parameters:
- name: bookingId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/session-bookings/{bookingId}:
delete:
operationId: ApiV2HostSessionBookingController_cancelSessionBooking
summary: Cancel session booking
description: "Cancel a single session booking identified by its ID. \n**Tip:** You can find the ID within the *ApiV2HostSessionBookingDto* object (`id` field) returned from the session booking list endpoint. \n**Note:** This endpoint does not cancel or impact any recurring bookings. There is a separate endpoint for canceling those."
parameters:
- name: bookingId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionBookingCancelRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/session-recurring-bookings/{bookingId}:
delete:
operationId: ApiV2HostSessionRecurringBookingController_cancelRecurringSessionBooking
summary: Cancel recurring session booking
description: "Cancel recurring session booking identified by its ID and related session bookings. \n**Tip:** You can find the ID within the ApiV2HostSessionBookingDto object (`recurringBookingId` field) returned from the session booking list endpoint. \n**Note:** This endpoint cancels both recurring booking and individual bookings originating from the same. \nUser can provide more specific filters to specify which bookings will be cancelled."
parameters:
- name: bookingId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionRecurringBookingCancelRequestDto'
responses:
'200':
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions:
get:
operationId: ApiV2HostSessionsController_getSessions
summary: Returns a list of sessions
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 200
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
- startsAt
- endsAt
type: string
- name: includeCancelled
required: false
in: query
description: also include cancelled sessions
schema:
type: boolean
- name: types
required: false
in: query
description: only return specified session types
schema:
type: array
items:
type: string
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
- name: teacherId
required: false
in: query
schema:
type: integer
- name: locationId
required: false
in: query
schema:
type: integer
- name: startAfter
required: false
in: query
schema:
type: string
- name: startBefore
required: false
in: query
schema:
type: string
- name: endAfter
required: false
in: query
schema:
type: string
- name: endBefore
required: false
in: query
schema:
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostSessionDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions/{sessionId}:
get:
operationId: ApiV2HostSessionsController_getSession
summary: Returns a session detail
parameters:
- name: sessionId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionDetailDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions/{sessionId}/bookings:
get:
operationId: ApiV2HostSessionsController_getSessionBookings
summary: Returns a list of session bookings
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- createdAt
- firstName
- lastName
type: string
- name: includeCancelled
required: false
in: query
description: also include cancelled bookings
schema:
type: boolean
- name: sessionId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostSessionBookingDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions/{sessionId}/bookings/free:
post:
operationId: ApiV2HostSessionsController_addToSessionForFree
summary: Add a member to a session for free
description: "This endpoint allows staff user to add a member to a session for free \n \n| Error | Description |\n| --- | --- |\n| err-member-not-found | member not found |\n| err-member-not-assigned-to-host | member is not assigned to the host |\n| err-session-not-found | session not found |\n| err-session-not-provided-by-host | session not provided by the host |\n| err-customer-age-prevents-from-action | member is not eligible due to age restrictions |\n| err-missing-customer-date-of-birth | member is missing date of birth value |\n| err-missing-date-of-birth-setting | host is missing date of birth settings |\n| err-invalid-date-of-birth-value | member has invalid date of birth value |\n| err-session-not-recurring | session is not a recurring session |"
parameters:
- name: sessionId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostFreeSessionBookingRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostFreeSessionBookingResponseDto'
description: ''
'400':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/HostFreeSessionBookingErrorResponseDto'
tags:
- host
security:
- OAuth2: []
/api/v2/host/sessions/{sessionId}/waitlist/bookings:
post:
operationId: ApiV2HostSessionsController_addToWaitlist
summary: Add a member to a session waitlist
description: "This endpoint allows staff user to add a member to a session waitlist \n \n**NOTE**: You can use the optional `useBoughtMembershipIds` field to provide a list of bought memberships that should be attempted to use during booking from the waitlist. If you don't provide anything here the best matching membership will be used automatically. \n \n| Error | Description |\n| --- | --- |\n| err-waitlist-not-allowed | session does not have waitlist enabled |\n| err-waitlist-full | session waitlist is full |\n| err-member-already-on-waitlist | member is already on the waitlist |\n| err-member-not-found | member not found |\n| err-member-not-assigned-to-host | member is not assigned to the host |\n| err-session-not-found | session not found |\n| err-session-not-provided-by-host | session not provided by the host |\n| err-customer-age-prevents-from-action | member is not eligible due to age restrictions |\n| err-missing-customer-date-of-birth | member is missing date of birth value |\n| err-missing-date-of-birth-setting | host is missing date of birth settings |\n| err-invalid-date-of-birth-value | member has invalid date of birth value |"
parameters:
- name: sessionId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionWaitlistBookingRequestDto'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionWaitlistBookingResponseDto'
description: ''
'400':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/HostSessionWaitlistBookingErrorResponseDto'
tags:
- host
security:
- OAuth2: []
/api/v2/host/tags:
get:
operationId: ApiV2HostTagsController_list
summary: List available tags
parameters:
- name: page
required: true
in: query
description: Starts at 0
schema:
minimum: 0
example: 0
type: integer
- name: pageSize
required: true
in: query
schema:
minimum: 1
maximum: 100
example: 10
type: integer
- name: sortOrder
required: false
in: query
schema:
enum:
- ASC
- DESC
type: string
- name: sortBy
required: false
in: query
description: Field to sort by
schema:
enum:
- name
type: string
responses:
'200':
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/PaginatedResponseDto'
- required:
- payload
properties:
payload:
type: array
items:
$ref: '#/components/schemas/HostTagDto'
description: ''
tags:
- host
security:
- OAuth2: []
/api/v2/host/reports:
post:
operationId: ApiV2HostReportRunsController_createReportRun
summary: Initiate report generation
description: 'Initiates generation of a report. Use "Retrieve a report" endpoint to retrieve the report data once the generation is completed.
**Rate limit:** 100 req / 1 d'
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostCreateReportRunRequestDto'
examples:
createTotalSalesReport:
summary: Create Total Sales report
value:
parameters:
reportType: total-sales
hostId: 745
dateRange:
from: 2026-01-01 00:00:00+00:00
to: 2026-01-30 00:00:00+00:00
includeRefunds: true
saleTypes:
- membership
createFranchiseGiftCardReconciliationReport:
summary: Create Franchise Gift Card Reconciliation report
value:
parameters:
reportType: franchise-gift-card-reconciliation
hostId: 745
dateRange:
from: 2026-01-01 00:00:00+00:00
to: 2026-01-30 00:00:00+00:00
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostCreateReportRunResponseDto'
description: ''
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostCreateReportRunResponseDto'
tags:
- host
security:
- OAuth2: []
/api/v2/host/reports/{reportRunId}:
get:
operationId: ApiV2HostReportRunsController_getReportRun
summary: Retrieve a report
description: '**Rate limit:** 1000 req / 1 d'
parameters:
- name: reportRunId
required: true
in: path
schema:
type: number
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2HostGetReportRunResponseDto'
examples:
getReportRunTotalSalesRunning:
summary: Get running Total Sales report
value:
id: 1
status: running
parameters:
reportType: total-sales
hostId: 745
dateRange:
from: 2026-01-01 00:00:00+00:00
to: 2026-01-30 00:00:00+00:00
includeRefunds: true
saleTypes:
- membership
data: null
getReportRunTotalSalesCompletedEmptyItems:
summary: Get completed Total Sales report (empty items)
value:
id: 1
status: completed
parameters:
reportType: total-sales
hostId: 745
dateRange:
from: 2026-01-01 00:00:00+00:00
to: 2026-01-30 00:00:00+00:00
includeRefunds: true
saleTypes:
- membership
data:
reportType: total-sales
items: []
getReportRunTotalSalesCompletedNonEmptyItems:
summary: Get completed Total Sales report (non-empty items)
value:
id: 1
status: completed
parameters:
reportType: total-sales
hostId: 745
dateRange:
from: 2026-01-01 00:00:00+00:00
to: 2026-01-30 00:00:00+00:00
includeRefunds: true
saleTypes:
- membership
data:
reportType: total-sales
items:
- memberId: 10000001
customerName: Customer Name
customerEmail: customer@example.com
payingCustomerName: Customer Name
payingCustomerEmail: customer@example.com
payingMemberId: 10000001
saleItemId: 20000001
paymentCategory: subscription
membershipType: subscription
paymentDate: 2026-01-01 23:31:06.515000+00:00
serviceDate: 2026-01-01 23:31:06.882000+00:00
paymentValue: 359
paidInMoneyCredits: 359
paymentVat: 60
paymentItem: Gold Unlimited Membership
paymentStatus: succeeded
paymentMethod: package-money
paymentTransactionId: 30000001
stripeToken: package-money
currency: null
refunded: 0
soldBy: staff@example.com
location: null
transactionItems:
- paymentTransactionItemId: 40000001
paymentTransactionId: 30000001
membershipType: package-money
membershipName: null
paymentMethod: membership
paidInCurrency: 0
paidInMoneyCredits: 359
vatAmountInCurrency: 60
homeLocation: Location XXXXX
note: null
saleReference: Receipt-YYYY-XXX
paymentMethodWeight: 1
saleItemId: 20000001
saleReference: Receipt-YYYY-XXX
details:
boughtMembershipId: 50000001
membershipId: 60000001
membershipType: subscription
description: ''
tags:
- host
security:
- OAuth2: []
components:
schemas:
ApiV2HostAppointmentReservationDto:
type: object
properties:
id:
type: integer
createdAt:
type: string
cancelledAt:
type: string
nullable: true
startsAt:
type: string
endsAt:
type: string
durationInMinutes:
type: number
priceInCurrency:
type: number
depositInCurrency:
type: string
nullable: true
isDepositPaid:
type: boolean
currency:
type: string
isPaid:
type: boolean
capacity:
type: integer
nullable: true
example: 10
minimum: 1
board:
$ref: '#/components/schemas/ApiV2AppointmentReservationBoardDto'
service:
$ref: '#/components/schemas/ApiV2AppointmentReservationServiceDto'
serviceVariant:
nullable: true
allOf:
- $ref: '#/components/schemas/BasicEntityIdentifierDto'
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
additionalTeacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
isInPerson:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
appointmentAttendees:
type: array
items:
$ref: '#/components/schemas/ApiV2HostAppointmentReservationAttendeeDto'
required:
- id
- createdAt
- cancelledAt
- startsAt
- endsAt
- durationInMinutes
- priceInCurrency
- depositInCurrency
- isDepositPaid
- currency
- isPaid
- capacity
- board
- service
- serviceVariant
- teacher
- additionalTeacher
- isInPerson
- inPersonLocation
- onlineStreamUrl
- onlineStreamPassword
- appointmentAttendees
TemplateIdDto:
type: object
properties:
templateId:
type: integer
required:
- templateId
HostMemberSessionBookingDto:
type: object
properties:
id:
type: integer
createdAt:
type: string
format: date-time
roomSpotId:
type: integer
nullable: true
checkedIn:
type: boolean
cancelledAt:
type: string
nullable: true
format: date-time
session:
$ref: '#/components/schemas/MemberSessionBookingSessionDto'
required:
- id
- createdAt
- roomSpotId
- checkedIn
- cancelledAt
- session
LocationIdDto:
type: object
properties:
locationId:
type: integer
required:
- locationId
ApiV2HostReportRunCourseSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- course
type: string
x-enumNames:
- COURSE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunMembershipCancellationFeeSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- membership-cancellation-fee
type: string
x-enumNames:
- MEMBERSHIP_CANCELLATION_FEE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunAppointmentSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- appointment
type: string
x-enumNames:
- APPOINTMENT
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
HostSaleDto:
type: object
properties:
id:
type: integer
example: 1
saleDate:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
items:
type: array
items:
$ref: '#/components/schemas/HostSaleItemDto'
paymentTransaction:
$ref: '#/components/schemas/HostSalePaymentTransactionDto'
required:
- id
- saleDate
- items
- paymentTransaction
HostSaleSessionDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Monday Morning Yoga
startsAt:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-01-01T01:00:00Z'
format: date-time
required:
- id
- name
- startsAt
- endsAt
TeacherIdDto:
type: object
properties:
teacherId:
type: integer
required:
- teacherId
ApiV2HostReportRunRefundSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- refund
type: string
x-enumNames:
- REFUND
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
SessionsCountDto:
type: object
properties:
type:
enum:
- moreThan
- lessThan
- exactly
type: string
value:
type: integer
required:
- type
- value
CustomDropdownFieldDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- equalsTo
- isEmpty
- isNotEmpty
type: string
value:
type: string
nullable: true
required:
- fieldId
- type
TotalsDto:
type: object
properties:
amountReceivable:
type: number
amountPayable:
type: number
balance:
type: number
required:
- amountReceivable
- amountPayable
- balance
CustomFieldsDto:
type: object
properties:
date:
type: array
items:
$ref: '#/components/schemas/CustomDateFieldDto'
number:
type: array
items:
$ref: '#/components/schemas/CustomNumberFieldDto'
text:
type: array
items:
$ref: '#/components/schemas/CustomTextFieldDto'
dropdown:
type: array
items:
$ref: '#/components/schemas/CustomDropdownFieldDto'
boolean:
type: array
items:
$ref: '#/components/schemas/CustomBooleanFieldDto'
ApiV2HostReportRunProductSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- product
type: string
x-enumNames:
- PRODUCT
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostMemberBoughtMembershipsUpdateClassCreditsResponseDto:
type: object
properties:
eventCreditsLeft:
type: number
description: Updated number of event credits left, valid for PACKAGE_EVENTS
example: 5.5
moneyCreditsLeft:
type: number
description: Updated number of money credits left, valid for PACKAGE_MONEY
example: 99.99
CustomDateFieldDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- after
- before
- 'on'
- between
- isEmpty
- isNotEmpty
type: string
value:
type: string
value2:
type: string
yearExcluded:
type: boolean
required:
- fieldId
- type
HostSaleAppointmentDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: Stretching with John
required:
- id
- name
HostSaleMemberDto:
type: object
properties:
id:
type: integer
example: 1
firstName:
type: string
example: John
lastName:
type: string
example: Doe
required:
- id
- firstName
- lastName
ApiV2BoughtMembershipFreezeDto:
type: object
properties:
freezedAt:
type: string
nullable: true
format: date-time
unfreezedScheduledAt:
type: string
nullable: true
format: date-time
unfrozenAt:
type: string
nullable: true
format: date-time
remainingFreezedMinutes:
type: integer
nullable: true
scheduledFreezeAt:
type: string
nullable: true
format: date-time
required:
- freezedAt
- unfreezedScheduledAt
- unfrozenAt
- remainingFreezedMinutes
- scheduledFreezeAt
HostSaleProductVariantDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: M
required:
- id
- name
CustomBooleanFieldDto:
type: object
properties:
fieldId:
type: integer
value:
type: string
required:
- fieldId
- value
ApiV2HostReportRunEventSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- event
type: string
x-enumNames:
- EVENT
eventType:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
x-enumNames:
- PRIVATE
- SPECIAL_EVENT
- SPECIAL_EVENT_NEW
- RETREAT
- FITNESS
- COURSE
- COURSE_CLASS
- SEMESTER
- RECITAL
eventIsSemesterClass:
type: boolean
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- eventType
- eventIsSemesterClass
- details
PaginatedResponseDto:
type: object
properties:
pagination:
$ref: '#/components/schemas/PaginatedResponseDataDto'
required:
- pagination
MemberSessionBookingSessionDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Stretching with John
type:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
example: fitness
x-enumNames:
- PRIVATE
- SPECIAL_EVENT
- SPECIAL_EVENT_NEW
- RETREAT
- FITNESS
- COURSE
- COURSE_CLASS
- SEMESTER
- RECITAL
description:
type: string
nullable: true
example: Our program is designed to help you increase your flexibility and strength.
startsAt:
type: string
example: '2021-08-01T10:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-08-01T11:00:00Z'
format: date-time
durationInMinutes:
type: integer
example: 60
minimum: 0
capacity:
type: integer
nullable: true
example: 10
minimum: 0
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
isRecurring:
type: boolean
example: false
isInPerson:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
bannerImageUrl:
type: string
nullable: true
example: https://example.com/banner.jpg
hostPhotoUrl:
type: string
nullable: true
example: https://example.com/host.jpg
isLocationPrivate:
type: boolean
example: false
required:
- id
- name
- type
- description
- startsAt
- endsAt
- durationInMinutes
- capacity
- teacher
- isRecurring
- isInPerson
- inPersonLocation
- onlineStreamUrl
- onlineStreamPassword
- bannerImageUrl
- hostPhotoUrl
- isLocationPrivate
HostSaleItemDto:
type: object
properties:
id:
type: integer
example: 1
saleItemId:
type: integer
example: 1
itemType:
enum:
- membership
- session
- appointment
- product
- video
- course
- gift-card
- monthly-subscription
- custom-member-payment-plan-installment
- money-credit
- event-credit
- auto-attendance-penalty
- auto-attendance-penalty-retry-fee
- stripe-refund
- refund
- tips
- appointment-deposit
- tuition-installment
- tuition-registration-fee
- appointment-addon
- open-area-visit
- membership-freeze-fee
- membership-renewal-retry-fee
- membership-cancellation-fee
- membership-transfer-fee
- membership-joining-fee
- session-addon
type: string
example: membership
x-enumNames:
- MEMBERSHIP
- SESSION
- APPOINTMENT
- PRODUCT
- VIDEO
- COURSE
- GIFT_CARD
- MONTHLY_SUBSCRIPTION
- CUSTOM_MEMBER_PAYMENT_PLAN_INSTALLMENT
- MONEY_CREDIT
- EVENT_CREDIT
- AUTO_ATTENDANCE_PENALTY
- AUTO_ATTENDANCE_PENALTY_RETRY_FEE
- STRIPE_REFUND
- REFUND
- TIPS
- APPOINTMENT_DEPOSIT
- TUITION_INSTALLMENT
- TUITION_REGISTRATION_FEE
- APPOINTMENT_ADDON
- OPEN_AREA_VISIT
- MEMBERSHIP_FREEZE_FEE
- MEMBERSHIP_RENEWAL_RETRY_FEE
- MEMBERSHIP_CANCELLATION_FEE
- MEMBERSHIP_TRANSFER_FEE
- MEMBERSHIP_JOINING_FEE
- SESSION_ADDON
itemName:
type: string
example: Monthly Membership for Johns
descriptiveItemName:
type: string
example: Monthly Membership for Johns
payingMember:
$ref: '#/components/schemas/HostSaleMemberDto'
targetMember:
$ref: '#/components/schemas/HostSaleMemberDto'
session:
$ref: '#/components/schemas/HostSaleSessionDto'
appointment:
$ref: '#/components/schemas/HostSaleAppointmentDto'
product:
$ref: '#/components/schemas/HostSaleProductDto'
productVariant:
$ref: '#/components/schemas/HostSaleProductVariantDto'
openArea:
$ref: '#/components/schemas/HostSaleOpenAreaDto'
quantity:
type: number
example: 1
unitPriceExcludingTaxInCurrency:
type: string
example: '9.99'
unitTaxAmountInCurrency:
type: string
example: '0.43'
required:
- id
- saleItemId
- itemType
- itemName
- descriptiveItemName
- payingMember
- targetMember
- quantity
- unitPriceExcludingTaxInCurrency
- unitTaxAmountInCurrency
ApiV2HostMembersListRequestWithFilterDto:
type: object
properties:
page:
type: integer
description: Starts at 0
example: 0
minimum: 0
pageSize:
type: integer
example: 10
minimum: 1
maximum: 100
sortOrder:
type: string
enum:
- ASC
- DESC
sortBy:
type: string
description: Field to sort by
enum:
- lastSeenAt
- firstSeenAt
- firstName
- lastName
- email
query:
type: string
description: Search customers by query
filterPreset:
type: string
enum:
- with-active-membership
staticSegmentId:
type: integer
description: Filter customers by static segment ID
filter:
$ref: '#/components/schemas/HostCustomersListFilterDto'
required:
- page
- pageSize
HostSessionBookingDto:
type: object
properties:
id:
type: integer
member:
$ref: '#/components/schemas/MemberInfoDto'
roomSpotId:
type: integer
nullable: true
checkedIn:
type: boolean
ticketsBought:
type: integer
createdAt:
type: string
format: date-time
isRecurring:
type: boolean
example: false
recurringBookingId:
type: integer
nullable: true
cancelledAt:
type: string
nullable: true
format: date-time
required:
- id
- member
- roomSpotId
- checkedIn
- ticketsBought
- createdAt
- isRecurring
- recurringBookingId
- cancelledAt
CustomerTagsDto:
type: object
properties:
type:
nullable: true
enum:
- and
- or
type: string
tags:
type: array
items:
type: integer
customerHaveTag:
enum:
- have
- not-have
type: string
required:
- type
- tags
HostSessionWaitlistBookingResponseDto:
type: object
properties:
waitlistBookingId:
type: integer
example: 1
required:
- waitlistBookingId
HostFreeSessionBookingRequestDto:
type: object
properties:
memberId:
type: integer
example: 1
createRecurringBooking:
type: boolean
example: true
required:
- memberId
HostSessionBookingCancelRequestDto:
type: object
properties:
refund:
type: boolean
disableNotifications:
type: boolean
isLateCancellation:
type: boolean
required:
- refund
- disableNotifications
- isLateCancellation
HostMembershipBasicDto:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: Monthly Membership
description:
type: string
nullable: true
example: Monthly membership with unlimited access to all classes.
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
locationId:
type: integer
nullable: true
example: null
disabled:
type: boolean
description: Indicates that the membership was disabled
example: false
autoRenewing:
type: boolean
description: Indicates that membership renews after specific interval
example: true
minimumAutoRenews:
type: integer
nullable: true
description: How many times membership has to renew before user can cancel renewal
example: null
eventCredits:
type: integer
nullable: true
description: For PACKAGE_EVENTS memberships, defines how many event credits are included
example: null
moneyCredits:
type: number
nullable: true
description: For PACKAGE_MONEY memberships, defines how much money is included
example: null
duration:
type: integer
nullable: true
description: For SUBSCRIPTION this is auto renew duration, for PACKAGE_* this is expiration time
example: 1
durationUnit:
nullable: true
enum:
- days
- months
- years
type: string
example: months
x-enumNames:
- DAYS
- MONTHS
- YEARS
isActivatedOnFirstUse:
type: boolean
description: If set to false, membership is activated upon purchase. When set to true, membership is activated at the moment of the first purchase. When the purchase is for booking in the future, the activation date is set to the booking date.
example: false
activationDeadlineInDays:
type: integer
nullable: true
description: Only applicable when isActivatedOnFirstUse=true. If set, the member must activate the membership within this many days of purchase or it expires automatically.
example: 21
hasFreeTrial:
type: boolean
example: false
freeTrialDurationInDays:
type: integer
example: 7
contractAgreement:
type: string
nullable: true
example: Contract agreement text
order:
type: integer
example: 1
isIntroOffer:
type: boolean
example: false
usageLimitForSessions:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. Maximum number of sessions customer can book with this membership during one renewal period, not used when combinedUsageLimitEnabled=true
example: 5
usageLimitForAppointments:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. Maximum number of appointments customer can book with this membership during one renewal period, not used when combinedUsageLimitEnabled=true
example: 2
combinedUsageLimitEnabled:
type: boolean
description: Only applicable for SUBSCRIPTION. The usage limits of the memberships are applied to sum of both bookings and appointments.
example: false
combinedUsageLimit:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. Combined maximum number of bookings and appointments customer can book with this membership during one renewal period, only used when combinedUsageLimitEnabled=true
example: null
usageLimitRenewalEnabled:
type: boolean
description: Only applicable for SUBSCRIPTION. Calculate usage limits differently to renewal duration.
example: false
usageLimitRenewalDuration:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. Interval for which the usage limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
usageLimitRenewalDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: Only applicable for SUBSCRIPTION. Interval for which the usage limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
usageLimitRolloverEnabled:
type: boolean
description: Only applicable for SUBSCRIPTION. When true and customer doesn't use reach their usage limits, the rest is transferred to the customer according to usageLimitRolloverMode
example: false
usageLimitRolloverMode:
nullable: true
enum:
- next-renewal
- event-credits
type: string
description: Only applicable for SUBSCRIPTION. How should extra usage limits be transferred to customer, either as package or as addition to next renewal period. Only used when usageLimitRolloverEnabled=true
example: null
x-enumNames:
- NEXT_RENEWAL
- EVENT_CREDITS
usageLimitRolloverExpirationDuration:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. When should the extra limits / package expire after rolling over. Only used when usageLimitRolloverEnabled=true
example: null
usageLimitRolloverExpirationDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: Only applicable for SUBSCRIPTION. When should the extra limits / package expire after rolling over. Only used when usageLimitRolloverEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
required:
- id
- name
- description
- type
- locationId
- disabled
- autoRenewing
- minimumAutoRenews
- eventCredits
- moneyCredits
- duration
- durationUnit
- isActivatedOnFirstUse
- activationDeadlineInDays
- hasFreeTrial
- freeTrialDurationInDays
- contractAgreement
- order
- isIntroOffer
- usageLimitForSessions
- usageLimitForAppointments
- combinedUsageLimitEnabled
- combinedUsageLimit
- usageLimitRenewalEnabled
- usageLimitRenewalDuration
- usageLimitRenewalDurationUnit
- usageLimitRolloverEnabled
- usageLimitRolloverMode
- usageLimitRolloverExpirationDuration
- usageLimitRolloverExpirationDurationUnit
FutureBookingsDto:
type: object
properties:
count:
$ref: '#/components/schemas/FutureBookingsCountDto'
dateType:
enum:
- fixed
- flexible
type: string
startDate:
type: string
nullable: true
endDate:
type: string
nullable: true
timeUnit:
enum:
- days
- weeks
- months
type: string
timeUnitNumber:
type: integer
required:
- count
ApiV2HostMemberCreateRequestDto:
type: object
properties:
email:
type: string
minLength: 1
maxLength: 100
firstName:
type: string
minLength: 1
maxLength: 100
lastName:
type: string
minLength: 1
maxLength: 100
phoneNumber:
type: string
homeLocationId:
type: integer
required:
- email
- firstName
- lastName
PaymentTransactionItemDto:
type: object
properties:
id:
type: integer
createdAt:
type: string
format: date-time
isAmountReceivable:
type: boolean
transactionHostName:
type: string
giftCardPurchaseHostName:
type: string
giftCardPurchaseHostId:
type: integer
giftCardCode:
type: string
paidInCurrency:
type: number
required:
- id
- createdAt
- isAmountReceivable
- transactionHostName
- giftCardPurchaseHostName
- giftCardPurchaseHostId
- giftCardCode
- paidInCurrency
ApiV2HostMembershipDto:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: Monthly Membership
description:
type: string
nullable: true
example: Monthly membership with unlimited access to all classes.
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
locationId:
type: integer
nullable: true
example: null
disabled:
type: boolean
description: Indicates that the membership was disabled and shouldn't be shown
example: false
autoRenewing:
type: boolean
description: Indicates that membership renews after specific interval
example: true
minimumAutoRenews:
type: integer
nullable: true
description: How many times membership has to renew before user can cancel renewal
example: null
eventCredits:
type: integer
nullable: true
description: For PACKAGE_EVENTS memberships, defines how many event credits are included
example: null
moneyCredits:
type: number
nullable: true
description: For PACKAGE_MONEY memberships, defines how much money is included
example: null
duration:
type: integer
nullable: true
description: For SUBSCRIPTION this is auto renew duration, for PACKAGE_* this is expiration time
example: 1
durationUnit:
nullable: true
enum:
- days
- months
- years
type: string
example: months
x-enumNames:
- DAYS
- MONTHS
- YEARS
isActivatedOnFirstUse:
type: boolean
description: If set to false, membership is activated upon purchase. When set to true, membership is activated at the moment of the first purchase. When the purchase is for booking in the future, the activation date is set to the booking date.
example: false
activationDeadlineInDays:
type: integer
nullable: true
description: Only applicable when isActivatedOnFirstUse=true. If set, the member must activate the membership within this many days of purchase or it expires automatically.
example: 21
hasFreeTrial:
type: boolean
example: false
freeTrialDurationInDays:
type: integer
example: 7
contractAgreement:
type: string
nullable: true
example: Contract agreement text
order:
type: integer
example: 1
isIntroOffer:
type: boolean
example: false
usageLimitForSessions:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. Maximum number of sessions customer can book with this membership during one renewal period, not used when combinedUsageLimitEnabled=true
example: 5
usageLimitForAppointments:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. Maximum number of appointments customer can book with this membership during one renewal period, not used when combinedUsageLimitEnabled=true
example: 2
combinedUsageLimitEnabled:
type: boolean
description: Only applicable for SUBSCRIPTION. The usage limits of the memberships are applied to sum of both bookings and appointments.
example: false
combinedUsageLimit:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. Combined maximum number of bookings and appointments customer can book with this membership during one renewal period, only used when combinedUsageLimitEnabled=true
example: null
usageLimitRenewalEnabled:
type: boolean
description: Only applicable for SUBSCRIPTION. Calculate usage limits differently to renewal duration.
example: false
usageLimitRenewalDuration:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. Interval for which the usage limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
usageLimitRenewalDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: Only applicable for SUBSCRIPTION. Interval for which the usage limits are calculated, only used when usageLimitRenewalEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
usageLimitRolloverEnabled:
type: boolean
description: Only applicable for SUBSCRIPTION. When true and customer doesn't use reach their usage limits, the rest is transferred to the customer according to usageLimitRolloverMode
example: false
usageLimitRolloverMode:
nullable: true
enum:
- next-renewal
- event-credits
type: string
description: Only applicable for SUBSCRIPTION. How should extra usage limits be transferred to customer, either as package or as addition to next renewal period. Only used when usageLimitRolloverEnabled=true
example: null
x-enumNames:
- NEXT_RENEWAL
- EVENT_CREDITS
usageLimitRolloverExpirationDuration:
type: number
nullable: true
description: Only applicable for SUBSCRIPTION. When should the extra limits / package expire after rolling over. Only used when usageLimitRolloverEnabled=true
example: null
usageLimitRolloverExpirationDurationUnit:
nullable: true
enum:
- days
- months
- years
type: string
description: Only applicable for SUBSCRIPTION. When should the extra limits / package expire after rolling over. Only used when usageLimitRolloverEnabled=true
example: null
x-enumNames:
- DAYS
- MONTHS
- YEARS
startDate:
type: string
nullable: true
description: Explicit start date for memberships that have specific duration
example: '2022-01-01T00:00:00Z'
format: date-time
endDate:
type: string
nullable: true
description: Explicit end date for memberships that have specific duration
example: '2022-02-01T00:00:00Z'
format: date-time
featured:
type: boolean
description: Indicates that membership should be featured on checkout
example: false
priceType:
enum:
- fixed-price
- dynamic
type: string
example: fixed-price
x-enumNames:
- FIXED
- DYNAMIC
price:
type: number
nullable: true
description: Membership price for FIXED priceType
example: 955
minimumPrice:
type: number
nullable: true
description: Minimum membership price for DYNAMIC priceType
example: null
maximumPrice:
type: number
nullable: true
description: Maximum membership price for DYNAMIC priceType
example: null
recommendedPrice:
type: number
nullable: true
description: Recommended membership price for DYNAMIC priceType
example: null
priceIncludesTax:
type: boolean
description: Indicates if tax is already included in the price
example: true
taxRateInPercent:
type: number
nullable: true
description: Tax rate in percents
example: 20
freeTrialPrice:
type: number
description: Free trial price
example: 199
tags:
type: array
items:
$ref: '#/components/schemas/HostTagDto'
required:
- id
- name
- description
- type
- locationId
- disabled
- autoRenewing
- minimumAutoRenews
- eventCredits
- moneyCredits
- duration
- durationUnit
- isActivatedOnFirstUse
- activationDeadlineInDays
- hasFreeTrial
- freeTrialDurationInDays
- contractAgreement
- order
- isIntroOffer
- usageLimitForSessions
- usageLimitForAppointments
- combinedUsageLimitEnabled
- combinedUsageLimit
- usageLimitRenewalEnabled
- usageLimitRenewalDuration
- usageLimitRenewalDurationUnit
- usageLimitRolloverEnabled
- usageLimitRolloverMode
- usageLimitRolloverExpirationDuration
- usageLimitRolloverExpirationDurationUnit
- startDate
- endDate
- featured
- priceType
- price
- minimumPrice
- maximumPrice
- recommendedPrice
- priceIncludesTax
- taxRateInPercent
- freeTrialPrice
- tags
ApiV2BoughtMembershipFreezeRequestDto:
type: object
properties:
freezeType:
enum:
- not_set
- now
- scheduled
- before_renewal
type: string
x-enumNames:
- NOT_SET
- NOW
- SCHEDULED
- BEFORE_RENEWAL
freezeAt:
type: string
nullable: true
format: date-time
unfreezeType:
enum:
- not_set
- scheduled
type: string
x-enumNames:
- NOT_SET
- SCHEDULED
unfreezeAt:
type: string
nullable: true
format: date-time
reason:
type: string
nullable: true
required:
- freezeType
- freezeAt
- unfreezeType
- unfreezeAt
ApiV2HostReportRunMembershipRenewalRetryFeeSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- membership-renewal-retry-fee
type: string
x-enumNames:
- MEMBERSHIP_RENEWAL_RETRY_FEE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2AppointmentReservationBoardDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Yoga Private Appointments
required:
- id
- name
ApiV2HostReportRunPaymentPlanInstallmentSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- payment-plan-installment
type: string
x-enumNames:
- PAYMENT_PLAN_INSTALLMENT
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
HostMemberDto:
type: object
properties:
id:
type: integer
example: 5
firstName:
type: string
example: John
lastName:
type: string
example: Doe
email:
type: string
example: john.doe@mail.example.com
phoneNumber:
type: string
nullable: true
example: '1234567890'
pictureUrl:
type: string
nullable: true
example: https://example.com/picture.jpg
firstSeen:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
lastSeen:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
visits:
$ref: '#/components/schemas/MemberVisitsDto'
customerFields:
type: array
items:
$ref: '#/components/schemas/HostMemberCustomerFieldDto'
customerTags:
type: array
items:
$ref: '#/components/schemas/HostTagDto'
required:
- id
- firstName
- lastName
- email
- phoneNumber
- pictureUrl
- firstSeen
- lastSeen
- visits
- customerFields
- customerTags
ApiV2HostReportRunAppointmentAddonSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- appointment
type: string
x-enumNames:
- APPOINTMENT
details:
type: object
additionalProperties: true
isAddonItem:
type: number
enum:
- true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
- isAddonItem
HostMemberUpdatePhoneNumberRequestDto:
type: object
properties:
phoneNumber:
type: string
required:
- phoneNumber
HostSessionWaitlistBookingErrorResponseDto:
type: object
properties:
type:
type: string
enum:
- err-member-not-found
- err-member-not-assigned-to-host
- err-session-not-found
- err-session-not-provided-by-host
- err-waitlist-not-allowed
- err-waitlist-full
- err-member-already-on-waitlist
- err-customer-age-prevents-from-action
- err-missing-customer-date-of-birth
- err-missing-date-of-birth-setting
- err-invalid-date-of-birth-value
x-enumNames:
- ERR_MEMBER_NOT_FOUND
- ERR_MEMBER_NOT_ASSIGNED_TO_HOST
- ERR_SESSION_NOT_FOUND
- ERR_SESSION_NOT_PROVIDED_BY_HOST
- ERR_WAITLIST_NOT_ALLOWED
- ERR_WAITLIST_FULL
- ERR_MEMBER_ALREADY_ON_WAITLIST
- ERR_CUSTOMER_AGE_PREVENTS_FROM_ACTION
- ERR_MISSING_CUSTOMER_DATE_OF_BIRTH
- ERR_MISSING_DATE_OF_BIRTH_SETTINGS
- ERR_INVALID_DATE_OF_BIRTH_VALUE
message:
type: string
required:
- type
- message
PaginatedResponseDataDto:
type: object
properties:
page:
type: integer
example: 0
minimum: 0
pageSize:
type: integer
example: 10
minimum: 1
totalCount:
type: integer
example: 1
sortBy:
type: string
sortOrder:
type: string
enum:
- ASC
- DESC
required:
- page
- pageSize
- totalCount
HostMemberAppointmentReservationDto:
type: object
properties:
id:
type: integer
createdAt:
type: string
cancelledAt:
type: string
nullable: true
startsAt:
type: string
endsAt:
type: string
durationInMinutes:
type: number
priceInCurrency:
type: number
depositInCurrency:
type: string
nullable: true
isDepositPaid:
type: boolean
currency:
type: string
isPaid:
type: boolean
capacity:
type: integer
nullable: true
example: 10
minimum: 1
board:
$ref: '#/components/schemas/ApiV2AppointmentReservationBoardDto'
service:
$ref: '#/components/schemas/ApiV2AppointmentReservationServiceDto'
serviceVariant:
nullable: true
allOf:
- $ref: '#/components/schemas/BasicEntityIdentifierDto'
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
additionalTeacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
isInPerson:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
member:
$ref: '#/components/schemas/MemberAppointmentMemberDto'
required:
- id
- createdAt
- cancelledAt
- startsAt
- endsAt
- durationInMinutes
- priceInCurrency
- depositInCurrency
- isDepositPaid
- currency
- isPaid
- capacity
- board
- service
- serviceVariant
- teacher
- additionalTeacher
- isInPerson
- inPersonLocation
- onlineStreamUrl
- onlineStreamPassword
- member
FranchiseGiftCardReconciliationItemDto:
type: object
properties:
hostName:
type: string
totals:
$ref: '#/components/schemas/TotalsDto'
paymentTransactionItems:
type: array
items:
$ref: '#/components/schemas/PaymentTransactionItemDto'
required:
- hostName
- totals
- paymentTransactionItems
VisitsDto:
type: object
properties:
count:
$ref: '#/components/schemas/SessionsCountDto'
startDate:
type: string
nullable: true
endDate:
type: string
nullable: true
dateType:
enum:
- fixed
- flexible
type: string
timeUnitNumber:
type: integer
qualifiers:
$ref: '#/components/schemas/VisitsQualifiersDto'
required:
- count
AddressDto:
type: object
properties:
address:
type: string
city:
type: string
country:
type: string
zipcode:
type: string
MemberLocationDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Main Studio
required:
- id
- name
CustomerAgeDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- after
- before
- 'on'
- between
- isEmpty
- isNotEmpty
type: string
value:
type: integer
value2:
type: integer
required:
- fieldId
- type
ApiV2HostReportRunMembershipFreezeFeeSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- membership-freeze-fee
type: string
x-enumNames:
- MEMBERSHIP_FREEZE_FEE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
HostSessionDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Stretching with John
type:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
example: fitness
x-enumNames:
- PRIVATE
- SPECIAL_EVENT
- SPECIAL_EVENT_NEW
- RETREAT
- FITNESS
- COURSE
- COURSE_CLASS
- SEMESTER
- RECITAL
description:
type: string
nullable: true
example: Our program is designed to help you increase your flexibility and strength.
startsAt:
type: string
example: '2021-08-01T10:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-08-01T11:00:00Z'
format: date-time
durationInMinutes:
type: integer
example: 60
minimum: 0
capacity:
type: integer
nullable: true
example: 10
minimum: 0
bookingCount:
type: integer
example: 10
minimum: 0
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberTeacherDto'
isRecurring:
type: boolean
example: false
isCancelled:
type: boolean
example: false
isInPerson:
type: boolean
example: false
isDraft:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
bannerImageUrl:
type: string
nullable: true
example: https://example.com/banner.jpg
hostPhotoUrl:
type: string
nullable: true
example: https://example.com/host.jpg
tags:
type: array
items:
$ref: '#/components/schemas/SessionTagDto'
required:
- id
- name
- type
- description
- startsAt
- endsAt
- durationInMinutes
- capacity
- bookingCount
- teacher
- isRecurring
- isCancelled
- isInPerson
- isDraft
- inPersonLocation
- onlineStreamUrl
- onlineStreamPassword
- bannerImageUrl
- hostPhotoUrl
ApiV2HostReportRunAppointmentDepositSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- appointment
type: string
x-enumNames:
- APPOINTMENT
details:
type: object
additionalProperties: true
isDepositItem:
type: number
enum:
- true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
- isDepositItem
ApiV2HostReportRunTipTotalSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- tip
type: string
x-enumNames:
- TIP
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
ApiV2HostReportRunGiftCardSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- gift-card
type: string
x-enumNames:
- GIFT_CARD
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
TransactionItemDto:
type: object
properties:
paymentTransactionItemId:
type: integer
nullable: true
paymentTransactionId:
type: integer
nullable: true
paymentMethod:
type: string
nullable: true
paidInCurrency:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
vatAmountInCurrency:
type: number
nullable: true
membershipType:
type: string
nullable: true
membershipName:
type: string
nullable: true
homeLocation:
type: string
nullable: true
note:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentMethodWeight:
type: number
nullable: true
saleItemId:
type: integer
required:
- paymentTransactionItemId
- paymentTransactionId
- paymentMethod
- paidInCurrency
- paidInMoneyCredits
- vatAmountInCurrency
- membershipType
- membershipName
- note
- paymentMethodWeight
- saleItemId
MemberTeacherDto:
type: object
properties:
id:
type: integer
example: 1
firstName:
type: string
example: John
lastName:
type: string
example: Doe
pictureUrl:
type: string
nullable: true
example: https://example.com/picture.jpg
required:
- id
- firstName
- lastName
- pictureUrl
HostSessionWaitlistBookingRequestDto:
type: object
properties:
memberId:
type: integer
example: 1
useBoughtMembershipIds:
example:
- 2
type: array
items:
type: integer
required:
- memberId
HostFreeSessionBookingResponseDto:
type: object
properties:
sessionBookingId:
type: integer
example: 1
sessionRecurringBookingId:
type: integer
example: 2
required:
- sessionBookingId
HostCustomersListFilterDto:
type: object
properties:
type:
enum:
- and
- or
type: string
joinedSince:
type: string
lastContacted:
$ref: '#/components/schemas/LastContactedDto'
visits:
$ref: '#/components/schemas/VisitsDto'
address:
$ref: '#/components/schemas/AddressDto'
futureBookings:
$ref: '#/components/schemas/FutureBookingsDto'
memberships:
type: array
items:
$ref: '#/components/schemas/MembershipFilterDto'
customerAge:
$ref: '#/components/schemas/CustomerAgeDto'
customFields:
$ref: '#/components/schemas/CustomFieldsDto'
customerTags:
$ref: '#/components/schemas/CustomerTagsDto'
homeLocations:
type: array
items:
$ref: '#/components/schemas/HomeLocationDto'
parentsChildren:
type: array
items:
type: string
enum:
- parents
- children
- non-children
customerRankings:
$ref: '#/components/schemas/CustomerRankingsDto'
required:
- type
MemberVisitsDto:
type: object
properties:
appointments:
type: integer
description: All the appointments the customer has booked
appointmentsVisits:
type: integer
description: All the appointments the customer has booked and checked into
bookings:
type: integer
description: All the session bookings the customer has booked
bookingsVisits:
type: integer
description: All the session bookings the customer has booked and checked into
openAreaVisits:
type: integer
description: All visits of open areas for customer
total:
type: integer
description: Combined count of appointments + bookings
totalVisits:
type: integer
description: Combined count of appointmentsVisits + bookingsVisits
required:
- appointments
- appointmentsVisits
- bookings
- bookingsVisits
- openAreaVisits
- total
- totalVisits
HostSessionRecurringBookingCancelRequestDto:
type: object
properties:
afterSessionId:
type: integer
example: 123456
HostMemberUpdateEmailRequestDto:
type: object
properties:
email:
type: string
required:
- email
HostMemberCustomerFieldDto:
type: object
properties:
id:
type: integer
description: ID of the customer field
example: 5
label:
type: string
description: label of the customer field
example: Date of Birth
type:
enum:
- text
- number
- date
- date-time
- dropdown
- boolean
- date-of-birth
type: string
description: type of the customer field
example: date-of-birth
x-enumNames:
- Text
- Number
- Date
- DateTime
- Dropdown
- Boolean
- DateOfBirth
value:
type: string
description: value set for the member for this customer field
example: '1990-01-01'
required:
- id
- label
- type
- value
SessionIdDto:
type: object
properties:
sessionId:
type: integer
required:
- sessionId
HostSalePaymentTransactionDto:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/HostSalePaymentTransactionItemDto'
required:
- items
HostSalePaymentTransactionItemDto:
type: object
properties:
id:
type: integer
paymentMethodType:
enum:
- stripe
- stripe-becs
- stripe-nz-becs
- stripe-revolut-pay
- stripe-ideal
- stripe-ideal-sepa-direct-debit
- stripe-bancontact
- stripe-bancontact-sepa-direct-debit
- stripe-sepa-direct-debit
- stripe-ach-direct-debit
- stripe-acss-debit
- stripe-bacs-direct-debit
- stripe-refund
- membership
- cash
- free
- imported
- custom
- scheduled-stripe
- paypal
- xendit
- classpass
- gympass
- gift-card
- stripe-reader
- pay-later
- pay-at-start
- money-credit-correction
- money-credit-refund
- event-credit-correction
- event-credit-refund
- tuition
- urban-sports-club
- my-clubs
- referral-reward
- referral-gift
- campaign-sequence-action
- reward-points-corrections
- reward-points-earned
- reward-points-spent
- multiple-payment-methods
- yappy
- odin-card
- odin-ach
- odin-reader
type: string
example: custom
x-enumNames:
- STRIPE
- STRIPE_AU_BECS
- STRIPE_NZ_BECS
- STRIPE_REVOLUT_PAY
- STRIPE_IDEAL
- STRIPE_IDEAL_SEPA_DIRECT_DEBIT
- STRIPE_BANCONTACT
- STRIPE_BANCONTACT_SEPA_DIRECT_DEBIT
- STRIPE_SEPA_DIRECT_DEBIT
- STRIPE_ACH_DIRECT_DEBIT
- STRIPE_ACSS_DEBIT
- STRIPE_BACS_DIRECT_DEBIT
- STRIPE_REFUND
- MEMBERSHIP
- CASH
- FREE
- IMPORTED
- CUSTOM
- SCHEDULED_STRIPE
- PAYPAL
- XENDIT
- CLASSPASS
- GYMPASS
- GIFT_CARD
- STRIPE_READER
- PAY_LATER
- PAY_AT_START
- MONEY_CREDIT_CORRECTION
- MONEY_CREDIT_REFUND
- EVENT_CREDIT_CORRECTION
- EVENT_CREDIT_REFUND
- TUITION
- URBAN_SPORTS_CLUB
- MY_CLUBS
- REFERRAL_REWARD
- REFERRAL_GIFT
- CAMPAIGN_SEQUENCE_ACTION
- REWARD_POINTS_CORRECTIONS
- REWARD_POINTS_EARNED
- REWARD_POINTS_SPENT
- MULTIPLE_PAYMENT_METHODS
- YAPPY
- ODIN_CARD
- ODIN_ACH
- ODIN_READER
paymentMethodName:
type: string
description: Additional name for the payment method used - for CUSTOM, it's custom payment method name, for MEMBERSHIP it's the membership name
example: Custom payment method
amountInCurrencyWithoutTax:
type: string
example: '9.99'
taxAmountInCurrency:
type: string
example: '9.99'
required:
- id
- paymentMethodType
- amountInCurrencyWithoutTax
- taxAmountInCurrency
MemberInfoDto:
type: object
properties:
id:
type: integer
firstName:
type: string
example: John
lastName:
type: string
example: Doe
email:
type: string
example: john.doe@example.com
phoneNumber:
type: string
nullable: true
example: '1234567890'
pictureUrl:
type: string
nullable: true
example: https://example.com/picture.jpg
required:
- id
- firstName
- lastName
- email
- phoneNumber
- pictureUrl
MembershipIdDto:
type: object
properties:
membershipId:
type: integer
required:
- membershipId
ApiV2HostCreateReportRunRequestDto:
type: object
properties:
parameters:
oneOf:
- $ref: '#/components/schemas/ApiV2HostReportRunTotalSalesReportRunParametersDto'
- $ref: '#/components/schemas/ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunParametersDto'
required:
- parameters
LastContactedDto:
type: object
properties:
type:
enum:
- fixed
- flexible
type: string
startDate:
type: string
nullable: true
endDate:
type: string
nullable: true
days:
type: integer
required:
- type
ApiV2HostReportRunTuitionInstallmentSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- tuition-installment
type: string
x-enumNames:
- TUITION_INSTALLMENT
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunTotalSalesReportRunParametersDto:
type: object
properties:
reportType:
enum:
- total-sales
type: string
x-enumNames:
- TEACHER_PAYROLL
- TEACHER_PAYROLL_UNLIMITED
- ADDITIONAL_TEACHER_PAYROLL
- COMBINED_TEACHER_PAYROLL
- TOTAL_SALES
- VIDEO_VIEWS
- STAFF_TIME_TRACKING
- SERVICE_SALES
- SALES_BY_CATEGORY
- SALES_BY_APPOINTMENT
- APPOINTMENTS_PAYROLL
- APPOINTMENTS_ATTENDANCE
- RETENTION
- PRODUCT_SALES
- PRODUCT_INVENTORY
- ON_DEMAND_SALES
- MEMBERSHIP_SALES
- DISCOUNT_CODE_SALES
- CUSTOMER_LIST
- CUSTOMER_FIELD_VALUES
- CUSTOMER_BIRTHDAYS
- COURSE_SALES
- ATTENDANCE
- DECLINED_RENEWALS
- FAILED_DIRECT_DEBIT_PAYMENTS
- UPCOMING_RENEWALS
- MEMBERSHIP_RENEWALS
- CARDS_EXPIRATION
- PAYMENT_PLANS_PAYMENTS
- PRODUCT_SALES_BY_PRODUCT
- PRODUCT_SALES_BY_SUPPLIER
- MEMBERSHIP_CANCELLATIONS
- ADDITIONAL_BOOKINGS
- TOTAL_BOOKINGS
- NEW_VISITORS
- NEW_MEMBERS
- NEW_CUSTOMERS
- PRODUCT_SALES_BY_CATEGORY
- REFUNDS
- OUTSTANDING_MONEY_CREDITS
- OUTSTANDING_EVENT_CREDITS
- MEMBERSHIP_STATS
- AUTOSUBSTITUTE_RESPONSES
- LATE_CANCELLATIONS
- SALES_BY_TAGS
- FROZEN_MEMBERSHIPS
- STAFF_HOURS
- TEACHERS_BY_PAYRATE
- NO_SHOWS
- APPOINTMENT_NO_SHOWS
- SESSION_BOOKINGS
- APPOINTMENT_BOOKINGS
- UPCOMING_MEMBERSHIPS_EXPIRATION
- MEMBERSHIPS_EXPIRATION
- NOT_ACTIVATED_MEMBERSHIPS
- UNPAID_BOOKINGS
- FAILED_PAYMENT_PLAN_PAYMENTS
- FAILED_TUITION_INSTALLMENT_PAYMENTS
- NON_RETURNING_CUSTOMERS
- NON_MEMBER_CUSTOMERS
- MEMBER_CUSTOMERS
- ACTIVE_MEMBERS
- TOTAL_VISITS
- MEMBER_KEY_SCAN_IDENTIFICATIONS
- VISITS_OVERVIEW
- RECURRING_EVENT_ATTENDANCE
- INTRO_OFFERS_SALES
- INTRO_OFFERS_UPCOMING_EXPIRATIONS
- INTRO_OFFERS_EXPIRED
- INTRO_OFFERS_CONVERSIONS
- CUSTOMER_LEADS_CONVERSIONS
- GIFT_CARD_SALES
- UNSUBSCRIBED_CUSTOMERS_FROM_MARKETING_EMAILS
- CUSTOMER_ATTENDANCE_ANALYSIS
- STUDIO_GROW_KPI
- CUSTOMER_REFERRAL_REWARDS
- PAYROLL
- CUSTOMER_LEADS_FIELD_VALUES
- TIP
- CUSTOMER_LEADS_KPI
- CUSTOMER_LEADS_KPI_NMS
- FACEBOOK_INSTAGRAM_ROI_CALCULATOR
- GUEST_PASS_USAGE_SESSIONS
- CUSTOMER_RANKINGS_MEMBERS
- COMMISSIONS
- FRANCHISE_FEES
- APPOINTMENT_BOOKING_CANCELLATIONS
- NEW_LEADS_AND_CUSTOMERS
- APPOINTMENT_VISITORS_WITHOUT_UPCOMING_BOOKINGS
- COURSE_QUIZ_SUBMISSIONS
- APPOINTMENT_RESERVATIONS
- BUSINESS_AT_GLANCE
- DECLINED_PENALTY_CHARGES
- APPOINTMENT_ADDONS
- SPOTFILLERS
- FRANCHISE_SALES
- APPOINTMENT_SERVICE_AND_RETAIL_ANALYSIS_BY_EMPLOYEE
- MOLONI_TRANSACTIONS
- APPOINTMENTS_PRODUCTS_STAFF_PERFORMANCE
- FRANCHISE_GIFT_CARD_RECONCILIATION
- SESSION_OCCUPANCY
- REVENUE_BREAKDOWN
- OPEN_AREA_VISITS
- SALES_BY_OPEN_AREA_VISIT
- SESSION_ADDONS
- MEMBERSHIP_RECONCILIATION
- REWARDS_POINTS_MOVEMENTS
- REWARDS_POINTS_BALANCES
hostId:
type: integer
dateRange:
$ref: '#/components/schemas/DateRangeDto'
locationId:
type: integer
tagId:
type: integer
moneyCreditSalesFilter:
enum:
- noFilter
- filterOutMoneyCreditSales
- filterOutSalesPaidByMoneyCredits
type: string
x-enumNames:
- NO_FILTER
- FILTER_OUT_MONEY_CREDIT_SALES
- FILTER_OUT_SALES_PAID_BY_MONEY_CREDITS
includeRefunds:
type: boolean
saleTypes:
type: array
items:
enum:
- membership
- session
- appointment
- product
- video
- course
- gift-card
- monthly-subscription
- custom-member-payment-plan-installment
- money-credit
- event-credit
- auto-attendance-penalty
- auto-attendance-penalty-retry-fee
- stripe-refund
- refund
- tips
- appointment-deposit
- tuition-installment
- tuition-registration-fee
- appointment-addon
- open-area-visit
- membership-freeze-fee
- membership-cancellation-fee
- membership-renewal-retry-fee
- membership-transfer-fee
- membership-joining-fee
- session-addon
type: string
x-enumNames:
- MEMBERSHIP
- SESSION
- APPOINTMENT
- PRODUCT
- VIDEO
- COURSE
- GIFT_CARD
- MONTHLY_SUBSCRIPTION
- CUSTOM_MEMBER_PAYMENT_PLAN_INSTALLMENT
- MONEY_CREDIT
- EVENT_CREDIT
- AUTO_ATTENDANCE_PENALTY
- AUTO_ATTENDANCE_PENALTY_RETRY_FEE
- STRIPE_REFUND
- REFUND
- TIPS
- APPOINTMENT_DEPOSIT
- TUITION_INSTALLMENT
- TUITION_REGISTRATION_FEE
- APPOINTMENT_ADDON
- OPEN_AREA_VISIT
- MEMBERSHIP_FREEZE_FEE
- MEMBERSHIP_CANCELLATION_FEE
- MEMBERSHIP_RENEWAL_RETRY_FEE
- MEMBERSHIP_TRANSFER_FEE
- MEMBERSHIP_JOINING_FEE
- SESSION_ADDON
excludeGiftCardPaymentMethod:
type: boolean
excludeTransactionFeesInSaleValue:
type: boolean
required:
- reportType
- hostId
- dateRange
ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunDataDto:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/FranchiseGiftCardReconciliationItemDto'
reportType:
type: string
enum:
- franchise-gift-card-reconciliation
required:
- items
- reportType
MembershipFilterDto:
type: object
properties:
membershipState:
enum:
- active
- not-active
- cancelled
- expired
- none
type: string
membershipId:
type: integer
nullable: true
membershipIds:
type: array
items:
type: integer
required:
- membershipState
ApiV2HostGetReportRunResponseDto:
type: object
properties:
parameters:
oneOf:
- $ref: '#/components/schemas/ApiV2HostReportRunTotalSalesReportRunParametersDto'
- $ref: '#/components/schemas/ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunParametersDto'
data:
oneOf:
- $ref: '#/components/schemas/ApiV2HostReportRunTotalSalesReportRunDataDto'
- $ref: '#/components/schemas/ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunDataDto'
id:
type: integer
status:
enum:
- queued
- running
- completed
- failed
type: string
x-enumNames:
- QUEUED
- RUNNING
- COMPLETED
- FAILED
required:
- parameters
- data
- id
- status
ApiV2HostMemberBoughtMembershipsUpdateClassCreditsRequestDto:
type: object
properties:
eventCreditsLeft:
type: number
description: Set number of event credits left, valid only for PACKAGE_EVENTS bought membership
example: 5.5
minimum: 0
moneyCreditsLeft:
type: number
description: Set number of money credits left, valid only for PACKAGE_MONEY bought membership
example: 99.99
minimum: 0
ApiV2BoughtMembershipDeclinedRenewalDto:
type: object
properties:
declinedAt:
type: string
format: date-time
cardLast4:
type: string
nullable: true
required:
- declinedAt
- cardLast4
AppointmentServiceIdDto:
type: object
properties:
appointmentServiceId:
type: integer
required:
- appointmentServiceId
ApiV2HostReportRunFranchiseGiftCardReconciliationReportRunParametersDto:
type: object
properties:
reportType:
enum:
- franchise-gift-card-reconciliation
type: string
x-enumNames:
- TEACHER_PAYROLL
- TEACHER_PAYROLL_UNLIMITED
- ADDITIONAL_TEACHER_PAYROLL
- COMBINED_TEACHER_PAYROLL
- TOTAL_SALES
- VIDEO_VIEWS
- STAFF_TIME_TRACKING
- SERVICE_SALES
- SALES_BY_CATEGORY
- SALES_BY_APPOINTMENT
- APPOINTMENTS_PAYROLL
- APPOINTMENTS_ATTENDANCE
- RETENTION
- PRODUCT_SALES
- PRODUCT_INVENTORY
- ON_DEMAND_SALES
- MEMBERSHIP_SALES
- DISCOUNT_CODE_SALES
- CUSTOMER_LIST
- CUSTOMER_FIELD_VALUES
- CUSTOMER_BIRTHDAYS
- COURSE_SALES
- ATTENDANCE
- DECLINED_RENEWALS
- FAILED_DIRECT_DEBIT_PAYMENTS
- UPCOMING_RENEWALS
- MEMBERSHIP_RENEWALS
- CARDS_EXPIRATION
- PAYMENT_PLANS_PAYMENTS
- PRODUCT_SALES_BY_PRODUCT
- PRODUCT_SALES_BY_SUPPLIER
- MEMBERSHIP_CANCELLATIONS
- ADDITIONAL_BOOKINGS
- TOTAL_BOOKINGS
- NEW_VISITORS
- NEW_MEMBERS
- NEW_CUSTOMERS
- PRODUCT_SALES_BY_CATEGORY
- REFUNDS
- OUTSTANDING_MONEY_CREDITS
- OUTSTANDING_EVENT_CREDITS
- MEMBERSHIP_STATS
- AUTOSUBSTITUTE_RESPONSES
- LATE_CANCELLATIONS
- SALES_BY_TAGS
- FROZEN_MEMBERSHIPS
- STAFF_HOURS
- TEACHERS_BY_PAYRATE
- NO_SHOWS
- APPOINTMENT_NO_SHOWS
- SESSION_BOOKINGS
- APPOINTMENT_BOOKINGS
- UPCOMING_MEMBERSHIPS_EXPIRATION
- MEMBERSHIPS_EXPIRATION
- NOT_ACTIVATED_MEMBERSHIPS
- UNPAID_BOOKINGS
- FAILED_PAYMENT_PLAN_PAYMENTS
- FAILED_TUITION_INSTALLMENT_PAYMENTS
- NON_RETURNING_CUSTOMERS
- NON_MEMBER_CUSTOMERS
- MEMBER_CUSTOMERS
- ACTIVE_MEMBERS
- TOTAL_VISITS
- MEMBER_KEY_SCAN_IDENTIFICATIONS
- VISITS_OVERVIEW
- RECURRING_EVENT_ATTENDANCE
- INTRO_OFFERS_SALES
- INTRO_OFFERS_UPCOMING_EXPIRATIONS
- INTRO_OFFERS_EXPIRED
- INTRO_OFFERS_CONVERSIONS
- CUSTOMER_LEADS_CONVERSIONS
- GIFT_CARD_SALES
- UNSUBSCRIBED_CUSTOMERS_FROM_MARKETING_EMAILS
- CUSTOMER_ATTENDANCE_ANALYSIS
- STUDIO_GROW_KPI
- CUSTOMER_REFERRAL_REWARDS
- PAYROLL
- CUSTOMER_LEADS_FIELD_VALUES
- TIP
- CUSTOMER_LEADS_KPI
- CUSTOMER_LEADS_KPI_NMS
- FACEBOOK_INSTAGRAM_ROI_CALCULATOR
- GUEST_PASS_USAGE_SESSIONS
- CUSTOMER_RANKINGS_MEMBERS
- COMMISSIONS
- FRANCHISE_FEES
- APPOINTMENT_BOOKING_CANCELLATIONS
- NEW_LEADS_AND_CUSTOMERS
- APPOINTMENT_VISITORS_WITHOUT_UPCOMING_BOOKINGS
- COURSE_QUIZ_SUBMISSIONS
- APPOINTMENT_RESERVATIONS
- BUSINESS_AT_GLANCE
- DECLINED_PENALTY_CHARGES
- APPOINTMENT_ADDONS
- SPOTFILLERS
- FRANCHISE_SALES
- APPOINTMENT_SERVICE_AND_RETAIL_ANALYSIS_BY_EMPLOYEE
- MOLONI_TRANSACTIONS
- APPOINTMENTS_PRODUCTS_STAFF_PERFORMANCE
- FRANCHISE_GIFT_CARD_RECONCILIATION
- SESSION_OCCUPANCY
- REVENUE_BREAKDOWN
- OPEN_AREA_VISITS
- SALES_BY_OPEN_AREA_VISIT
- SESSION_ADDONS
- MEMBERSHIP_RECONCILIATION
- REWARDS_POINTS_MOVEMENTS
- REWARDS_POINTS_BALANCES
hostId:
type: integer
dateRange:
$ref: '#/components/schemas/DateRangeDto'
required:
- reportType
- hostId
- dateRange
HostFreeSessionBookingErrorResponseDto:
type: object
properties:
type:
type: string
enum:
- err-member-not-found
- err-member-not-assigned-to-host
- err-session-not-found
- err-session-not-provided-by-host
- err-customer-age-prevents-from-action
- err-missing-customer-date-of-birth
- err-missing-date-of-birth-setting
- err-invalid-date-of-birth-value
x-enumNames:
- ERR_MEMBER_NOT_FOUND
- ERR_MEMBER_NOT_ASSIGNED_TO_HOST
- ERR_SESSION_NOT_FOUND
- ERR_SESSION_NOT_PROVIDED_BY_HOST
- ERR_CUSTOMER_AGE_PREVENTS_FROM_ACTION
- ERR_MISSING_CUSTOMER_DATE_OF_BIRTH
- ERR_MISSING_DATE_OF_BIRTH_SETTINGS
- ERR_INVALID_DATE_OF_BIRTH_VALUE
message:
type: string
required:
- type
- message
ApiV2BoughtMembershipScheduleFreezeRequestDto:
type: object
properties:
freezeType:
enum:
- not_set
- now
- scheduled
- before_renewal
type: string
x-enumNames:
- NOT_SET
- NOW
- SCHEDULED
- BEFORE_RENEWAL
freezeAt:
type: string
nullable: true
format: date-time
required:
- freezeType
- freezeAt
HomeLocationDto:
type: object
properties:
locationId:
type: integer
nullable: true
required:
- locationId
HostMemberNoteDto:
type: object
properties:
id:
type: integer
example: 5
createdAt:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
modifiedAt:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
type:
enum:
- regular
- soap
type: string
example: regular
x-enumNames:
- REGULAR
- SOAP
note:
type: string
description: note contents, can contain HTML
example: Note contents, can contain HTML
imageLink:
type: string
nullable: true
customerNoteTemplateId:
type: integer
nullable: true
example: 4
sessionBookingId:
type: integer
nullable: true
example: 2
appointmentReservationId:
type: integer
nullable: true
example: 1
productOrderId:
type: integer
nullable: true
example: 5
boughtMembershipId:
type: integer
nullable: true
example: 8
paymentTransactionId:
type: integer
nullable: true
example: 9
lockedAt:
type: string
nullable: true
example: '2021-01-01T00:00:00Z'
format: date-time
lockedByUserId:
type: integer
nullable: true
example: 3
required:
- id
- createdAt
- modifiedAt
- type
- note
- imageLink
- customerNoteTemplateId
- sessionBookingId
- appointmentReservationId
- productOrderId
- boughtMembershipId
- paymentTransactionId
- lockedAt
- lockedByUserId
ApiV2HostReportRunMembershipSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- membership
- pack
- subscription
type: string
x-enumNames:
- MEMBERSHIP
- PACKAGE
- SUBSCRIPTION
membershipType:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- membershipType
- details
CustomTextFieldDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- includes
- equalsTo
- isEmpty
- isNotEmpty
type: string
value:
type: string
required:
- fieldId
- type
ApiV2HostReportRunTotalSalesReportRunDataDto:
type: object
properties:
items:
type: array
items:
oneOf:
- $ref: '#/components/schemas/ApiV2HostReportRunEventSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunMembershipSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunCourseSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunVideoSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunProductSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunAutomatedPenaltyChargeDto'
- $ref: '#/components/schemas/ApiV2HostReportRunAppointmentSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunAppointmentAddonSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunAppointmentDepositSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunGiftCardSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunPaymentPlanInstallmentSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunTipTotalSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunTuitionInstallmentSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunTuitionRegistrationFeeSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunMembershipRenewalRetryFeeSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunMembershipFreezeFeeSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunMembershipCancellationFeeSaleItemDto'
- $ref: '#/components/schemas/ApiV2HostReportRunRefundSaleItemDto'
reportType:
type: string
enum:
- total-sales
required:
- items
- reportType
ApiV2HostReportRunVideoSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- on-demand
type: string
x-enumNames:
- ON_DEMAND
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostReportRunTuitionRegistrationFeeSaleItemDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- tuition-registration-fee
type: string
x-enumNames:
- TUITION_REGISTRATION_FEE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
DateRangeDto:
type: object
properties:
from:
type: string
example: '2026-01-01T00:00:00Z'
format: date-time
to:
type: string
example: '2026-01-01T00:00:00Z'
format: date-time
required:
- from
- to
ApiV2HostReportRunAutomatedPenaltyChargeDto:
type: object
properties:
memberId:
type: integer
nullable: true
customerName:
type: string
customerEmail:
type: string
payingCustomerEmail:
type: string
payingCustomerName:
type: string
payingMemberId:
type: integer
saleItemId:
type: integer
paymentDate:
type: string
format: date-time
serviceDate:
type: string
nullable: true
format: date-time
paymentValue:
type: number
nullable: true
paidInMoneyCredits:
type: number
nullable: true
paymentVat:
type: number
nullable: true
paymentItem:
type: string
paymentMethod:
type: string
paymentStatus:
nullable: true
enum:
- succeeded
- failed
- pending
- voided
- unpaid
- incomplete
type: string
x-enumNames:
- SUCCEEDED
- FAILED
- PENDING
- VOIDED
- UNPAID
- INCOMPLETE
paymentTransactionId:
type: integer
nullable: true
refunded:
type: number
stripeToken:
type: string
nullable: true
currency:
type: string
nullable: true
customerSelectedLocation:
type: string
soldBy:
type: string
transactionItems:
type: array
items:
$ref: '#/components/schemas/TransactionItemDto'
location:
type: string
nullable: true
saleReference:
type: string
nullable: true
paymentCategory:
enum:
- automatic-penalty-charge
type: string
x-enumNames:
- AUTOMATIC_PENALTY_CHARGE
details:
type: object
additionalProperties: true
required:
- memberId
- customerName
- customerEmail
- payingCustomerEmail
- payingCustomerName
- payingMemberId
- saleItemId
- paymentDate
- serviceDate
- paymentValue
- paidInMoneyCredits
- paymentVat
- paymentItem
- paymentMethod
- paymentStatus
- paymentTransactionId
- refunded
- stripeToken
- currency
- transactionItems
- paymentCategory
- details
ApiV2HostAppointmentReservationAttendeeDto:
type: object
properties:
attendanceStatus:
enum:
- checkedIn
- cancelled
- booked
type: string
example: checkedIn
x-enumNames:
- CHECKED_IN
- CANCELLED
- BOOKED
bookedAt:
type: string
isPaid:
type: boolean
isDepositPaid:
type: boolean
checkedInAt:
type: string
nullable: true
isLateCancelled:
type: boolean
cancelledAt:
type: string
nullable: true
id:
type: integer
memberId:
type: integer
firstName:
type: string
nullable: true
lastName:
type: string
nullable: true
required:
- attendanceStatus
- bookedAt
- isPaid
- isDepositPaid
- checkedInAt
- isLateCancelled
- cancelledAt
- id
- memberId
- firstName
- lastName
HostTeacherDto:
type: object
properties:
id:
type: integer
example: 1
firstName:
type: string
example: John
lastName:
type: string
example: Doe
pictureUrl:
type: string
nullable: true
example: https://example.com/picture.jpg
email:
type: string
nullable: true
example: johndoe@teacher.com
required:
- id
- firstName
- lastName
- pictureUrl
- email
ApiV2HostMemberCreateResponseDto:
type: object
properties:
memberId:
type: integer
required:
- memberId
SessionSeriesIdDto:
type: object
properties:
seriesId:
type: integer
required:
- seriesId
FutureBookingsCountDto:
type: object
properties:
type:
enum:
- moreThan
- lessThan
- exactly
type: string
value:
type: integer
required:
- type
- value
CustomNumberFieldDto:
type: object
properties:
fieldId:
type: integer
type:
enum:
- largerThan
- smallerThan
- equalsTo
- isEmpty
- isNotEmpty
type: string
value:
type: integer
nullable: true
required:
- fieldId
- type
- value
HostSaleOpenAreaDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: Gym A
required:
- id
- name
HostTagDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: VIP
isCustomerBadge:
type: boolean
example: false
badgeLabel:
type: string
nullable: true
example: VIP
badgeColor:
type: string
nullable: true
example: '#fe0000'
corporateTagId:
type: integer
nullable: true
example: 1
required:
- id
- name
- isCustomerBadge
- badgeLabel
- badgeColor
- corporateTagId
BasicEntityIdentifierDto:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
- name
HostMemberUpdateNameRequestDto:
type: object
properties:
firstName:
type: string
minLength: 1
maxLength: 100
lastName:
type: string
minLength: 1
maxLength: 100
required:
- firstName
- lastName
ApiV2HostBoughtMembershipsDto:
type: object
properties:
id:
type: integer
example: 1
type:
enum:
- subscription
- on-demand-subscription
- package-events
- package-money
- patron
type: string
example: subscription
x-enumNames:
- Subscription
- OnDemandSubscription
- PackageEvents
- PackageMoney
- Patron
startDate:
type: string
nullable: true
description: start date of the bought membership
example: '2021-01-01T00:00:00Z'
format: date-time
endDate:
type: string
nullable: true
description: expiration date of the bought membership
example: '2021-02-01T00:00:00Z'
format: date-time
isFrozen:
type: boolean
eventCreditsLeft:
type: number
nullable: true
description: number of event credits left, valid for PACKAGE_EVENTS
example: null
eventCreditsTotal:
type: number
nullable: true
description: number of event credits originally included in the package, valid for PACKAGE_EVENTS
example: null
moneyCreditsLeft:
type: number
nullable: true
description: number of money credits left, valid for PACKAGE_MONEY
example: null
moneyCreditsTotal:
type: number
nullable: true
description: number of money credits originally included in the package, valid for PACKAGE_MONEY
example: null
usageLimitForSessions:
type: number
nullable: true
description: Non-null value indicates the membership has limit to number of session bookings, only valid for SUBSCRIPTION
example: 5
usageLimitForAppointments:
type: number
nullable: true
description: Non-null value indicates the membership has limit to number of appointments booked, only valid for SUBSCRIPTION
example: 3
combinedUsageLimit:
type: number
nullable: true
description: Non-null value indicates the membership has combined limits for session and appointment bookings, only valid for SUBSCRIPTION
example: null
usedSessions:
type: number
nullable: true
description: only valid for SUBSCRIPTION with session-only usage limits
example: 1
usedAppointments:
type: number
nullable: true
description: only valid for SUBSCRIPTION with appointment-only usage limits
example: 2
combinedUsage:
type: number
nullable: true
description: only valid for SUBSCRIPTION with combined usage limits
example: null
usageLimitStartDate:
type: string
nullable: true
description: date range for which the current usage is calculated for, only valid for SUBSCRIPTION with usage limits
example: null
format: date-time
usageLimitEndDate:
type: string
nullable: true
description: date range for which the current usage is calculated for, only valid for SUBSCRIPTION with usage limits
example: null
format: date-time
membership:
nullable: true
description: info about origin membership, it's possible the bought membership has no origin membership
allOf:
- $ref: '#/components/schemas/HostMembershipBasicDto'
freeze:
nullable: true
description: freeze details, if the membership is frozen or scheduled to freeze/unfreeze
allOf:
- $ref: '#/components/schemas/ApiV2BoughtMembershipFreezeDto'
declinedRenewal:
nullable: true
description: latest failed renewal payment details for this membership, if any
allOf:
- $ref: '#/components/schemas/ApiV2BoughtMembershipDeclinedRenewalDto'
required:
- id
- type
- startDate
- endDate
- isFrozen
- eventCreditsLeft
- eventCreditsTotal
- moneyCreditsLeft
- moneyCreditsTotal
- usageLimitForSessions
- usageLimitForAppointments
- combinedUsageLimit
- usedSessions
- usedAppointments
- combinedUsage
- usageLimitStartDate
- usageLimitEndDate
- membership
- freeze
- declinedRenewal
MemberAppointmentMemberDto:
type: object
properties:
attendanceStatus:
enum:
- checkedIn
- cancelled
- booked
type: string
example: checkedIn
x-enumNames:
- CHECKED_IN
- CANCELLED
- BOOKED
bookedAt:
type: string
isPaid:
type: boolean
isDepositPaid:
type: boolean
checkedInAt:
type: string
nullable: true
isLateCancelled:
type: boolean
cancelledAt:
type: string
nullable: true
id:
type: integer
firstName:
type: string
nullable: true
lastName:
type: string
nullable: true
required:
- attendanceStatus
- bookedAt
- isPaid
- isDepositPaid
- checkedInAt
- isLateCancelled
- cancelledAt
- id
- firstName
- lastName
CustomerRankingsDto:
type: object
properties:
customerRankingId:
type: integer
customerHaveRanking:
enum:
- have
- not-have
type: string
required:
- customerRankingId
HostSaleProductDto:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: T-Shirt
required:
- id
- name
HostSessionDetailDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Monday Morning Yoga
startsAt:
type: string
example: '2021-01-01T00:00:00Z'
format: date-time
endsAt:
type: string
example: '2021-01-01T01:00:00Z'
format: date-time
capacity:
type: integer
nullable: true
example: 20
bookingCount:
type: integer
nullable: true
example: 12
waitlistCapacity:
type: integer
nullable: true
example: 20
waitlistBookingCount:
type: integer
nullable: true
example: 20
teacher:
nullable: true
allOf:
- $ref: '#/components/schemas/HostTeacherDto'
originalTeacher:
nullable: true
allOf:
- $ref: '#/components/schemas/HostTeacherDto'
additionalTeachers:
nullable: true
type: array
items:
$ref: '#/components/schemas/HostTeacherDto'
isRecurring:
type: boolean
example: false
isCancelled:
type: boolean
example: false
isInPerson:
type: boolean
example: false
isDraft:
type: boolean
example: false
inPersonLocation:
nullable: true
allOf:
- $ref: '#/components/schemas/MemberLocationDto'
zoomLink:
type: string
nullable: true
example: https://zoom.us/j/1234567890
zoomMeetingId:
type: string
nullable: true
example: '1234567890'
zoomMeetingPassword:
type: string
nullable: true
example: 065809
onlineStreamUrl:
type: string
nullable: true
example: https://example.com/online-stream
onlineStreamPassword:
type: string
nullable: true
example: password123
tags:
type: array
items:
$ref: '#/components/schemas/SessionTagDto'
required:
- id
- name
- startsAt
- endsAt
- capacity
- bookingCount
- waitlistCapacity
- waitlistBookingCount
- teacher
- originalTeacher
- additionalTeachers
- isRecurring
- isCancelled
- isInPerson
- isDraft
- inPersonLocation
- zoomLink
- zoomMeetingId
- zoomMeetingPassword
- onlineStreamUrl
- onlineStreamPassword
SessionTagDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: VIP
isCustomerBadge:
type: boolean
example: false
badgeLabel:
type: string
nullable: true
example: VIP
badgeColor:
type: string
nullable: true
example: '#fe0000'
required:
- id
- name
- isCustomerBadge
- badgeLabel
- badgeColor
ApiV2HostCreateReportRunResponseDto:
type: object
properties:
id:
type: integer
required:
- id
ApiV2AppointmentReservationServiceDto:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Couple Massage
required:
- id
- name
ApiV2BoughtMembershipScheduleUnfreezeRequestDto:
type: object
properties:
unfreezeType:
enum:
- not_set
- scheduled
type: string
x-enumNames:
- NOT_SET
- SCHEDULED
unfreezeAt:
type: string
nullable: true
format: date-time
required:
- unfreezeType
- unfreezeAt
VisitsQualifiersDto:
type: object
properties:
membershipIds:
type: array
items:
$ref: '#/components/schemas/MembershipIdDto'
teacherIds:
type: array
items:
$ref: '#/components/schemas/TeacherIdDto'
sessionIds:
type: array
items:
$ref: '#/components/schemas/SessionIdDto'
templateIds:
type: array
items:
$ref: '#/components/schemas/TemplateIdDto'
sessionSeriesIds:
type: array
items:
$ref: '#/components/schemas/SessionSeriesIdDto'
locationIds:
type: array
items:
$ref: '#/components/schemas/LocationIdDto'
sessionType:
enum:
- private
- special-event
- special-event-new
- retreat
- fitness
- course
- course-class
- semester
- recital
type: string
appointmentServiceIds:
type: array
items:
$ref: '#/components/schemas/AppointmentServiceIdDto'
securitySchemes:
OAuth2:
type: oauth2
flows:
password:
scopes: {}
tokenUrl: /api/v2/auth/token
authorizationCode:
authorizationUrl: /api/v2/auth/authorize
tokenUrl: /api/v2/auth/token
scopes: {}
OAuth2ApiClient:
type: http
scheme: basic
description: Use your `client_id` as username and `client_secret` as password