Appointment, bookable appointment and slots operations
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
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.
Describes the studio access type for an online offer.
| Enum Value | Description |
|---|---|
| MAIN_STUDIO | Access is restricted to the main studio. |
| ALL_STUDIOS | Access is granted to all studios. |
| RESTRICTED_STUDIOS | Access is restricted to a specific list of studios. |
List of studio IDs where the offer is available
Time restrictions for offer based on opening hours category
{ "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, "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"
}'{ "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"
}'{ "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.
Describes the studio access type for an online offer.
| Enum Value | Description |
|---|---|
| MAIN_STUDIO | Access is restricted to the main studio. |
| ALL_STUDIOS | Access is granted to all studios. |
| RESTRICTED_STUDIOS | Access is restricted to a specific list of studios. |
List of studio IDs where the offer is available
Time restrictions for offer based on opening hours category
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": { … } } ]