Skip to content

Magicline 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.magicline.com/

Mock server

https://redocly.sportalliance.com/_mock/apis/magicline/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(any of): CUSTOMER_MEASUREMENT_READ, CUSTOMER_READ

Returns customer's latest measurement for specified customer.

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

Barcode to identify the customer

pinstring

PIN to identify the customer

qrCodeUuidstring(uuid)Deprecated

QR code UUID to identify the customer

curl -i -X GET \
  'https://open-api-demo.open-api.magicline.com/v1/customers/measurement/latest?cardNumber=string&cardNumberFormat=DECIMAL&barcode=string&pin=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
firstNamestring

First name of the customer

Example: "Edgar"
lastNamestring

Surname of the customer

Example: "Bullock"
ageinteger(int32)

Age of the customer

Example: 16
dateOfBirthstring(date)

Birthday of the customer

Example: "2000-01-01"
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"
heightnumber

Height of the customer

Example: 180.2
Response
application/json
{ "id": 1001, "firstName": "Edgar", "lastName": "Bullock", "age": 16, "dateOfBirth": "2000-01-01", "gender": "MALE", "height": 180.2 }

Request

Required Scopes(any of): CUSTOMER_CONTRACT_READ, CUSTOMER_READ

Returns customer's contracts 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

statusstring(ContractStatus)

The contracts desired or current status

Enum ValueDescription
ACTIVE

Identifies active contracts

INACTIVE

Identifies inactive contracts

Example: status=ACTIVE
qrCodeUuidstring(uuid)Deprecated

QR code UUID to identify the customer

curl -i -X GET \
  'https://open-api-demo.open-api.magicline.com/v1/customers/contracts/by?cardNumber=string&cardNumberFormat=DECIMAL&debtorId=string&barcode=string&pin=string&customerNumber=string&status=ACTIVE&qrCodeUuid=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
idinteger(int64)required

Unique ID of the contract

Example: 1000
createdDatestring(date)required

Creation date of the contract

Example: "2022-01-01"
startDatestring(date)required

Start date of the contract

Example: "2022-01-01"
endDatestring(date)required

End date of the contract

Example: "2022-10-01"
rateNamestringrequired

Rate name for the contract

Example: "Premium"
rateCodesArray of objects(RateCode)

Rate codes of this contract

contractStatusstring(ContractStatus)required

The contracts desired or current status

Enum ValueDescription
ACTIVE

Identifies active contracts

INACTIVE

Identifies inactive contracts

cancellationPeriodobject(TimePeriod)

Represents a time period

cancelledbooleanrequired

Defines whether or not the current active contract has been cancelled

cancellationDatestring(date)

Contract cancellation date

Example: "2022-10-10"
cancellationReceiptDatestring(date)

Contract cancellation receipt date

Example: "2022-10-10"
cancellationReasonstring

Reason of the contract cancellation

Example: "Officially ordered studio closure"
priceDetailsobject(PriceDetails)required

Price details of the contract

priceDetails.​basePriceobject(Money)required

Base price of the contract

priceDetails.​basePrice.​amountnumberrequired

Amount of the finance data tuple

Example: 20
priceDetails.​basePrice.​currencystring(ISO 4217)required

Currency of the finance data tuple

Example: "EUR"
priceDetails.​currentPriceobject(Money)required

Current price of the contract. This price takes into account any adjustments that have been made to the base price

priceDetails.​currentPrice.​amountnumberrequired

Amount of the finance data tuple

Example: 20
priceDetails.​currentPrice.​currencystring(ISO 4217)required

Currency of the finance data tuple

Example: "EUR"
priceDetails.​paymentFrequencyobject(ContractPaymentFrequency)required

Payment frequency of the contract

priceDetails.​paymentFrequency.​idinteger(int64)

Unique ID of the payment frequency of a contract

Example: 203
priceDetails.​paymentFrequency.​typestringrequired

Payment frequency type of a contract

Enum ValueDescription
TERM_BASED

Represents that the contract payment frequency is based on terms, with a possibly individual price per term.

NON_RECURRING

Represents that the contract payment frequency is non recurring, meaning only one payment is necessary here.

FREE

Represents that the contract payment frequency is free of charge.

RECURRING

Represents that the contract payment frequency is recurring, meaning that the payment will take place every term.

MONTH_DAY

Represents that the contract payment frequency is based on month days, with a possibly individual price per month day.

Example: "FREE"
priceDetails.​paymentFrequency.​termobject(Term)

Represents a term

priceDetails.​paymentFrequency.​priceobject(Money)

Base price, used only for payment frequencies of type RECURRING

priceDetails.​paymentFrequency.​monthDaysToPricesArray of objects(ContractMonthDayToPrice)

Month day to prices list, used for contract payment frequency type MONTH_DAY

priceDetails.​paymentFrequency.​termsToPricesArray of objects(ContractTermToPrice)

Terms to prices list, used for contract payment frequency type TERM_BASED. Note that the price will become active AFTER the respective term has passed

lastPossibleCancellationDatestring(date)required

Latest date when the contract can be cancelled

termobject(TimePeriod)required

Represents a time period

term.​periodValueinteger(int32)required

Defines how many units a given period lasts

Example: 10
term.​periodUnitstringrequired

Unit of the period

Enum ValueDescription
MONTH

Represents month unit

YEAR

Represents year unit

WEEK

Represents a week unit

DAY

Represents a day unit

Example: "DAY"
extensionTermobject(TimePeriod)required

Represents a time period

extensionTerm.​periodValueinteger(int32)required

Defines how many units a given period lasts

Example: 10
extensionTerm.​periodUnitstringrequired

Unit of the period

Enum ValueDescription
MONTH

Represents month unit

YEAR

Represents year unit

WEEK

Represents a week unit

DAY

Represents a day unit

Example: "DAY"
flatFeeContractsArray of objects(SubContract)

List of flat fee contracts

moduleContractsArray of objects(SubContract)

List of module contracts

signedDocumentUrlstring

Url to download the contract related document. It will expire after 15 minutes

thirdPartyIdstring

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

Example: "1000a"
reversedbooleanrequired

Defines whether the contract has been reversed

Example: false
reversalReasonstring

Reason of the contract reversal

Example: "Studio closure"
reversalDateTimestring(date-time)

Date and time when the contract was reversed

Example: "2026-03-10T23:59:59.999+02:00"
pricenumberDeprecatedrequired

Base price of the contract

Example: 19.9
]
Response
application/json
[ { "id": 1000, "createdDate": "2022-01-01", "startDate": "2022-01-01", "endDate": "2022-10-01", "rateName": "Premium", "rateCodes": [], "contractStatus": "ACTIVE", "cancellationPeriod": {}, "cancelled": true, "cancellationDate": "2022-10-10", "cancellationReceiptDate": "2022-10-10", "cancellationReason": "Officially ordered studio closure", "price": 19.9, "priceDetails": {}, "lastPossibleCancellationDate": "2019-08-24", "term": {}, "extensionTerm": {}, "flatFeeContracts": [], "moduleContracts": [], "signedDocumentUrl": "string", "thirdPartyId": "1000a", "reversed": false, "reversalReason": "Studio closure", "reversalDateTime": "2026-03-10T23:59:59.999+02:00" } ]

Request

Required Scopes(any of): CUSTOMER_WRITE, CUSTOMER_WEIGHING_WRITE

Saves weighing details for given customer

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

Query
benefitKeystring

Key of the benefit to use

Bodyapplication/jsonrequired
databaseIdinteger(int64)

Database id of the weighing

basalMetabolicRatenumber

Basal metabolic rate

bodyFatMassnumber

Body fat mass in kg

bodyMassIndexnumber

Body mass index in kg/m^2

fatFreeMassnumber

Total fat free mass (aka Lean Body Mass) in kg

percentBodyFatnumber

Body fat in percent

percentSkeletalMuscleMassnumber

Skeletal muscle mass in percent

skeletalMuscleMassnumber

Skeletal muscle mass in kg

totalBodyWaternumber

Total body water in liters

visceralFatLevelinteger(int32)

Visceral fat level (1-9)

weightnumber

Body weight in kg

heightnumber

Body height in cm

bfmLeftArmnumber

Body Fat Mass of the left arm in kg

bfmLeftLegnumber

Body Fat Mass of the left leg in kg

bfmPercentLeftArmnumber

Body Fat Mass of the left arm in percent

bfmPercentLeftLegnumber

Body Fat Mass of the left leg in percent

bfmPercentRightArmnumber

Body Fat Mass of the right arm in percent

bfmPercentRightLegnumber

Body Fat Mass of the right leg in percent

bfmPercentTrunknumber

Body Fat Mass of the trunk in percent

bfmRightArmnumber

Body Fat Mass of the right arm in kg

bfmRightLegnumber

Body Fat Mass of the right leg in kg

bfmTrunknumber

Body Fat Mass of the trunk in kg

ffmLeftArmnumber

Fat Free Mass of the left arm in kg

ffmLeftLegnumber

Fat Free Mass of the left leg in kg

ffmPercentLeftArmnumber

Fat Free Mass of the left arm in percent

ffmPercentLeftLegnumber

Fat Free Mass of the left leg in percent

ffmPercentRightArmnumber

Fat Free Mass of the right arm in percent

ffmPercentRightLegnumber

Fat Free Mass of the right leg in percent

ffmPercentTrunknumber

Fat Free Mass of the trunk in percent

ffmRightArmnumber

Fat Free Mass of the right arm in kg

ffmRightLegnumber

Fat Free Mass of the right leg in kg

ffmTrunknumber

Fat Free Mass of the trunk in kg

rawResultsstringrequired

The raw results. Might be passed back to partner-provided widgets

curl -i -X POST \
  'https://open-api-demo.open-api.magicline.com/v1/customers/{customerId}/weighing?benefitKey=string' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY_HERE' \
  -d '{
    "databaseId": 0,
    "basalMetabolicRate": 0,
    "bodyFatMass": 0,
    "bodyMassIndex": 0,
    "fatFreeMass": 0,
    "percentBodyFat": 0,
    "percentSkeletalMuscleMass": 0,
    "skeletalMuscleMass": 0,
    "totalBodyWater": 0,
    "visceralFatLevel": 0,
    "weight": 0,
    "height": 0,
    "bfmLeftArm": 0,
    "bfmLeftLeg": 0,
    "bfmPercentLeftArm": 0,
    "bfmPercentLeftLeg": 0,
    "bfmPercentRightArm": 0,
    "bfmPercentRightLeg": 0,
    "bfmPercentTrunk": 0,
    "bfmRightArm": 0,
    "bfmRightLeg": 0,
    "bfmTrunk": 0,
    "ffmLeftArm": 0,
    "ffmLeftLeg": 0,
    "ffmPercentLeftArm": 0,
    "ffmPercentLeftLeg": 0,
    "ffmPercentRightArm": 0,
    "ffmPercentRightLeg": 0,
    "ffmPercentTrunk": 0,
    "ffmRightArm": 0,
    "ffmRightLeg": 0,
    "ffmTrunk": 0,
    "rawResults": "string"
  }'

Responses

OK

Bodyapplication/json
databaseIdinteger(int64)

Database id of the weighing

basalMetabolicRatenumber

Basal metabolic rate

bodyFatMassnumber

Body fat mass in kg

bodyMassIndexnumber

Body mass index in kg/m^2

fatFreeMassnumber

Total fat free mass (aka Lean Body Mass) in kg

percentBodyFatnumber

Body fat in percent

percentSkeletalMuscleMassnumber

Skeletal muscle mass in percent

skeletalMuscleMassnumber

Skeletal muscle mass in kg

totalBodyWaternumber

Total body water in liters

visceralFatLevelinteger(int32)

Visceral fat level (1-9)

weightnumber

Body weight in kg

heightnumber

Body height in cm

bfmLeftArmnumber

Body Fat Mass of the left arm in kg

bfmLeftLegnumber

Body Fat Mass of the left leg in kg

bfmPercentLeftArmnumber

Body Fat Mass of the left arm in percent

bfmPercentLeftLegnumber

Body Fat Mass of the left leg in percent

bfmPercentRightArmnumber

Body Fat Mass of the right arm in percent

bfmPercentRightLegnumber

Body Fat Mass of the right leg in percent

bfmPercentTrunknumber

Body Fat Mass of the trunk in percent

bfmRightArmnumber

Body Fat Mass of the right arm in kg

bfmRightLegnumber

Body Fat Mass of the right leg in kg

bfmTrunknumber

Body Fat Mass of the trunk in kg

ffmLeftArmnumber

Fat Free Mass of the left arm in kg

ffmLeftLegnumber

Fat Free Mass of the left leg in kg

ffmPercentLeftArmnumber

Fat Free Mass of the left arm in percent

ffmPercentLeftLegnumber

Fat Free Mass of the left leg in percent

ffmPercentRightArmnumber

Fat Free Mass of the right arm in percent

ffmPercentRightLegnumber

Fat Free Mass of the right leg in percent

ffmPercentTrunknumber

Fat Free Mass of the trunk in percent

ffmRightArmnumber

Fat Free Mass of the right arm in kg

ffmRightLegnumber

Fat Free Mass of the right leg in kg

ffmTrunknumber

Fat Free Mass of the trunk in kg

rawResultsstringrequired

The raw results. Might be passed back to partner-provided widgets

Response
application/json
{ "databaseId": 0, "basalMetabolicRate": 0, "bodyFatMass": 0, "bodyMassIndex": 0, "fatFreeMass": 0, "percentBodyFat": 0, "percentSkeletalMuscleMass": 0, "skeletalMuscleMass": 0, "totalBodyWater": 0, "visceralFatLevel": 0, "weight": 0, "height": 0, "bfmLeftArm": 0, "bfmLeftLeg": 0, "bfmPercentLeftArm": 0, "bfmPercentLeftLeg": 0, "bfmPercentRightArm": 0, "bfmPercentRightLeg": 0, "bfmPercentTrunk": 0, "bfmRightArm": 0, "bfmRightLeg": 0, "bfmTrunk": 0, "ffmLeftArm": 0, "ffmLeftLeg": 0, "ffmPercentLeftArm": 0, "ffmPercentLeftLeg": 0, "ffmPercentRightArm": 0, "ffmPercentRightLeg": 0, "ffmPercentTrunk": 0, "ffmRightArm": 0, "ffmRightLeg": 0, "ffmTrunk": 0, "rawResults": "string" }

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

Trial Offers

Get trial offers information

Operations