Appointment, bookable appointment and slots operations
PerfectGym Next API (1.16.3)
- 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
- Retrieve customer transaction details
- Get device information
- Employee operations
- Debt collection operations
- Leads operations
- Get member lists
- Manage membership contracts
- Membership operations
- Online offer 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/online-offers/purchasable
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/online-offers/purchasable
- 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/online-offers/purchasable?offset=0&sliceSize=50' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
List of online offers
The number of times the online offer can be used.
The price amount and currency for the online offer.
Online offer period of use information.
Represents a term with minutes
The value of the term with minutes
Describes the type of the online offer.
| Value | Description |
|---|---|
| CHECK_IN_BASED | The offer is based on check-ins. |
{ "result": [ { … } ], "hasNext": true, "offset": "1234567890" }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/online-offers/purchasable/{offerId}
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/online-offers/purchasable/{offerId}
- 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/online-offers/purchasable/{offerId}' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
The price amount and currency for the online offer.
Online offer period of use information.
Represents a term with minutes
Describes the type of the online offer.
| Value | Description |
|---|---|
| CHECK_IN_BASED | The offer is based on check-ins. |
Restrictions (facility, age and time) applicable to the online offer. May be absent when the live offer variant is unavailable.
{ "onlineOfferId": 12345, "name": "Day Ticket Adult", "scopeOfUsage": 1, "price": { "amount": 20, "currency": "EUR" }, "periodOfUse": { "term": { … }, "type": "ONE_TIME" }, "type": "CHECK_IN_BASED", "category": { "id": 1, "name": "Memberships" }, "validity": { "value": 2, "unit": "WEEK" }, "restrictions": { "minAge": 18, "maxAge": 65, "studioAccessType": "ALL_STUDIOS", "restrictedStudioIds": [ … ], "timeRestrictions": { … } }, "paymentMethods": [ "ONLINE_PAYMENT" ] }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/online-offers/purchase/preview
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/online-offers/purchase/preview
- 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/online-offers/purchase/preview \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"onlineOfferId": 12345,
"customerId": 67890,
"voucherCode": "SUMMER21"
}'OK
Success message if the voucher was applied successfully
Represents a voucher error code
| Enum Value | Description |
|---|---|
| INVALID_CODE | Represents an invalid voucher code |
| REFERRAL_COMBINATION_NOT_ALLOWED | Represents that the voucher cannot be combined with a referral code |
| ALREADY_REDEEMED | Represents that the voucher has already been redeemed |
{ "price": { "amount": 20, "currency": "EUR" }, "discountedPrice": { "amount": 20, "currency": "EUR" }, "discountValue": { "amount": 20, "currency": "EUR" }, "voucherSuccessMessage": "Voucher applied successfully", "voucherErrorCode": "INVALID_CODE" }
The date from which the purchased online offer becomes valid
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/online-offers/purchase
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/online-offers/purchase
- 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/online-offers/purchase \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"onlineOfferId": 12345,
"customerId": 67890,
"validFrom": "2024-07-01",
"voucherCode": "SUMMER2024",
"paymentRequestToken": "abc123token"
}'OK
Success message if the voucher was applied successfully
Represents a voucher error code
| Enum Value | Description |
|---|---|
| INVALID_CODE | Represents an invalid voucher code |
| REFERRAL_COMBINATION_NOT_ALLOWED | Represents that the voucher cannot be combined with a referral code |
| ALREADY_REDEEMED | Represents that the voucher has already been redeemed |
{ "onlineOfferPurchaseId": 123456, "studioAccessCode": "PTKXPMUO", "price": { "amount": 20, "currency": "EUR" }, "discountedPrice": { "amount": 20, "currency": "EUR" }, "discountValue": { "amount": 20, "currency": "EUR" }, "voucherSuccessMessage": "Voucher applied successfully", "voucherErrorCode": "INVALID_CODE" }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/online-offers/{customerId}/purchased
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/online-offers/{customerId}/purchased
- 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/online-offers/{customerId}/purchased' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
The price amount and currency for the online offer.
Online offer period of use information.
Represents a term with minutes
Describes the type of the online offer.
| Value | Description |
|---|---|
| CHECK_IN_BASED | The offer is based on check-ins. |
The date when the online offer was purchased in the timezone of the studio it was purchased in.
The expiry date of the online offer in the timezone of the studio it was purchased in.
Studio access code for the purchased online offer.
The date from which the purchased online offer becomes valid
[ { "onlineOfferId": 12345, "name": "Day Ticket Adult", "scopeOfUsage": 1, "price": { … }, "periodOfUse": { … }, "type": "CHECK_IN_BASED", "category": { … }, "onlineOfferPurchaseId": 123456, "purchaseDate": "2026-01-15T00:00:00+01:00[Europe/Berlin]", "expiryDate": "2026-01-15T00:00:00+01:00[Europe/Berlin]", "studioAccessCode": "ABC123XYZ", "studioId": 67890, "validFrom": "2026-01-15T00:00:00+01:00[Europe/Berlin]", "voucherCode": "VOUCHER-ABC123", "discountedPrice": { … }, "discountValue": { … } } ]
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/online-offers/{customerId}/purchased/{offerId}
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/online-offers/{customerId}/purchased/{offerId}
- 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/online-offers/{customerId}/purchased/{offerId}' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
The price amount and currency for the online offer.
Online offer period of use information.
Represents a term with minutes
Describes the type of the online offer.
| Value | Description |
|---|---|
| CHECK_IN_BASED | The offer is based on check-ins. |
Restrictions (facility, age and time) applicable to the online offer. May be absent when the live offer variant is unavailable.
The date when the online offer was purchased in the timezone of the studio it was purchased in.
The expiry date of the online offer in the timezone of the studio it was purchased in.
Studio access code for the purchased online offer.
The date from which the purchased online offer becomes valid
[ { "onlineOfferId": 12345, "name": "Day Ticket Adult", "scopeOfUsage": 1, "price": { … }, "periodOfUse": { … }, "type": "CHECK_IN_BASED", "category": { … }, "validity": { … }, "restrictions": { … }, "onlineOfferPurchaseId": 123456, "purchaseDate": "2026-01-15T00:00:00+01:00[Europe/Berlin]", "expiryDate": "2026-01-15T00:00:00+01:00[Europe/Berlin]", "studioAccessCode": "ABC123XYZ", "studioId": 67890, "validFrom": "2026-01-15T00:00:00+01:00[Europe/Berlin]", "voucherCode": "VOUCHER-ABC123", "discountedPrice": { … }, "discountValue": { … } } ]