Skip to content

PerfectGym Next API (1.13.2)

  • Appointment, bookable appointment and slots operations
  • Redeem checkin vouchers
  • Class and slots operations
  • Cross studio operations
  • Get customers and contracts
  • Retrieve customer accounting details
  • Retrieve customer communication details
  • Get device information
  • Employee operations
  • Debt collection operations
  • Leads operations
  • Manage membership contracts
  • Membership operations
  • Online offer operations
  • Payment operations
  • Get studio information
  • Get trial offers information
Download OpenAPI description
Languages
Servers
Demo tenant

https://open-api-demo.open-api.perfectgym.com/

Mock server

https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/

Appointments

Appointment, bookable appointment and slots operations

Operations

Checkin vouchers

Redeem checkin vouchers

Operations
Operations

Cross Studio

Cross studio operations

Operations

Customers

Get customers and contracts

Operations

Customers Account

Retrieve customer accounting details

Operations

Customers Communication

Retrieve customer communication details

Operations
Operations
Operations
Operations
Operations
Operations

Membership Self-service

Manage membership contracts

Operations
Operations

Online offers

Online offer operations

Operations
Operations
Operations

Trial Offers

Get trial offers information

Operations

Request

Required Scopes: TRIAL_OFFER_READ

Get pageable bookable trial offer classes within the next year

Security
ApiKeyAuth
Query
offsetstring

Offset from last request (last ID of the class)

Default "0"
sliceSizeinteger(int32)[ 10 .. 100 ]

Desired size of data chunk

Default 50
curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/bookable-trial-offers/classes?offset=0&sliceSize=50' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
resultArray of objects(TrialOfferClass)required

List of trial offer classes

result[].​trialOfferConfigIdinteger(int64)required

Unique ID of the trial offer class

Example: 1
result[].​trialOfferClassobject(Class)required

Trial offer class

result[].​trialOfferClass.​idinteger(int64)required

Unique ID of the class

Example: 1001
result[].​trialOfferClass.​titlestring

Title of the class

Example: "Mission Beach body"
result[].​trialOfferClass.​typestring

Defines whether a class is held in the studio or virtually

Enum"STUDIO""STREAM"
Example: "STUDIO"
result[].​trialOfferClass.​durationinteger(int32)

Duration of the class in minutes

Example: 45
result[].​trialOfferClass.​categorystring

Category of the class

Example: "Fitness"
result[].​trialOfferClass.​descriptionstring

Description of the class

Example: "Get your body ready for beaches"
result[].​trialOfferClass.​imgUrlstring

Image URL assigned to display this class

result[].​trialOfferClass.​bookablebooleanrequired

Whether this class can be booked

result[].​trialOfferClass.​cancelConditionobject(ClassCancelationCondition)

Cancelation condition of a class

result[].​idinteger(int64)
hasNextbooleanrequired

True if there exists next data slice

Example: true
offsetstringrequired

Offset for next query (last ID of the class)

Example: "1234567890"
Response
application/json
{ "result": [ {} ], "hasNext": true, "offset": "1234567890" }

Get bookable trial offer appointments

Request

Required Scopes: TRIAL_OFFER_READ

Get pageable bookable trial offer appointments within the next year

Security
ApiKeyAuth
Query
offsetstring

Offset from last request (last ID of the bookable appointment)

Default "0"
sliceSizeinteger(int32)[ 10 .. 100 ]

Desired size of data chunk

Default 50
curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/bookable-trial-offers/appointments/bookable?offset=0&sliceSize=50' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
resultArray of objects(BookableTrialOfferAppointment)required

List of bookable trial offer appointments

result[].​trialOfferConfigIdinteger(int64)required

Unique ID of the trial offer configuration containing the bookable trial offer appointment

Example: 1
result[].​trialOfferBookableAppointmentobject(BookableAppointment)required

Trial offer bookable appointment

result[].​trialOfferBookableAppointment.​idinteger(int64)required

Unique ID of the bookable appointment

Example: 1001
result[].​trialOfferBookableAppointment.​titlestring

Title of the bookable appointment

Example: "Mission Beach body"
result[].​trialOfferBookableAppointment.​durationinteger(int32)

Duration of the bookable appointment in minutes

Example: 45
result[].​trialOfferBookableAppointment.​categorystring

Category of the bookable appointment

Example: "Fitness"
result[].​trialOfferBookableAppointment.​descriptionstring

Description of the bookable appointment

Example: "Get your body ready for beaches"
result[].​trialOfferBookableAppointment.​imgUrlstring

Image URL assigned to display this bookable appointment

result[].​idinteger(int64)
hasNextbooleanrequired

True if there exists next data slice

Example: true
offsetstringrequired

Offset for next query (last ID of the bookable appointment)

Example: "1234567890"
Response
application/json
{ "result": [ {} ], "hasNext": true, "offset": "1234567890" }

Request

Required Scopes: TRIAL_OFFER_READ

Get trial offer config by config id

Security
ApiKeyAuth
Path
configIdinteger(int64)required

Id of the trial offer configuration

curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/config/{configId}' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
idinteger(int64)required

The id of the trial offer config

Example: 1
namestringrequired

The name of the trial offer config

Example: "Probeangebot"
preventMultipleBookingsTermobject(Term)required

Represents a term

preventMultipleBookingsTerm.​valueinteger(int32)required

The value of the term

Example: 2
preventMultipleBookingsTerm.​unitstringrequired

Represents a temporal unit

Enum ValueDescription
MONTH

Represents month unit

YEAR

Represents year unit

WEEK

Represents a week unit

DAY

Represents a day unit

Example: "WEEK"
contingentinteger(int32)required

How often a lead can book the trial offer

Example: 2
confirmationOfBookingTermobject(TermWithMinutes)

Represents a term with minutes

allowBookingForLeadsbooleanrequired

Whether booking is allowed for leads

Example: true
leadDataConfigobject(TrialOfferLeadDataConfig)required

The trial offer lead data configuration

leadDataConfig.​trialOfferLeadDataConfigIdinteger(int64)required

The ID of the trial offer lead data config

Example: 1
leadDataConfig.​genderModestringrequired

Represents the mode of an input field

Enum ValueDescription
OPTIONAL

The input is optional

INACTIVE

The input is disabled

MANDATORY

The input is mandatory

Example: "INACTIVE"
leadDataConfig.​dateOfBirthModestringrequired

Represents the mode of an input field

Enum ValueDescription
OPTIONAL

The input is optional

INACTIVE

The input is disabled

MANDATORY

The input is mandatory

Example: "INACTIVE"
leadDataConfig.​telephoneModestringrequired

Represents the mode of an input field

Enum ValueDescription
OPTIONAL

The input is optional

INACTIVE

The input is disabled

MANDATORY

The input is mandatory

Example: "INACTIVE"
leadDataConfig.​addressModestringrequired

Represents the mode of an input field

Enum ValueDescription
OPTIONAL

The input is optional

INACTIVE

The input is disabled

MANDATORY

The input is mandatory

Example: "INACTIVE"
Response
application/json
{ "id": 1, "name": "Probeangebot", "preventMultipleBookingsTerm": { "value": 2, "unit": "WEEK" }, "contingent": 2, "confirmationOfBookingTerm": { "value": 2, "unit": "WEEK" }, "allowBookingForLeads": true, "leadDataConfig": { "trialOfferLeadDataConfigId": 1, "genderMode": "INACTIVE", "dateOfBirthMode": "INACTIVE", "telephoneMode": "INACTIVE", "addressMode": "INACTIVE" } }

Validate for lead customer creation

Request

Required Scopes: TRIAL_OFFER_WRITE

Validate for the creation of a new lead customer

Security
ApiKeyAuth
Bodyapplication/jsonrequired
leadCustomerDataobject(LeadData)required

Full Lead customer data with address

leadCustomerData.​thirdPartyIdstring

Unique ID of the third party customer in the third party system

Example: "A1000"
leadCustomerData.​firstnamestringrequired

First name of the lead customer

Example: "Max"
leadCustomerData.​secondFirstnamestring

Second first name of the lead customer

Example: "Peter"
leadCustomerData.​lastnamestringrequired

Last name of the lead customer

Example: "Mustermann"
leadCustomerData.​secondLastnamestring

Second last name of the lead customer

Example: "Meier"
leadCustomerData.​emailstringrequired

Email of the lead customer

Example: "example@email.com"
leadCustomerData.​genderstring

Gender of the customer

Enum ValueDescription
MALE

Male gender of the customer

FEMALE

Female gender of the customer

UNISEX

Unisex gender of the customer

Example: "MALE"
leadCustomerData.​dateOfBirthstring(date)

Date of birth of the lead customer

Example: "2000-10-10"
leadCustomerData.​telephonestring

Telephone number of the lead customer

Example: "5006001112"
leadCustomerData.​languageobject(Language)

Language of the lead customer

leadCustomerData.​addressobject(LeadCustomerAddressData)

Lead customer address information

trialOfferConfigIdinteger(int64)required

The ID of the trial offer config

Example: 1
curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/lead/validate \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "leadCustomerData": {
      "thirdPartyId": "A1000",
      "firstname": "Max",
      "secondFirstname": "Peter",
      "lastname": "Mustermann",
      "secondLastname": "Meier",
      "email": "example@email.com",
      "gender": "MALE",
      "dateOfBirth": "2000-10-10",
      "telephone": "5006001112",
      "language": {
        "languageCode": "de",
        "countryCode": "DE"
      },
      "address": {
        "street": "Burgring",
        "houseNumber": "23A",
        "zipCode": "13000",
        "city": "Berlin"
      }
    },
    "trialOfferConfigId": 1
  }'

Responses

OK

Bodyapplication/json
validationStatusstringrequired

Status of the lead customer creation validation

Enum ValueDescription
POSSIBLE

Lead customer creation is possible

INVALID_LEAD_CUSTOMER_DATA

The provided lead customer data is invalid

DUPLICATE_CUSTOMER

A customer with provided data already exists

Example: "POSSIBLE"
Response
application/json
{ "validationStatus": "POSSIBLE" }

Request

Required Scopes: TRIAL_OFFER_WRITE

Create a lead customer

Security
ApiKeyAuth
Bodyapplication/jsonrequired
leadCustomerDataobject(LeadData)required

Full Lead customer data with address

leadCustomerData.​thirdPartyIdstring

Unique ID of the third party customer in the third party system

Example: "A1000"
leadCustomerData.​firstnamestringrequired

First name of the lead customer

Example: "Max"
leadCustomerData.​secondFirstnamestring

Second first name of the lead customer

Example: "Peter"
leadCustomerData.​lastnamestringrequired

Last name of the lead customer

Example: "Mustermann"
leadCustomerData.​secondLastnamestring

Second last name of the lead customer

Example: "Meier"
leadCustomerData.​emailstringrequired

Email of the lead customer

Example: "example@email.com"
leadCustomerData.​genderstring

Gender of the customer

Enum ValueDescription
MALE

Male gender of the customer

FEMALE

Female gender of the customer

UNISEX

Unisex gender of the customer

Example: "MALE"
leadCustomerData.​dateOfBirthstring(date)

Date of birth of the lead customer

Example: "2000-10-10"
leadCustomerData.​telephonestring

Telephone number of the lead customer

Example: "5006001112"
leadCustomerData.​languageobject(Language)

Language of the lead customer

leadCustomerData.​addressobject(LeadCustomerAddressData)

Lead customer address information

trialOfferConfigIdinteger(int64)required

The ID of the trial offer config

Example: 1
curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/lead/create \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "leadCustomerData": {
      "thirdPartyId": "A1000",
      "firstname": "Max",
      "secondFirstname": "Peter",
      "lastname": "Mustermann",
      "secondLastname": "Meier",
      "email": "example@email.com",
      "gender": "MALE",
      "dateOfBirth": "2000-10-10",
      "telephone": "5006001112",
      "language": {
        "languageCode": "de",
        "countryCode": "DE"
      },
      "address": {
        "street": "Burgring",
        "houseNumber": "23A",
        "zipCode": "13000",
        "city": "Berlin"
      }
    },
    "trialOfferConfigId": 1
  }'

Responses

OK

Bodyapplication/json
leadCustomerIdinteger(int64)

The ID of the created lead customer

Example: 1001
Response
application/json
{ "leadCustomerId": 1001 }

Request

Required Scopes: TRIAL_OFFER_READ

Returns class slots for trial offers for specified class id and the period of one day before to fourteen days ahead

Security
ApiKeyAuth
Path
classIdinteger(int64)required

Id of the trial offer class

Query
offsetstring

Offset from last request

Default "0"
sliceSizeinteger(int32)[ 10 .. 100 ]

Desired size of data chunk

Default 50
curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/bookable-trial-offers/classes/{classId}/slots?offset=0&sliceSize=50' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
resultArray of objects(ClassSlot)required

List of class slots

result[].​idinteger(int64)required

Unique ID of a class slot

Example: 1001
result[].​startDateTimestring(date-time)

Class slot start date and time with zone

Example: "2022-06-22T08:00:00.000+02:00[Europe/Berlin]"
result[].​endDateTimestring(date-time)

Class slot end date and time with zone

Example: "2022-06-22T09:00:00.000+02:00[Europe/Berlin]"
result[].​classInformationobject(BasicClass)

Basic information of a class

result[].​instructorsArray of objects(Instructor)

List of instructors

result[].​locationobject(Location)

Represents location data

result[].​earliestBookingDateTimestring(date-time)

Class slot earliest booking date and time with zone

Example: "2022-06-15T00:00:00.000+02:00[Europe/Berlin]"
result[].​latestBookingDateTimestring(date-time)

Class slot latest booking date and time with zone

Example: "2022-06-15T23:59:59.999+02:00[Europe/Berlin]"
result[].​maxParticipantsinteger(int32)

Maximum participants allowed for a class slot

Example: 25
result[].​maxWaitingListParticipantsinteger(int32)

Maximum number of waiting list participants allowed for a class slot

Example: 5
result[].​bookedParticipantsinteger(int32)

Current number of booked participants of a class slot

Example: 25
result[].​additionalParticipantsinteger(int32)required

Additional participants added by the operator

Example: 5
result[].​waitingListParticipantsinteger(int32)

Current number of waiting list participants of a class slot

Example: 2
hasNextbooleanrequired

True if there exists next data slice

Example: true
offsetstringrequired

Offset for next query

Example: "1234567890"
Response
application/json
{ "result": [ {} ], "hasNext": true, "offset": "1234567890" }

Get bookable appointment slots for trial offers

Request

Required Scopes: TRIAL_OFFER_READ

Returns bookable appointment slots for trial offers

Security
ApiKeyAuth
Path
bookableAppointmentIdinteger(int64)required

Id of the bookable trial offer appointment

Query
customerIdinteger(int64)

Id of the customer

daysAheadinteger(int32)[ 1 .. 6 ]

Days from now on to look ahead

Default 1
slotWindowStartDatestring(date)

Bookable appointment slots are calculated in the window from slotWindowStartDate to (slotWindowStartDate + daysAhead)

curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/bookable-trial-offers/appointments/bookable/{bookableAppointmentId}/slots?customerId=0&daysAhead=1&slotWindowStartDate=2019-08-24' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
startDateTimestring(date-time)

Start date time of the bookable appointment slot

Example: "2022-06-22T08:00:00.000+02:00[Europe/Berlin]"
endDateTimestring(date-time)

End date time of the bookable appointment slot

Example: "2022-06-22T10:00:00.000+02:00[Europe/Berlin]"
instructorsArray of objects(Instructor)

List of instructors

]
Response
application/json
[ { "startDateTime": "2022-06-22T08:00:00.000+02:00[Europe/Berlin]", "endDateTime": "2022-06-22T10:00:00.000+02:00[Europe/Berlin]", "instructors": [] } ]

Validate class slot is bookable for trial offers

Request

Required Scopes: TRIAL_OFFER_WRITE

Validate class slot for trial offers is available to book for given customer

Security
ApiKeyAuth
Bodyapplication/jsonrequired
customerIdinteger(int64)required

Unique ID of the customer

Example: 203
classSlotIdinteger(int64)required

Unique ID of the class slot

Example: 20334
curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/classes/booking/validate \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "customerId": 203,
    "classSlotId": 20334
  }'

Responses

OK

Bodyapplication/json
validationStatusstringrequired

Status of the booking validation

Enum ValueDescription
AVAILABLE

Booking is possible

NO_CONTINGENT

Customer doesn't have required contingent

BOOKING_LIMIT_REACHED

Waiting List/Max participant list exceeded

CUSTOMER_ALREADY_BOOKED

Customer already added to class slot

CUSTOMER_IDLE

Customer has an idle period during the time of the class slot

STUDIO_CLOSED

Studio is closed during period

CUSTOMER_IN_OTHER_BOOKING

Customer has other bookings in this period

DATE_TIME_BEFORE_EARLIEST_BOOKING_DATE_TIME

Date and time are before earliest possible booking date

NOT_AVAILABLE

Booking is not possible for other reasons

DISPLAY_ONLY

Class is display only

Example: "AVAILABLE"
Response
application/json
{ "validationStatus": "AVAILABLE" }

Validate for appointment booking for trial offers

Request

Required Scopes: TRIAL_OFFER_WRITE

Returns validation result for trial offers appointment booking

Security
ApiKeyAuth
Bodyapplication/jsonrequired
customerIdinteger(int64)required

Unique ID of the customer

Example: 203
bookableAppointmentIdinteger(int64)required

Unique ID of the bookable appointment

Example: 20334
startDateTimestring(date-time)required

Start date time of the bookable appointment slot

Example: "2022-06-22T08:00:00.000+02:00[Europe/Berlin]"
endDateTimestring(date-time)required

End date time of the bookable appointment slot

Example: "2022-06-22T10:00:00.000+02:00[Europe/Berlin]"
instructorIdsArray of integers(int64)

Instructor ID list of the bookable appointment slot

curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/appointments/booking/validate \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "customerId": 203,
    "bookableAppointmentId": 20334,
    "startDateTime": "2022-06-22T08:00:00.000+02:00[Europe/Berlin]",
    "endDateTime": "2022-06-22T10:00:00.000+02:00[Europe/Berlin]",
    "instructorIds": [
      0
    ]
  }'

Responses

OK

Bodyapplication/json
validationStatusstringrequired

Status of the booking validation

Enum ValueDescription
NO_CONTINGENT

Customer doesn't have required contingent

CUSTOMER_IDLE

Customer has an idle period during the time of the bookable appointment slot

BOOKABLE_APPOINTMENT_RESTRICTIONS_NOT_FULFILLED

The restriction(s) of the bookable appointment is/are not fulfilled

STUDIO_CLOSED

Studio is closed during period

AVAILABLE

Booking is possible

PAST_START_DATE_TIME

The start date and time is in the past

BOOKING_LIMIT_REACHED

Booking limit reached

CUSTOMER_IN_OTHER_BOOKING

Customer has other bookings in this period

DATE_TIME_BEFORE_EARLIEST_BOOKING_DATE_TIME

Date and time are before earliest possible booking date

PERIOD_DOES_NOT_MATCH

The period from start date and time to end date and time does not match the main time of the bookable appointment

Example: "RESOURCE_NOT_AVAILABLE"
Response
application/json
{ "validationStatus": "RESOURCE_NOT_AVAILABLE" }

Book a class slot for trial offers

Request

Required Scopes: TRIAL_OFFER_WRITE

Book a class slot for trial offers for given customer

Security
ApiKeyAuth
Bodyapplication/jsonrequired
customerIdinteger(int64)required

Unique ID of the customer

Example: 203
classSlotIdinteger(int64)required

Unique ID of the class slot

Example: 20334
curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/classes/booking/book \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "customerId": 203,
    "classSlotId": 20334
  }'

Responses

OK

Bodyapplication/json
bookingIdinteger(int64)required

Unique ID of a class booking

Example: 2033
bookingStatusstringrequired

Status of the class slot booking

Enum ValueDescription
BOOKED

Customer is successfully booked

CANCELED

Customer booking is canceled

BOOKED_WITH_CONFIRMATION_REQUIRED

Customer is booked, but booking confirmation is required

WAITING_LIST

Customer is assigned to waiting list

Example: "BOOKED"
classSlotIdinteger(int64)required

Unique ID of a class slot

Example: 14928
classIdinteger(int64)required

Unique ID of a class

Example: 14928
customerIdinteger(int64)required

Unique ID of a customer

Example: 14925548
classSlotStatusstringrequired

The status of a class slot

Enum ValueDescription
COMPLETED

The class slot is completed.

CANCELED

The class slot is canceled.

PLANNED

The class slot is planned.

Example: "COMPLETED"
participantStatusstringrequired

The status of a participant

Enum ValueDescription
PARTICIPATING

The customer is participating.

UNSET

The participation status is not set.

NOT_PARTICIPATING

The customer is not participating.

Example: "PARTICIPATING"
Response
application/json
{ "bookingId": 2033, "bookingStatus": "BOOKED", "classSlotId": 14928, "classId": 14928, "customerId": 14925548, "classSlotStatus": "COMPLETED", "participantStatus": "PARTICIPATING" }

Book an appointment for trial offers

Request

Required Scopes: TRIAL_OFFER_WRITE

Book an appointment for trial offers for given customer

Security
ApiKeyAuth
Bodyapplication/jsonrequired
customerIdinteger(int64)required

Unique ID of the customer

Example: 203
bookableAppointmentIdinteger(int64)required

Unique ID of the bookable appointment

Example: 20334
startDateTimestring(date-time)required

Start date time of the bookable appointment slot

Example: "2022-06-22T08:00:00.000+02:00[Europe/Berlin]"
endDateTimestring(date-time)required

End date time of the bookable appointment slot

Example: "2022-06-22T10:00:00.000+02:00[Europe/Berlin]"
instructorIdsArray of integers(int64)

Instructor ID list of the bookable appointment slot

curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/appointments/booking/book \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "customerId": 203,
    "bookableAppointmentId": 20334,
    "startDateTime": "2022-06-22T08:00:00.000+02:00[Europe/Berlin]",
    "endDateTime": "2022-06-22T10:00:00.000+02:00[Europe/Berlin]",
    "instructorIds": [
      0
    ]
  }'

Responses

OK

Bodyapplication/json
bookingIdinteger(int64)required

Unique ID of the appointment booking

Example: 2033
bookingStatusstringrequired

Status of the appointment booking

Enum ValueDescription
BOOKED

Customer is successfully booked

CANCELED

Customer booking is canceled

BOOKED_WITH_CONFIRMATION_REQUIRED

Customer booking is successful, but confirmation is required

Example: "BOOKED"
startDateTimestring(date-time)required

Start date and time of the appointment booking

endDateTimestring(date-time)required

End date and time of the appointment booking

titlestring

Title of the appointment booking

Example: "Mission Beach body"
durationinteger(int32)

Duration of the appointment booking in minutes

Example: 45
categorystring

Category of the appointment booking

Example: "Fitness"
descriptionstring

Description of the appointment booking

Example: "Get your body ready for beaches"
imgUrlstring

Image URL assigned to display this appointment booking

instructorsArray of objects(Instructor)

Instructors list of the appointment booking

appointmentStatusstringrequired

The status of an appointment

Enum ValueDescription
COMPLETED

The appointment is completed.

CANCELED

The appointment is canceled.

PLANNED

The appointment is planned.

Example: "COMPLETED"
participantStatusstringrequired

The status of a participant

Enum ValueDescription
PARTICIPATING

The customer is participating.

UNSET

The participation status is not set.

NOT_PARTICIPATING

The customer is not participating.

Example: "PARTICIPATING"
Response
application/json
{ "bookingId": 2033, "bookingStatus": "BOOKED", "startDateTime": "2019-08-24T14:15:22Z", "endDateTime": "2019-08-24T14:15:22Z", "title": "Mission Beach body", "duration": 45, "category": "Fitness", "description": "Get your body ready for beaches", "imgUrl": "string", "instructors": [ {} ], "appointmentStatus": "COMPLETED", "participantStatus": "PARTICIPATING" }

Confirm the booking of trial offers

Request

Required Scopes: TRIAL_OFFER_WRITE

Confirm the booking of trial offers for classes or appointments if required

Security
ApiKeyAuth
Path
bookingIdinteger(int64)required

Id of the booking

curl -i -X POST \
  'https://open-api-demo.open-api.perfectgym.com/v1/trial-offers/bookings/{bookingId}/confirm' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
statusstringrequired

Status of the booking confirmation

Enum ValueDescription
CONFIRMED

The booking is confirmed.

EXPIRED

The time to confirm the booking has expired.

Example: "CONFIRMED"
Response
application/json
{ "status": "CONFIRMED" }