Appointment, bookable appointment and slots operations
PerfectGym Next API (1.12.1)
- 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
- Payment operations
- Get studio information
- Get trial offers information
https://open-api-demo.open-api.perfectgym.com/
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/appointments/bookable
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/appointments/bookable
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/appointments/bookable?offset=0&sliceSize=50' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'{ "result": [ { … } ], "hasNext": true, "offset": "1234567890" }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/appointments/bookable/{bookableAppointmentId}
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/appointments/bookable/{bookableAppointmentId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/appointments/bookable/{bookableAppointmentId}' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'{ "id": 1001, "title": "Mission Beach body", "duration": 45, "category": "Fitness", "description": "Get your body ready for beaches", "imgUrl": "string" }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/appointments/bookable/{bookableAppointmentId}/slots
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/appointments/bookable/{bookableAppointmentId}/slots
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/appointments/bookable/{bookableAppointmentId}/slots?customerId=0&daysAhead=1&slotWindowStartDate=2019-08-24' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'[ { "startDateTime": "2022-06-22T08:00:00.000+02:00[Europe/Berlin]", "endDateTime": "2022-06-22T10:00:00.000+02:00[Europe/Berlin]", "instructors": [ … ] } ]
Start date time of the bookable appointment slot
End date time of the bookable appointment slot
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/appointments/bookable/validate
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/appointments/bookable/validate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://open-api-demo.open-api.perfectgym.com/v1/appointments/bookable/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
]
}'OK
Status of the booking validation
| Enum Value | Description |
|---|---|
| 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 |
{ "validationStatus": "RESOURCE_NOT_AVAILABLE" }
Start date time of the bookable appointment slot
End date time of the bookable appointment slot
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/appointments/booking/book
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/appointments/booking/book
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://open-api-demo.open-api.perfectgym.com/v1/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
]
}'OK
Status of the appointment booking
| Enum Value | Description |
|---|---|
| BOOKED | Customer is successfully booked |
| CANCELED | Customer booking is canceled |
| BOOKED_WITH_CONFIRMATION_REQUIRED | Customer booking is successful, but confirmation is required |
The status of an appointment
| Enum Value | Description |
|---|---|
| COMPLETED | The appointment is completed. |
| CANCELED | The appointment is canceled. |
| PLANNED | The appointment is planned. |
{ "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" }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/appointments/booking/{bookingId}
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/appointments/booking/{bookingId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/appointments/booking/{bookingId}' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
Status of the appointment booking
| Enum Value | Description |
|---|---|
| BOOKED | Customer is successfully booked |
| CANCELED | Customer booking is canceled |
| BOOKED_WITH_CONFIRMATION_REQUIRED | Customer booking is successful, but confirmation is required |
The status of an appointment
| Enum Value | Description |
|---|---|
| COMPLETED | The appointment is completed. |
| CANCELED | The appointment is canceled. |
| PLANNED | The appointment is planned. |
The status of a participant
| Enum Value | Description |
|---|---|
| PARTICIPATING | The customer is participating. |
| UNSET | The participation status is not set. |
| NOT_PARTICIPATING | The customer is not participating. |
{ "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", "customerId": 1234 }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/appointments/booking/{bookingId}
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/appointments/booking/{bookingId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://open-api-demo.open-api.perfectgym.com/v1/appointments/booking/{bookingId}' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/appointments/booking
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/appointments/booking
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://open-api-demo.open-api.perfectgym.com/v1/appointments/booking?customerId=0' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
Status of the appointment booking
| Enum Value | Description |
|---|---|
| BOOKED | Customer is successfully booked |
| CANCELED | Customer booking is canceled |
| BOOKED_WITH_CONFIRMATION_REQUIRED | Customer booking is successful, but confirmation is required |
The status of an appointment
| Enum Value | Description |
|---|---|
| COMPLETED | The appointment is completed. |
| CANCELED | The appointment is canceled. |
| PLANNED | The appointment is planned. |
The status of a participant
| Enum Value | Description |
|---|---|
| PARTICIPATING | The customer is participating. |
| UNSET | The participation status is not set. |
| NOT_PARTICIPATING | The customer is not participating. |
[ { "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" } ]