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/cross-studio/customers/by
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/cross-studio/customers/by
- 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/cross-studio/customers/by?cardNumber=string&cardNumberFormat=DECIMAL&debtorId=string&barcode=string&pin=string&customerNumber=string&qrCodeUuid=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
Gender of the customer
| Enum Value | Description |
|---|---|
| MALE | Male gender of the customer |
| FEMALE | Female gender of the customer |
| UNISEX | Unisex gender of the customer |
Additional address information of the customer's address
Status of customer
| Enum Value | Description |
|---|---|
| FORMER_MEMBER | Customer is a former member |
| PROSPECT | Customer without contracts |
| MEMBER | Customer with contracts attached |
Url with an image to download. It will expire after 15 minutes
List of additional information field assignments of the customer
Customer's creation date time in ISO-8601 format
UID list of the customer card numbers in expected format. (The new property to use is accessMediums)
{ "id": 1001, "customerNumber": "1-12345", "firstName": "Edgar", "secondFirstName": "Thomas", "lastName": "Bullock", "secondLastName": "Meyer", "dateOfBirth": "1952-05-04", "email": "example@email.com", "gender": "MALE", "street": "Am Bahnhof", "houseNumber": 89, "zipCode": "12133", "city": "Munich", "country": "DE", "secondStreet": "Second Street", "cityPart": "Tegel", "district": "District 12", "streetType": "Avenue", "streetBlock": "5th block", "portal": "Portal 1", "stairway": "Right stairway", "door": "Door 1", "province": "Champagne", "additionalAddressInformation": "Additional information", "floor": "2nd floor", "buildingName": "Empire State Building", "status": "MEMBER", "cardNumbers": [ "1290158199" ], "imageUrl": "https://example.com", "phonePrivate": "+49 30901820", "phonePrivateMobile": "+49 15223433333", "phoneBusiness": "+49 30901820", "phoneBusinessMobile": "+49 15223433333", "idlePeriods": [ { … } ], "bankAccount": { "accountHolder": "Sven Hannawald", "bankName": "Deutsche Bank", "bic": "DEUTDEFFXXX", "iban": "DE91 1000 0000 0123 4567 89" }, "accessRefusal": true, "accessRestrictions": [ { … } ], "uuid": "7be3932c-825b-4401-abff-29e9f9410bc7", "referralCode": "20J6N", "studioId": 1238735970, "preferredLanguage": { "languageCode": "de", "countryCode": "DE" }, "additionalInformationFieldAssignments": [ { … } ], "thirdPartyId": "A1000", "createdDateTime": "2022-06-15T23:59:59.999+02:00[Europe/Berlin]", "accessMediums": [ { … } ] }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/cross-studio/customers/{customerId}
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/cross-studio/customers/{customerId}
- 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/cross-studio/customers/{customerId}?cardNumberFormat=DECIMAL' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'OK
Gender of the customer
| Enum Value | Description |
|---|---|
| MALE | Male gender of the customer |
| FEMALE | Female gender of the customer |
| UNISEX | Unisex gender of the customer |
Additional address information of the customer's address
Status of customer
| Enum Value | Description |
|---|---|
| FORMER_MEMBER | Customer is a former member |
| PROSPECT | Customer without contracts |
| MEMBER | Customer with contracts attached |
Url with an image to download. It will expire after 15 minutes
List of additional information field assignments of the customer
Customer's creation date time in ISO-8601 format
UID list of the customer card numbers in expected format. (The new property to use is accessMediums)
{ "id": 1001, "customerNumber": "1-12345", "firstName": "Edgar", "secondFirstName": "Thomas", "lastName": "Bullock", "secondLastName": "Meyer", "dateOfBirth": "1952-05-04", "email": "example@email.com", "gender": "MALE", "street": "Am Bahnhof", "houseNumber": 89, "zipCode": "12133", "city": "Munich", "country": "DE", "secondStreet": "Second Street", "cityPart": "Tegel", "district": "District 12", "streetType": "Avenue", "streetBlock": "5th block", "portal": "Portal 1", "stairway": "Right stairway", "door": "Door 1", "province": "Champagne", "additionalAddressInformation": "Additional information", "floor": "2nd floor", "buildingName": "Empire State Building", "status": "MEMBER", "cardNumbers": [ "1290158199" ], "imageUrl": "https://example.com", "phonePrivate": "+49 30901820", "phonePrivateMobile": "+49 15223433333", "phoneBusiness": "+49 30901820", "phoneBusinessMobile": "+49 15223433333", "idlePeriods": [ { … } ], "bankAccount": { "accountHolder": "Sven Hannawald", "bankName": "Deutsche Bank", "bic": "DEUTDEFFXXX", "iban": "DE91 1000 0000 0123 4567 89" }, "accessRefusal": true, "accessRestrictions": [ { … } ], "uuid": "7be3932c-825b-4401-abff-29e9f9410bc7", "referralCode": "20J6N", "studioId": 1238735970, "preferredLanguage": { "languageCode": "de", "countryCode": "DE" }, "additionalInformationFieldAssignments": [ { … } ], "thirdPartyId": "A1000", "createdDateTime": "2022-06-15T23:59:59.999+02:00[Europe/Berlin]", "accessMediums": [ { … } ] }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/cross-studio/customers/search
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/cross-studio/customers/search
- 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/cross-studio/customers/search \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"firstName": "Edga",
"lastName": "Bull",
"email": "example@email.com",
"dateOfBirth": "1952-05-04",
"cardNumberFormat": "DECIMAL"
}'OK
Gender of the customer
| Enum Value | Description |
|---|---|
| MALE | Male gender of the customer |
| FEMALE | Female gender of the customer |
| UNISEX | Unisex gender of the customer |
Additional address information of the customer's address
Status of customer
| Enum Value | Description |
|---|---|
| FORMER_MEMBER | Customer is a former member |
| PROSPECT | Customer without contracts |
| MEMBER | Customer with contracts attached |
Url with an image to download. It will expire after 15 minutes
List of additional information field assignments of the customer
Customer's creation date time in ISO-8601 format
UID list of the customer card numbers in expected format. (The new property to use is accessMediums)
Customer's bank account information. Deprecated: For fetching bank accounts use get customers by payment details endpoint.
[ { "id": 1001, "customerNumber": "1-12345", "firstName": "Edgar", "secondFirstName": "Thomas", "lastName": "Bullock", "secondLastName": "Meyer", "dateOfBirth": "1952-05-04", "email": "example@email.com", "gender": "MALE", "street": "Am Bahnhof", "houseNumber": 89, "zipCode": "12133", "city": "Munich", "country": "DE", "secondStreet": "Second Street", "cityPart": "Tegel", "district": "District 12", "streetType": "Avenue", "streetBlock": "5th block", "portal": "Portal 1", "stairway": "Right stairway", "door": "Door 1", "province": "Champagne", "additionalAddressInformation": "Additional information", "floor": "2nd floor", "buildingName": "Empire State Building", "status": "MEMBER", "cardNumbers": [ … ], "imageUrl": "https://example.com", "phonePrivate": "+49 30901820", "phonePrivateMobile": "+49 15223433333", "phoneBusiness": "+49 30901820", "phoneBusinessMobile": "+49 15223433333", "idlePeriods": [ … ], "bankAccount": { … }, "accessRefusal": true, "accessRestrictions": [ … ], "uuid": "7be3932c-825b-4401-abff-29e9f9410bc7", "referralCode": "20J6N", "studioId": 1238735970, "preferredLanguage": { … }, "additionalInformationFieldAssignments": [ … ], "thirdPartyId": "A1000", "createdDateTime": "2022-06-15T23:59:59.999+02:00[Europe/Berlin]", "accessMediums": [ … ] } ]
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/cross-studio/customers/{customerId}/activities/checkins
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/cross-studio/customers/{customerId}/activities/checkins
- 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/cross-studio/customers/{customerId}/activities/checkins?fromDate=2019-08-24&toDate=2019-08-24&sliceSize=10&offset=0' \
-H 'X-API-KEY: YOUR_API_KEY_HERE'{ "result": [ { … } ], "hasNext": true, "offset": "1234567890" }
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/cross-studio/membership-offers/studios
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/cross-studio/membership-offers/studios
- 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/cross-studio/membership-offers/studios \
-H 'X-API-KEY: YOUR_API_KEY_HERE'[ { "name": "Example studio", "description": "Example studio description", "country": "Germany", "countryCode": "DE", "studioId": 123, "openingDate": "2025-06-11", "closingDate": "2029-01-01" } ]
Defines how card numbers are interpreted
Payment instrument type supported for search
| Enum Value | Description |
|---|---|
| BACS | BACS payment instrument type |
| SEPA | SEPA payment instrument type |
| ACH | ACH payment instrument type |
| CREDIT_CARD | Credit card payment instrument type |
- Demo tenant
https://open-api-demo.open-api.perfectgym.com/v1/cross-studio/customers/search/by-payment-details
- Mock server
https://redocly.sportalliance.com/_mock/apis/perfectgym/openapi/openapi/v1/cross-studio/customers/search/by-payment-details
- 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/cross-studio/customers/search/by-payment-details \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY_HERE' \
-d '{
"cardNumberFormat": "DECIMAL",
"type": "SEPA",
"bankAccountNumber": "DE89370400440532013000"
}'OK
Customer information
Gender of the customer
| Enum Value | Description |
|---|---|
| MALE | Male gender of the customer |
| FEMALE | Female gender of the customer |
| UNISEX | Unisex gender of the customer |
Additional address information of the customer's address
Status of customer
| Enum Value | Description |
|---|---|
| FORMER_MEMBER | Customer is a former member |
| PROSPECT | Customer without contracts |
| MEMBER | Customer with contracts attached |
Url with an image to download. It will expire after 15 minutes
Private mobile phone number of the customer
Business mobile phone number of the customer
List of access restrictions of the customer
List of additional information field assignments of the customer
Unique ID of the third party customer in the third party system
Customer's creation date time in ISO-8601 format
UID list of the customer card numbers in expected format. (The new property to use is accessMediums)
[ { "customer": { … }, "paymentDetails": { … } } ]