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: 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.magicline.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"
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.999+02:00[Europe/Berlin]"
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 get 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", "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.999+02:00[Europe/Berlin]", "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"
curl -i -X POST \
  https://open-api-demo.open-api.magicline.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"
  }'

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"
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.999+02:00[Europe/Berlin]"
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 get 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", "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.999+02:00[Europe/Berlin]", "accessMediums": [] } ]

Request

Required Scopes(any of): CUSTOMER_CONTRACT_READ, CUSTOMER_READ

Returns customer's contracts

Security
ApiKeyAuth
Path
customerIdinteger(int64)required

Unique ID of the customer

Query
statusstring(ContractStatus)

The contracts desired or current status

Enum ValueDescription
ACTIVE

Identifies active contracts

INACTIVE

Identifies inactive contracts

Example: status=ACTIVE
curl -i -X GET \
  'https://open-api-demo.open-api.magicline.com/v1/customers/{customerId}/contracts?status=ACTIVE' \
  -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" } ]

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