Skip to content

PerfectGym Next API (1.20.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
  • 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
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

Request

Required Scopes: CUSTOMER_READ

Returns customer by given id

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

Query
cardNumberFormatstring(CardNumberFormat)

Defines how card numbers are interpreted

Default "DECIMAL"
Enum"DECIMAL""HEX_MSB""HEX_LSB"
curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}?cardNumberFormat=DECIMAL' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
idinteger(int64)required

Unique ID of the customer

Example: 1001
customerNumberstring

Customer number

Example: "1-12345"
firstNamestring

First name of the customer

Example: "Edgar"
secondFirstNamestring

Second first name of the customer

Example: "Thomas"
lastNamestring

Surname of the customer

Example: "Bullock"
secondLastNamestring

Second last name of the customer

Example: "Meyer"
dateOfBirthstring(date)

Birthday of the customer

Example: "1952-05-04"
emailstring

Email address of the customer

Example: "example@email.com"
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"
streetstring

Street of the customer

Example: "Am Bahnhof"
houseNumberstring

Number of the customer's house

Example: 89
zipCodestring

Zip code of the customer

Example: "12133"
citystring

City of the customer

Example: "Munich"
countrystring(ISO 3166-1)

Country of the customer

Example: "DE"
secondStreetstring

Second street line of the customer's address

Example: "Second Street"
cityPartstring

City part of the customer's address

Example: "Tegel"
districtstring

District of the customer's address

Example: "District 12"
streetTypestring

Street type of the customer's address

Example: "Avenue"
streetBlockstring

Street block of the customer's address

Example: "5th block"
portalstring

Portal of the customer's address

Example: "Portal 1"
stairwaystring

Stairway of the customer's address

Example: "Right stairway"
doorstring

Door of the customer's address

Example: "Door 1"
provincestring

Province of the customer's address

Example: "Champagne"
provinceCodestring

Province code of the customer's address

Example: "MD"
additionalAddressInformationstring

Additional address information of the customer's address

Example: "Additional information"
floorstring

Floor of the customer's address

Example: "2nd floor"
buildingNamestring

Building name

Example: "Empire State Building"
statusstringrequired

Status of customer

Enum ValueDescription
FORMER_MEMBER

Customer is a former member

PROSPECT

Customer without contracts

MEMBER

Customer with contracts attached

Example: "MEMBER"
imageUrlstring

Url with an image to download. It will expire after 15 minutes

Example: "https://example.com"
phonePrivatestring

Private phone number of the customer

Example: "+49 30901820"
phonePrivateMobilestring

Private mobile phone number of the customer

Example: "+49 15223433333"
phoneBusinessstring

Business phone number of the customer

Example: "+49 30901820"
phoneBusinessMobilestring

Business mobile phone number of the customer

Example: "+49 15223433333"
idlePeriodsArray of objects(CustomerIdlePeriod)

List of customer's idle periods

accessRefusalbooleanrequired

Indicates whether the customer has an access block currently

accessRestrictionsArray of objects(AccessRestriction)

List of access restrictions of the customer

uuidstring

Customer's UUID

Example: "7be3932c-825b-4401-abff-29e9f9410bc7"
referralCodestring

Customer's referral code

Example: "20J6N"
studioIdinteger(int64)

Studio ID of the customer

Example: 1238735970
preferredLanguageobject(Language)

Basic language information

additionalInformationFieldAssignmentsArray of objects(AdditionalInformationFieldAssignment)

List of additional information field assignments of the customer

thirdPartyIdstring

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

Example: "A1000"
createdDateTimestring(date-time)

Customer's creation date time in ISO-8601 format

Example: "2022-06-15T23:59:59.123+02:00"
taxIdentificationsArray of objects(TaxIdentification)

Tax identification documents of the customer.

accessMediumsArray of objects(AccessMediumDto)

List of access mediums of the customer

cardNumbersArray of stringsDeprecated

UID list of the customer card numbers in expected format. (The new property to use is accessMediums)

Example: ["1290158199"]
bankAccountobject(BankAccount)Deprecated

Customer's bank account information. Deprecated: For fetching bank accounts use the Search customers by payment details endpoint.

Response
application/json
{ "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", "provinceCode": "MD", "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.123+02:00", "taxIdentifications": [ {} ], "accessMediums": [ {} ] }

Request

Required Scopes: CUSTOMER_READ

Returns customer by one of the given parameters

Security
ApiKeyAuth
Query
cardNumberstring

Card number to identify the customer

cardNumberFormatstring(CardNumberFormat)

Defines how card numbers are interpreted

Default "DECIMAL"
Enum"DECIMAL""HEX_MSB""HEX_LSB"
debtorIdstring

Unique ID of the debtor

barcodestring

Barcode to identify the customer

pinstring

PIN to identify the customer

customerNumberstring

Customer number to identify the customer

qrCodeUuidstring(uuid)Deprecated

QR code UUID to identify the customer

curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/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'

Responses

OK

Bodyapplication/json
idinteger(int64)required

Unique ID of the customer

Example: 1001
customerNumberstring

Customer number

Example: "1-12345"
firstNamestring

First name of the customer

Example: "Edgar"
secondFirstNamestring

Second first name of the customer

Example: "Thomas"
lastNamestring

Surname of the customer

Example: "Bullock"
secondLastNamestring

Second last name of the customer

Example: "Meyer"
dateOfBirthstring(date)

Birthday of the customer

Example: "1952-05-04"
emailstring

Email address of the customer

Example: "example@email.com"
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"
streetstring

Street of the customer

Example: "Am Bahnhof"
houseNumberstring

Number of the customer's house

Example: 89
zipCodestring

Zip code of the customer

Example: "12133"
citystring

City of the customer

Example: "Munich"
countrystring(ISO 3166-1)

Country of the customer

Example: "DE"
secondStreetstring

Second street line of the customer's address

Example: "Second Street"
cityPartstring

City part of the customer's address

Example: "Tegel"
districtstring

District of the customer's address

Example: "District 12"
streetTypestring

Street type of the customer's address

Example: "Avenue"
streetBlockstring

Street block of the customer's address

Example: "5th block"
portalstring

Portal of the customer's address

Example: "Portal 1"
stairwaystring

Stairway of the customer's address

Example: "Right stairway"
doorstring

Door of the customer's address

Example: "Door 1"
provincestring

Province of the customer's address

Example: "Champagne"
provinceCodestring

Province code of the customer's address

Example: "MD"
additionalAddressInformationstring

Additional address information of the customer's address

Example: "Additional information"
floorstring

Floor of the customer's address

Example: "2nd floor"
buildingNamestring

Building name

Example: "Empire State Building"
statusstringrequired

Status of customer

Enum ValueDescription
FORMER_MEMBER

Customer is a former member

PROSPECT

Customer without contracts

MEMBER

Customer with contracts attached

Example: "MEMBER"
imageUrlstring

Url with an image to download. It will expire after 15 minutes

Example: "https://example.com"
phonePrivatestring

Private phone number of the customer

Example: "+49 30901820"
phonePrivateMobilestring

Private mobile phone number of the customer

Example: "+49 15223433333"
phoneBusinessstring

Business phone number of the customer

Example: "+49 30901820"
phoneBusinessMobilestring

Business mobile phone number of the customer

Example: "+49 15223433333"
idlePeriodsArray of objects(CustomerIdlePeriod)

List of customer's idle periods

accessRefusalbooleanrequired

Indicates whether the customer has an access block currently

accessRestrictionsArray of objects(AccessRestriction)

List of access restrictions of the customer

uuidstring

Customer's UUID

Example: "7be3932c-825b-4401-abff-29e9f9410bc7"
referralCodestring

Customer's referral code

Example: "20J6N"
studioIdinteger(int64)

Studio ID of the customer

Example: 1238735970
preferredLanguageobject(Language)

Basic language information

additionalInformationFieldAssignmentsArray of objects(AdditionalInformationFieldAssignment)

List of additional information field assignments of the customer

thirdPartyIdstring

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

Example: "A1000"
createdDateTimestring(date-time)

Customer's creation date time in ISO-8601 format

Example: "2022-06-15T23:59:59.123+02:00"
taxIdentificationsArray of objects(TaxIdentification)

Tax identification documents of the customer.

accessMediumsArray of objects(AccessMediumDto)

List of access mediums of the customer

cardNumbersArray of stringsDeprecated

UID list of the customer card numbers in expected format. (The new property to use is accessMediums)

Example: ["1290158199"]
bankAccountobject(BankAccount)Deprecated

Customer's bank account information. Deprecated: For fetching bank accounts use the Search customers by payment details endpoint.

Response
application/json
{ "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", "provinceCode": "MD", "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.123+02:00", "taxIdentifications": [ {} ], "accessMediums": [ {} ] }

Request

Required Scopes: CUSTOMER_READ

Returns all customers from studio by given criteria

Security
ApiKeyAuth
Bodyapplication/jsonrequired
firstNamestring

Substring of customer first name starts from beginning

Example: "Edga"
lastNamestring

Substring of customer last name starts from beginning

Example: "Bull"
emailstring

Customer email

Example: "example@email.com"
dateOfBirthstring(date)

Customer date of birth

Example: "1952-05-04"
cardNumberFormatstring(CardNumberFormat)

Defines how card numbers are interpreted

Default "DECIMAL"
Enum"DECIMAL""HEX_MSB""HEX_LSB"
phoneNumberstring

Customer phone number. Search matches private, private mobile, business, and business mobile numbers

Example: "+491234567890"
thirdPartyIdstring

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

Example: "A1000"
curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/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",
    "phoneNumber": "+491234567890",
    "thirdPartyId": "A1000"
  }'

Responses

OK

Bodyapplication/jsonArray [
idinteger(int64)required

Unique ID of the customer

Example: 1001
customerNumberstring

Customer number

Example: "1-12345"
firstNamestring

First name of the customer

Example: "Edgar"
secondFirstNamestring

Second first name of the customer

Example: "Thomas"
lastNamestring

Surname of the customer

Example: "Bullock"
secondLastNamestring

Second last name of the customer

Example: "Meyer"
dateOfBirthstring(date)

Birthday of the customer

Example: "1952-05-04"
emailstring

Email address of the customer

Example: "example@email.com"
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"
streetstring

Street of the customer

Example: "Am Bahnhof"
houseNumberstring

Number of the customer's house

Example: 89
zipCodestring

Zip code of the customer

Example: "12133"
citystring

City of the customer

Example: "Munich"
countrystring(ISO 3166-1)

Country of the customer

Example: "DE"
secondStreetstring

Second street line of the customer's address

Example: "Second Street"
cityPartstring

City part of the customer's address

Example: "Tegel"
districtstring

District of the customer's address

Example: "District 12"
streetTypestring

Street type of the customer's address

Example: "Avenue"
streetBlockstring

Street block of the customer's address

Example: "5th block"
portalstring

Portal of the customer's address

Example: "Portal 1"
stairwaystring

Stairway of the customer's address

Example: "Right stairway"
doorstring

Door of the customer's address

Example: "Door 1"
provincestring

Province of the customer's address

Example: "Champagne"
provinceCodestring

Province code of the customer's address

Example: "MD"
additionalAddressInformationstring

Additional address information of the customer's address

Example: "Additional information"
floorstring

Floor of the customer's address

Example: "2nd floor"
buildingNamestring

Building name

Example: "Empire State Building"
statusstringrequired

Status of customer

Enum ValueDescription
FORMER_MEMBER

Customer is a former member

PROSPECT

Customer without contracts

MEMBER

Customer with contracts attached

Example: "MEMBER"
imageUrlstring

Url with an image to download. It will expire after 15 minutes

Example: "https://example.com"
phonePrivatestring

Private phone number of the customer

Example: "+49 30901820"
phonePrivateMobilestring

Private mobile phone number of the customer

Example: "+49 15223433333"
phoneBusinessstring

Business phone number of the customer

Example: "+49 30901820"
phoneBusinessMobilestring

Business mobile phone number of the customer

Example: "+49 15223433333"
idlePeriodsArray of objects(CustomerIdlePeriod)

List of customer's idle periods

accessRefusalbooleanrequired

Indicates whether the customer has an access block currently

accessRestrictionsArray of objects(AccessRestriction)

List of access restrictions of the customer

uuidstring

Customer's UUID

Example: "7be3932c-825b-4401-abff-29e9f9410bc7"
referralCodestring

Customer's referral code

Example: "20J6N"
studioIdinteger(int64)

Studio ID of the customer

Example: 1238735970
preferredLanguageobject(Language)

Basic language information

additionalInformationFieldAssignmentsArray of objects(AdditionalInformationFieldAssignment)

List of additional information field assignments of the customer

thirdPartyIdstring

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

Example: "A1000"
createdDateTimestring(date-time)

Customer's creation date time in ISO-8601 format

Example: "2022-06-15T23:59:59.123+02:00"
taxIdentificationsArray of objects(TaxIdentification)

Tax identification documents of the customer.

accessMediumsArray of objects(AccessMediumDto)

List of access mediums of the customer

cardNumbersArray of stringsDeprecated

UID list of the customer card numbers in expected format. (The new property to use is accessMediums)

Example: ["1290158199"]
bankAccountobject(BankAccount)Deprecated

Customer's bank account information. Deprecated: For fetching bank accounts use the Search customers by payment details endpoint.

]
Response
application/json
[ { "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", "provinceCode": "MD", "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.123+02:00", "taxIdentifications": [], "accessMediums": [] } ]

Customers Account

Retrieve customer accounting details

Operations

Customers Communication

Retrieve customer communication details

Operations
Operations

Customers Transactions

Retrieve customer transaction 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