Skip to content

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

Membership Self-service

Manage membership contracts

Operations
Operations

Online offers

Online offer operations

Operations
Operations
Operations

Request

Required Scopes: STUDIO_READ

Returns information about current checkin count and maximum studio capacity

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

Responses

OK

Bodyapplication/json
capacityinteger(int32)

Maximum customers allowed into a facility, if set to null there is no capacity restriction

Example: 100
countinteger(int32)required

Number of currently checked in customers of a facility, count can be higher than capacity

Example: 10
Response
application/json
{ "capacity": 100, "count": 10 }

Request

Required Scopes: STUDIO_READ

Returns studio's general information for authenticated subject

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

Responses

OK

Bodyapplication/json
namestring

Studio name

Example: "Example studio"
descriptionstring

Studio description

Example: "Example studio description"
countrystring

Studio address' country

Example: "Germany"
countryCodestring(ISO 3166-1)

Studio address' country code

Example: "DE"
studioIdinteger(int64)required

Studio Id

Example: 123
openingDatestring(date)

Studio opening date

Example: "2025-06-11"
closingDatestring(date)

Studio closing date

Example: "2029-01-01"
emailstring

Studio email address

Example: "operator@example.com"
logoUrlstring

Url to studio logo

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

Studio telephone

Example: "0831/6901234-10"
websitestring

Studio website url

Example: "https://example.com"
openingHoursArray of objects(StudioOpeningHours)

Studio internal opening hours

publicOpeningHoursArray of objects(StudioOpeningHours)

Studio public opening hours

closingHoursArray of objects(StudioClosingHours)

Studio closing hours

openingHoursCategoriesArray of objects(StudioOpeningHoursCategory)

Studio opening hours categories with time restrictions

streetstring

Studio address' street

Example: "Kastanienallee"
houseNumberstring

Studio address' house number

Example: "83"
zipstring

Studio address' zip code

Example: "84439"
citystring

Studio address' city

Example: "Berlin"
secondStreetstring

Second street line of the studio's address

Example: "Second Street"
cityPartstring

City part of the studio's address

Example: "Tegel"
districtstring

District of the studio's address

Example: "District 12"
streetTypestring

Street type of the studio's address

Example: "Avenue"
streetBlockstring

Street block of the studio's address

Example: "5th block"
portalstring

Portal of the studio's address

Example: "Portal 1"
stairwaystring

Stairway of the studio's address

Example: "Right stairway"
doorstring

Door of the studio's address

Example: "Door 1"
provincestring

Province of the studio's address

Example: "Champagne"
provinceCodestring

Province code of the studio's address

Example: "PC"
additionalAddressInformationstring

Additional address information of the studio's address

Example: "Additional information"
floorstring

Floor of the studio's address

Example: "2nd floor"
buildingNamestring

Building name of the studio's address

Example: "Empire State Building"
accessCodeConfigurationobject(StudioAccessCodeConfiguration)required

Studio access code configurations

accessCodeConfiguration.​enabledboolean

Whether or not the access code is enabled

locationobject(StudioLocation)

Studio location

studioTagsArray of objects(Tag)

Tags associated with the studio

Response
application/json
{ "name": "Example studio", "description": "Example studio description", "country": "Germany", "countryCode": "DE", "studioId": 123, "openingDate": "2025-06-11", "closingDate": "2029-01-01", "email": "operator@example.com", "logoUrl": "https://example.com", "telephone": "0831/6901234-10", "website": "https://example.com", "openingHours": [ {} ], "publicOpeningHours": [ {} ], "closingHours": [ {} ], "openingHoursCategories": [ {} ], "street": "Kastanienallee", "houseNumber": "83", "zip": "84439", "city": "Berlin", "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": "PC", "additionalAddressInformation": "Additional information", "floor": "2nd floor", "buildingName": "Empire State Building", "accessCodeConfiguration": { "enabled": true }, "location": { "longitude": 9.993682, "latitude": 53.551086 }, "studioTags": [ {} ] }

Request

Required Scopes: STUDIO_READ

Returns all tags that can be assigned to a studio

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

Responses

OK

Bodyapplication/jsonArray [
namestringrequired

Unique name of a tag

Example: "tag123"
]
Response
application/json
[ { "name": "tag123" } ]

Request

Required Scopes: STUDIO_WRITE

Updates the tags assigned to the studio

Security
ApiKeyAuth
Bodyapplication/jsonrequiredArray [
namestringrequired

Unique name of a tag

Example: "tag123"
]
curl -i -X PUT \
  https://open-api-demo.open-api.perfectgym.com/v1/studios/information/tags \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '[
    {
      "name": "tag123"
    }
  ]'

Responses

OK

Bodyapplication/jsonArray [
namestringrequired

Unique name of a tag

Example: "tag123"
]
Response
application/json
[ { "name": "tag123" } ]

Request

If your integration has webhook access, then you need to activate webhook events via this endpoint

Security
ApiKeyAuth
curl -i -X POST \
  https://open-api-demo.open-api.perfectgym.com/v1/studios/confirmActivation \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Response
No content

Trial Offers

Get trial offers information

Operations