Skip to content

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

Customers Account

Retrieve customer accounting details

Operations

Customers Communication

Retrieve customer communication details

Operations
Operations

Request

Required Scopes: CUSTOMER_SELF_SERVICE_READ

Returns customer current contact data along with requested change of this data

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/contact-data' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
emailstring

Email address of the customer

Example: "email@example.com"
phonePrivatestring

Private phone number of the customer

Example: "+49 00000000"
phonePrivateMobilestring

Private mobile phone number of the customer

Example: "+49 00000000000"
phoneBusinessstring

Business phone number of the customer

Example: "+49 00000000"
phoneBusinessMobilestring

Business mobile phone number of the customer

Example: "+49 00000000000"
amendmentConfigurationStatusstringrequired

Status of the amendment configuration.

Enum ValueDescription
READ

No changes to data are possible.

CHANGES_REQUIRE_VERIFICATION

Data can be changed, but needs verification to be applied to the customer.

CHANGES_WITHOUT_VERIFICATION

Data can be changed, will be applied to the customer with immediate effect.

Example: "CHANGES_REQUIRE_VERIFICATION"
pendingAmendmentobject(OpenApiV1CustomerDataPendingAmendmentDtoCustomerContactData)

Pending amendment

Response
application/json
{ "email": "email@example.com", "phonePrivate": "+49 00000000", "phonePrivateMobile": "+49 00000000000", "phoneBusiness": "+49 00000000", "phoneBusinessMobile": "+49 00000000000", "amendmentConfigurationStatus": "CHANGES_REQUIRE_VERIFICATION", "pendingAmendment": { "id": 0, "email": "email@example.com", "phonePrivate": "+49 00000000", "phonePrivateMobile": "+49 00000000000", "phoneBusiness": "+49 00000000", "phoneBusinessMobile": "+49 00000000000" } }

Request

Required Scopes: CUSTOMER_SELF_SERVICE_WRITE

Creates request for contact data amendment for specified customerId

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

Bodyapplication/jsonrequired

Requested changes for contact data

emailstring

Email address of the customer

Example: "email@example.com"
phonePrivatestring

Private phone number of the customer

Example: "+49 00000000"
phonePrivateMobilestring

Private mobile phone number of the customer

Example: "+49 00000000000"
phoneBusinessstring

Business phone number of the customer

Example: "+49 00000000"
phoneBusinessMobilestring

Business mobile phone number of the customer

Example: "+49 00000000000"
curl -i -X POST \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/contact-data' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "email": "email@example.com",
    "phonePrivate": "+49 00000000",
    "phonePrivateMobile": "+49 00000000000",
    "phoneBusiness": "+49 00000000",
    "phoneBusinessMobile": "+49 00000000000"
  }'

Responses

OK

Bodyapplication/json
idinteger(int64)

Amendment proposal id

emailstring

Email address of the customer

Example: "email@example.com"
phonePrivatestring

Private phone number of the customer

Example: "+49 00000000"
phonePrivateMobilestring

Private mobile phone number of the customer

Example: "+49 00000000000"
phoneBusinessstring

Business phone number of the customer

Example: "+49 00000000"
phoneBusinessMobilestring

Business mobile phone number of the customer

Example: "+49 00000000000"
Response
application/json
{ "id": 0, "email": "email@example.com", "phonePrivate": "+49 00000000", "phonePrivateMobile": "+49 00000000000", "phoneBusiness": "+49 00000000", "phoneBusinessMobile": "+49 00000000000" }

Request

Required Scopes: CUSTOMER_SELF_SERVICE_READ

Returns customer current address data along with requested change of this data

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/address-data' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
streetstringrequired

Street of the customer

Example: "Am Bahnhof"
houseNumberstring

Number of the customer's house

Example: "90"
zipCodestringrequired

Zip code of the customer

Example: "12133"
citystringrequired

City of the customer

Example: "Munich"
countryCodestring(ISO 3166-1)required

Country of the customer

Example: "DE"
provincestring

Province for southern Europe/US countries

Example: "Madrid/California"
provinceCodestring

Province code for southern Europe/US countries

Example: "MD/CA"
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"
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"
amendmentConfigurationStatusstringrequired

Status of the amendment configuration.

Enum ValueDescription
READ

No changes to data are possible.

CHANGES_REQUIRE_VERIFICATION

Data can be changed, but needs verification to be applied to the customer.

CHANGES_WITHOUT_VERIFICATION

Data can be changed, will be applied to the customer with immediate effect.

Example: "CHANGES_REQUIRE_VERIFICATION"
pendingAmendmentobject(OpenApiV1CustomerDataPendingAmendmentDtoCustomerAddressData)

Pending amendment

Response
application/json
{ "street": "Am Bahnhof", "houseNumber": "90", "zipCode": "12133", "city": "Munich", "countryCode": "DE", "province": "Madrid/California", "provinceCode": "MD/CA", "secondStreet": "Second Street", "cityPart": "Tegel", "district": "District 12", "streetType": "Avenue", "streetBlock": "5th block", "portal": "Portal 1", "stairway": "Right stairway", "door": "Door 1", "additionalAddressInformation": "Additional information", "floor": "2nd floor", "buildingName": "Empire State Building", "amendmentConfigurationStatus": "CHANGES_REQUIRE_VERIFICATION", "pendingAmendment": { "id": 0, "street": "Am Bahnhof", "houseNumber": "90", "zipCode": "12133", "city": "Munich", "countryCode": "DE", "province": "Madrid/California", "provinceCode": "MD/CA", "secondStreet": "Second Street", "cityPart": "Tegel", "district": "District 12", "streetType": "Avenue", "streetBlock": "5th block", "portal": "Portal 1", "stairway": "Right stairway", "door": "Door 1", "additionalAddressInformation": "Additional information", "floor": "2nd floor", "buildingName": "Empire State Building" } }

Request

Required Scopes: CUSTOMER_SELF_SERVICE_WRITE

Creates request for address data amendment for specified customerId

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

Bodyapplication/jsonrequired

Requested changes for address data

streetstringrequired

Street of the customer

Example: "Am Bahnhof"
houseNumberstring

Number of the customer's house

Example: "90"
zipCodestringrequired

Zip code of the customer

Example: "12133"
citystringrequired

City of the customer

Example: "Munich"
countryCodestring(ISO 3166-1)required

Country of the customer

Example: "DE"
provincestring

Province for southern Europe/US countries

Example: "Madrid/California"
provinceCodestring

Province code for southern Europe/US countries

Example: "MD/CA"
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"
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"
curl -i -X POST \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/address-data' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "street": "Am Bahnhof",
    "houseNumber": "90",
    "zipCode": "12133",
    "city": "Munich",
    "countryCode": "DE",
    "province": "Madrid/California",
    "provinceCode": "MD/CA",
    "secondStreet": "Second Street",
    "cityPart": "Tegel",
    "district": "District 12",
    "streetType": "Avenue",
    "streetBlock": "5th block",
    "portal": "Portal 1",
    "stairway": "Right stairway",
    "door": "Door 1",
    "additionalAddressInformation": "Additional information",
    "floor": "2nd floor",
    "buildingName": "Empire State Building"
  }'

Responses

OK

Bodyapplication/json
idinteger(int64)

Amendment proposal id

streetstringrequired

Street of the customer

Example: "Am Bahnhof"
houseNumberstring

Number of the customer's house

Example: "90"
zipCodestringrequired

Zip code of the customer

Example: "12133"
citystringrequired

City of the customer

Example: "Munich"
countryCodestring(ISO 3166-1)required

Country of the customer

Example: "DE"
provincestring

Province for southern Europe/US countries

Example: "Madrid/California"
provinceCodestring

Province code for southern Europe/US countries

Example: "MD/CA"
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"
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"
Response
application/json
{ "id": 0, "street": "Am Bahnhof", "houseNumber": "90", "zipCode": "12133", "city": "Munich", "countryCode": "DE", "province": "Madrid/California", "provinceCode": "MD/CA", "secondStreet": "Second Street", "cityPart": "Tegel", "district": "District 12", "streetType": "Avenue", "streetBlock": "5th block", "portal": "Portal 1", "stairway": "Right stairway", "door": "Door 1", "additionalAddressInformation": "Additional information", "floor": "2nd floor", "buildingName": "Empire State Building" }

Request

Required Scopes: CUSTOMER_SELF_SERVICE_READ

Returns customer current master data along with requested change of this data

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/master-data' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
firstNamestringrequired

First name of the customer

Example: "Edgar"
lastNamestringrequired

Surname of the customer

Example: "Bullock"
genderstringrequired

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"
dateOfBirthstring(date)required

Birthday of the customer

Example: "1952-05-04"
countryOfBirthstring(ISO 3166-1)

Birth country of the customer

Example: "DE"
customerTitlestringrequired

Title of the customer

Enum ValueDescription
NONE

No title

PROF

Professor title

DR

Ph.D. title

Example: "DR"
amendmentConfigurationStatusstringrequired

Status of the amendment configuration.

Enum ValueDescription
READ

No changes to data are possible.

CHANGES_REQUIRE_VERIFICATION

Data can be changed, but needs verification to be applied to the customer.

CHANGES_WITHOUT_VERIFICATION

Data can be changed, will be applied to the customer with immediate effect.

Example: "CHANGES_REQUIRE_VERIFICATION"
pendingAmendmentobject(OpenApiV1CustomerDataPendingAmendmentDtoCustomerMasterData)

Pending amendment

Response
application/json
{ "firstName": "Edgar", "lastName": "Bullock", "gender": "MALE", "dateOfBirth": "1952-05-04", "countryOfBirth": "DE", "customerTitle": "DR", "amendmentConfigurationStatus": "CHANGES_REQUIRE_VERIFICATION", "pendingAmendment": { "id": 0, "firstName": "Edgar", "lastName": "Bullock", "gender": "MALE", "dateOfBirth": "1952-05-04", "countryOfBirth": "DE", "customerTitle": "DR" } }

Request

Required Scopes: CUSTOMER_SELF_SERVICE_WRITE

Creates request for master data amendment for specified customerId

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

Bodyapplication/jsonrequired

Requested changes for master data

firstNamestringrequired

First name of the customer

Example: "Edgar"
lastNamestringrequired

Surname of the customer

Example: "Bullock"
genderstringrequired

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"
dateOfBirthstring(date)required

Birthday of the customer

Example: "1952-05-04"
countryOfBirthstring(ISO 3166-1)

Birth country of the customer

Example: "DE"
customerTitlestringrequired

Title of the customer

Enum ValueDescription
NONE

No title

PROF

Professor title

DR

Ph.D. title

Example: "DR"
curl -i -X POST \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/master-data' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "firstName": "Edgar",
    "lastName": "Bullock",
    "gender": "MALE",
    "dateOfBirth": "1952-05-04",
    "countryOfBirth": "DE",
    "customerTitle": "DR"
  }'

Responses

OK

Bodyapplication/json
idinteger(int64)

Amendment proposal id

firstNamestringrequired

First name of the customer

Example: "Edgar"
lastNamestringrequired

Surname of the customer

Example: "Bullock"
genderstringrequired

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"
dateOfBirthstring(date)required

Birthday of the customer

Example: "1952-05-04"
countryOfBirthstring(ISO 3166-1)

Birth country of the customer

Example: "DE"
customerTitlestringrequired

Title of the customer

Enum ValueDescription
NONE

No title

PROF

Professor title

DR

Ph.D. title

Example: "DR"
Response
application/json
{ "id": 0, "firstName": "Edgar", "lastName": "Bullock", "gender": "MALE", "dateOfBirth": "1952-05-04", "countryOfBirth": "DE", "customerTitle": "DR" }

Request

Required Scopes: CUSTOMER_SELF_SERVICE_READ

Returns customer current payment data along with requested change of this data

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

curl -i -X GET \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/payment-data' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
accountHolderstring

The account holder of the bank account

Example: "Sven Hannawald"
bankNamestring

Name of the bank

Example: "Deutsche Bank"
ibanstring

Iban of the clients account

Example: "DE91 1000 0000 0123 4567 89"
bicstring

Bic of the clients account

Example: "DEUTDEFFXXX"
requireSignatureboolean

Is customer signature required to make amendment

Example: true
amendmentConfigurationStatusstringrequired

Status of the amendment configuration.

Enum ValueDescription
READ

No changes to data are possible.

CHANGES_REQUIRE_VERIFICATION

Data can be changed, but needs verification to be applied to the customer.

CHANGES_WITHOUT_VERIFICATION

Data can be changed, will be applied to the customer with immediate effect.

Example: "CHANGES_REQUIRE_VERIFICATION"
pendingAmendmentobject(OpenApiV1CustomerDataPendingAmendmentDtoCustomerPaymentData)

Pending amendment

Response
application/json
{ "accountHolder": "Sven Hannawald", "bankName": "Deutsche Bank", "iban": "DE91 1000 0000 0123 4567 89", "bic": "DEUTDEFFXXX", "requireSignature": true, "amendmentConfigurationStatus": "CHANGES_REQUIRE_VERIFICATION", "pendingAmendment": { "id": 0, "accountHolder": "Sven Hannawald", "bankName": "Deutsche Bank", "iban": "DE91 1000 0000 0123 4567 89", "bic": "DEUTDEFFXXX", "requireSignature": true } }

Request

Required Scopes: CUSTOMER_SELF_SERVICE_WRITE

Creates request for payment data amendment for specified customerId

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

Bodyapplication/jsonrequired

Requested changes for payment data

accountHolderstringrequired

The account holder of the bank account

Example: "Sven Hannawald"
bankNamestringrequired

Name of the bank

Example: "Deutsche Bank"
ibanstringrequired

Iban of the clients account

Example: "DE91 1000 0000 0123 4567 89"
bicstringrequired

Bic of the clients account

Example: "DEUTDEFFXXX"
signatureobject(Signature)

Representing customer signature

curl -i -X POST \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/payment-data' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "accountHolder": "Sven Hannawald",
    "bankName": "Deutsche Bank",
    "iban": "DE91 1000 0000 0123 4567 89",
    "bic": "DEUTDEFFXXX",
    "signature": {
      "base64SvgSignature": "string"
    }
  }'

Responses

OK

Bodyapplication/json
idinteger(int64)

Amendment proposal id

accountHolderstring

The account holder of the bank account

Example: "Sven Hannawald"
bankNamestring

Name of the bank

Example: "Deutsche Bank"
ibanstring

Iban of the clients account

Example: "DE91 1000 0000 0123 4567 89"
bicstring

Bic of the clients account

Example: "DEUTDEFFXXX"
requireSignatureboolean

Is customer signature required to make amendment

Example: true
Response
application/json
{ "id": 0, "accountHolder": "Sven Hannawald", "bankName": "Deutsche Bank", "iban": "DE91 1000 0000 0123 4567 89", "bic": "DEUTDEFFXXX", "requireSignature": true }

Request

Required Scopes: CUSTOMER_SELF_SERVICE_WRITE

Withdraw customer's amendment

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

amendmentIdinteger(int64)required

Unique ID of the amendment

curl -i -X DELETE \
  'https://open-api-demo.open-api.perfectgym.com/v1/customers/{customerId}/self-service/amendment/{amendmentId}' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

Amendment was withdrawn.

Response
No content
Operations
Operations
Operations
Operations

Membership Self-service

Manage membership contracts

Operations
Operations
Operations
Operations

Trial Offers

Get trial offers information

Operations