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
Operations
Operations
Operations
Operations

Request

Required Scopes: LEAD_READ

Returns generic lead data configuration

Security
ApiKeyAuth
curl -i -X GET \
  https://open-api-demo.open-api.perfectgym.com/v1/leads/config \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
addressModestringrequired

Represents the mode of an input field

Enum ValueDescription
OPTIONAL

The input is optional

INACTIVE

The input is disabled

MANDATORY

The input is mandatory

Example: "INACTIVE"
dateOfBirthModestringrequired

Represents the mode of an input field

Enum ValueDescription
OPTIONAL

The input is optional

INACTIVE

The input is disabled

MANDATORY

The input is mandatory

Example: "INACTIVE"
genderModestringrequired

Represents the mode of an input field

Enum ValueDescription
OPTIONAL

The input is optional

INACTIVE

The input is disabled

MANDATORY

The input is mandatory

Example: "INACTIVE"
telephoneModestringrequired

Represents the mode of an input field

Enum ValueDescription
OPTIONAL

The input is optional

INACTIVE

The input is disabled

MANDATORY

The input is mandatory

Example: "INACTIVE"
additionalInformationArray of objects(LeadAdditionalFieldConfiguration)

List of the additional information fields configured for leads

communicationPreferencesArray of objects(CommunicationPreference)

List of the message categories with communication channels configured for leads

Response
application/json
{ "addressMode": "INACTIVE", "dateOfBirthMode": "INACTIVE", "genderMode": "INACTIVE", "telephoneMode": "INACTIVE", "additionalInformation": [ {} ], "communicationPreferences": [ {} ] }

Request

Required Scopes: LEAD_WRITE

Validates the lead data for creation

Security
ApiKeyAuth
Bodyapplication/jsonrequired
leadCustomerobject(LeadCustomerData)required

Lead customer information

leadCustomer.​thirdPartyIdstring

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

Example: "A1000"
leadCustomer.​firstnamestringrequired

First name of the lead customer

Example: "Max"
leadCustomer.​secondFirstnamestring

Second first name of the lead customer

Example: "Peter"
leadCustomer.​lastnamestringrequired

Last name of the lead customer

Example: "Mustermann"
leadCustomer.​secondLastnamestring

Second last name of the lead customer

Example: "Meier"
leadCustomer.​emailstringrequired

Email of the lead customer

Example: "example@email.com"
leadCustomer.​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"
leadCustomer.​dateOfBirthstring(date)

Date of birth of the lead customer

Example: "2000-10-10"
leadCustomer.​telephonestring

Telephone number of the lead customer

Example: "5006001112"
leadCustomer.​languageobject(Language)

Language of the lead customer

addressobject(LeadCustomerAddress)

Representing lead customer address data with mandatory fields

communicationPreferencesArray of objects(CommunicationPreference)

List of the communication preferences of the lead

additionalInformationArray of objects(LeadAdditionalInformation)

List of the the additional information about the lead

notesstring

Any notes about the lead

Example: "Free trials and classes"
externalIdentifierstring

The external ID of the Campaign associated with the lead

Example: "CMPGN-123"
curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/leads/validate \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "leadCustomer": {
      "thirdPartyId": "A1000",
      "firstname": "Max",
      "secondFirstname": "Peter",
      "lastname": "Mustermann",
      "secondLastname": "Meier",
      "email": "example@email.com",
      "gender": "MALE",
      "dateOfBirth": "2000-10-10",
      "telephone": "5006001112",
      "language": {
        "languageCode": "de",
        "countryCode": "DE"
      }
    },
    "address": {
      "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"
    },
    "communicationPreferences": [
      {
        "messageCategory": "CONTRACT",
        "channels": [
          {
            "communicationChannel": "EMAIL",
            "customerOverridable": true,
            "active": true
          }
        ]
      }
    ],
    "additionalInformation": [
      {
        "additionalFieldId": 1246357240,
        "value": "Friends",
        "values": [
          "Radio",
          "Webinar"
        ]
      }
    ],
    "notes": "Free trials and classes",
    "externalIdentifier": "CMPGN-123"
  }'

Responses

OK

Bodyapplication/json
statusstringrequired

Validation status for lead creation

Enum ValueDescription
POSSIBLE

Lead creation is possible

INVALID_LEAD_DATA

Lead data is invalid

DUPLICATE_CUSTOMER

Customer already exists

Example: "POSSIBLE"
Response
application/json
{ "status": "POSSIBLE" }

Create a new Lead based on the config

Request

Required Scopes: LEAD_WRITE

Creates a new lead based on the configuration

Security
ApiKeyAuth
Bodyapplication/jsonrequired
leadCustomerobject(LeadCustomerData)required

Lead customer information

leadCustomer.​thirdPartyIdstring

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

Example: "A1000"
leadCustomer.​firstnamestringrequired

First name of the lead customer

Example: "Max"
leadCustomer.​secondFirstnamestring

Second first name of the lead customer

Example: "Peter"
leadCustomer.​lastnamestringrequired

Last name of the lead customer

Example: "Mustermann"
leadCustomer.​secondLastnamestring

Second last name of the lead customer

Example: "Meier"
leadCustomer.​emailstringrequired

Email of the lead customer

Example: "example@email.com"
leadCustomer.​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"
leadCustomer.​dateOfBirthstring(date)

Date of birth of the lead customer

Example: "2000-10-10"
leadCustomer.​telephonestring

Telephone number of the lead customer

Example: "5006001112"
leadCustomer.​languageobject(Language)

Language of the lead customer

addressobject(LeadCustomerAddress)

Representing lead customer address data with mandatory fields

communicationPreferencesArray of objects(CommunicationPreference)

List of the communication preferences of the lead

additionalInformationArray of objects(LeadAdditionalInformation)

List of the the additional information about the lead

notesstring

Any notes about the lead

Example: "Free trials and classes"
externalIdentifierstring

The external ID of the Campaign associated with the lead

Example: "CMPGN-123"
curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/leads/create \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "leadCustomer": {
      "thirdPartyId": "A1000",
      "firstname": "Max",
      "secondFirstname": "Peter",
      "lastname": "Mustermann",
      "secondLastname": "Meier",
      "email": "example@email.com",
      "gender": "MALE",
      "dateOfBirth": "2000-10-10",
      "telephone": "5006001112",
      "language": {
        "languageCode": "de",
        "countryCode": "DE"
      }
    },
    "address": {
      "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"
    },
    "communicationPreferences": [
      {
        "messageCategory": "CONTRACT",
        "channels": [
          {
            "communicationChannel": "EMAIL",
            "customerOverridable": true,
            "active": true
          }
        ]
      }
    ],
    "additionalInformation": [
      {
        "additionalFieldId": 1246357240,
        "value": "Friends",
        "values": [
          "Radio",
          "Webinar"
        ]
      }
    ],
    "notes": "Free trials and classes",
    "externalIdentifier": "CMPGN-123"
  }'

Responses

OK

Bodyapplication/json
idinteger(int64)required

The unique ID of the lead

Example: 1246358530
customerIdinteger(int64)required

The unique ID of the customer

Example: 9876543210
uuidstring(uuid)required

The unique UUID of the created lead

Example: "2340b1cc-3fe7-4f81-8eca-f92181dd2bb4"
customerNumberstringrequired

The customer number of the created lead

Example: "1-4139"
Response
application/json
{ "id": 1246358530, "customerId": 9876543210, "uuid": "2340b1cc-3fe7-4f81-8eca-f92181dd2bb4", "customerNumber": "1-4139" }

Membership Self-service

Manage membership contracts

Operations
Operations
Operations
Operations

Trial Offers

Get trial offers information

Operations