Fitssey API (v4)

Introduction

The Fitssey API is organized around REST implementation. It communicates using HTTPS resource-oriented URLs, accepting and returning JSON payloads. The API is secured using Bearer token which can be obtained in your Studio > Integrations > API Keys.

We advise you to take 30 minutes upon reading this document and this may save you time when developing your great application.

Recent changelog

16th November, 2025

  • Rewritten documentation to catch up with development changes.
  • Introduced API limit rates
  • Added new /report endpoint

Base URL

The base URL contains {uuid} parameter which can be found in Studio > Your Studio > UUID section and it's an integral part of each request. Thanks to the UUID, we know it's you.

https://app.fitssey.com/{uuid}/api/v4/public

Developer resources

For developers we have created examples that can be found in our official Github profile (https://github.com/fitssey).

Not a developer?

Check out our Widgets integration - simply copy & paste the given code and things magically appear on your website!

Authentication

Fitssey API by default uses HTTP authentication.

The very first thing you would have to do is to create an API key in your Studio > Integrations > API Keys.

Of course it's very important to keep your API keys always secure. That is why we strongly recommend to:

  • use a different API key for each integration
  • store and use API keys on the server-side (PHP, Python, Node.js) and not client-side (JavaScript)

Authenticating an API call

The created API key must be sent along with each API request, by providing it in the HTTP Authorization request header using the Bearer method. The valid Authorization header looks as follows: Bearer live_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM.

Best practices

Handling errors

Whenever you develop the application, you must always check for errors because sometimes things break. Normally, you will always get a response in JSON format explaining what the error was along with the error code for a reference.

A first digit of HTTP status code represents whether the response was successful or not.

  • A code in the 2xx range indicates that a response was successful and you can handle the data in your application.
  • A code in the 4xx range indicates that a response has failed due to number of reasons explained in the error message (can be validation problem, resource not found or authentication issue). Usually this error won't go away by itself.
  • A code in the 5xx range indicates that Fitssey application had hiccup, meaning something happened in our app infrastructure. Only we know what causes the problem, so you won't get detailed message what's going on in the error message. In such critical errors, we are instantly notified about the problem, so it may be possible that if you retry your request it will work again.

Examples of error responses:

HTTP/1.1 403 Forbidden
Content-Type: application/json

{
  "error": {
      "statusCode": 403,
      "code": 103,
      "message": "Invalid API key"
  }
}

Handling enums

Sometimes we use enums as strings (e.g. scheduled) and sometimes as integers (e.g. 1 (paid)). Pay attention whether to use each.

FAQ

What can I do using Fitssey API?

You can use our API to write custom applications or integrations for your website. You can do variety of things including the following:

  • Display the schedule the way you want
  • Book classes
  • Manage client profile
  • Sell products
  • Manage members

Is there a rate limit?

As of late 2025, we have introduced rate limits as follows:

  • 10/s (30s lockout)
  • 200/5m (30m lockout from last request)
  • 4000/6h (4h lockout from last request)
  • 10000/24h (6h lockout from last request)

Please treat our API with all the respect and don't abuse the calls. If possible, please cache the responses on your side.

Contract

Get all contracts

This call returns all studio contracts.

query Parameters
sortField
string
Default: createdAt
Value: createdAt

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (Contract)

Response samples

Content type
application/json
{}

Get contract

This call returns the contract.

path Parameters
contract
required
string <guid>

The guid of the Contract to return.

Responses

Response Schema: application/json
name
string

A descriptive name for the contract.

description
string or null
Default: null

A public description for the contract, available in FrontOffice.

object (Picture)

A public picture representing the given contract.

privateNotes
string or null
Default: null

Private notes attached to the contract, only visible to studio staff.

preSaleInfo
string or null
Default: null

Additional information displayed in the FrontOffice shopping cart before purchasing.

instalments
object

An installment configuration.

isSoldOnline
boolean

Determines whether the contract is available in FrontOffice to be sold.

guid
string <guid> = 36 characters

Globally unique identifier

Response samples

Content type
application/json
{}

ClassService

Get all classes

This call returns all studio classes.

query Parameters
sortField
string
Default: createdAt
Value: createdAt

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (ClassService)

Response samples

Content type
application/json
{}

Client

Create account

This call allows you to create a client account.

Request Body schema: application/json
firstName
required
string [ 2 .. 25 ] characters

The client's first name.

lastName
required
string [ 2 .. 40 ] characters

The client's last name.

emailAddress
string <= 50 characters
Default: null

The client's email address.

sex
integer
Default: null
Enum: 0 (male) 1 (female)

The client's gender.

activationMethod
string
Default: null
Enum: disabled email password

There are two types of activation (both require providing an email address): email that will trigger an activation email and user will be asked to provide a password, password that will automatically activate the account with the given password (this requires credentials object). Leave it null when you want to create an account without login information.

object

Credentials are required when activationMethod is set to password.

object

A property describing client payload.

Responses

Response Schema: application/json
Array
emailAddress
string or null
Default: null

An unique user's email address.

contactEmailAddress
string or null
Default: null

The user's contact email address.

firstName
string

The user's first name.

lastName
string

The user's last name.

sex
integer or null
Default: 1
Enum: 0 (male) 1 (female)

The user's gender.

suspensionType
integer or null
Default: null
Enum: 0 (booking) 1 (login)

If not null, returns information about what type of suspension has been set on user's account.

isSuspended
boolean
Default: false

Determines whether the user's account is suspended or not.

suspendedAt
string or null
Default: null

The time at which user's account has been suspended.

suspensionExpiresAt
string or null
Default: null

The time at which user's account will be automatically released from suspension.

suspensionReason
string or null
Default: null

Additional reason of why user's account has been suspended.

isLoginEnabled
boolean
Default: true

Determines whether the user's login possibility is enabled or not.

activatedAt
string or null
Default: null

The time at which user's account has been activated (mostly via activation link in the email).

lastSeenAt
string or null
Default: null

The time at which user was logged in to FrontOffice for the last time.

object (Client)

Attached when user is a client type.

fullName
string

The user's full name.

hasAndroidApp
boolean
Default: false

Determines whether user is using Android app (Fitssey free app or Fitssey premium app).

hasIosApp
boolean
Default: false

Determines whether user is using iOS app (Fitssey free app or Fitssey premium app).

guid
string <guid> = 36 characters

Globally unique identifier

Request samples

Content type
application/json
{
  • "firstName": "Jonathan",
  • "lastName": "Smith",
  • "emailAddress": "[email protected]",
  • "sex": 1,
  • "activationMethod": "password",
  • "credentials": {
    • "authMethod": "0",
    • "value": "Mypas$word123!"
    },
  • "client": {
    • "birthdayAt": "1995-06-27 00:00:00",
    • "address": {
      • "street": "Sunny street 77a",
      • "postalCode": "1234AB",
      • "city": "Amsterdam"
      },
    • "phone": {
      • "mobilePhone": "+31222333444",
      • "homePhone": "20304050",
      • "workPhone": "60708090"
      },
    • "clientFields": {
      • "myCustomField1": 1234,
      • "myCustomField2": "ABCD"
      },
    • "tags": [
      • "F7AF8A76-1A51-4CE6-9142-0D987C2B647F",
      • "A1FED25B-A13E-4E65-8F74-62290C882BEF"
      ],
    • "agreements": {
      • "termsOfUse": true,
      • "newsletter": false,
      • "privacyPolicy": true
      }
    }
}

Response samples

Content type
application/json
[
  • {
    • "emailAddress": "[email protected]",
    • "contactEmailAddress": "[email protected]",
    • "firstName": "Maria",
    • "lastName": "Dvorak",
    • "sex": 1,
    • "suspensionType": 1,
    • "isSuspended": false,
    • "suspendedAt": "2019-09-10T15:31:47+02:00",
    • "suspensionExpiresAt": "2019-09-17T15:31:47+02:00",
    • "suspensionReason": "Suspended due to many cancellations",
    • "isLoginEnabled": true,
    • "activatedAt": "2019-09-01T12:02:35+02:00",
    • "lastSeenAt": "2019-09-03T09:54:12+02:00",
    • "client": {
      • "uuid": "1000072",
      • "clientFields": null,
      • "agreements": null,
      • "birthdateAt": "1980-01-19T23:00:00+01:00",
      • "lastActiveAt": "2019-09-03T08:06:23+02:00",
      • "address": {
        • "street": "Sunny street 77a",
        • "postalCode": "1234AB",
        • "city": "Amsterdam",
        • "countryCode": "NL"
        },
      • "phone": {
        • "mobilePhone": "+31222333444",
        • "homePhone": "20304050",
        • "workPhone": "60708090",
        • "isMobilePhoneVerified": false
        },
      • "clientNotes": [
        • {
          • "type": "private",
          • "note": "Client prefers morning classes.",
          • "color": "#FF5733",
          • "expiresAt": null,
          • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
          }
        ],
      • "tags": [
        • {
          • "name": "VIP",
          • "color": "#FF5733",
          • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
          }
        ]
      },
    • "fullName": "Monica Dvorak",
    • "hasAndroidApp": false,
    • "hasIosApp": false,
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
    }
]

Get all clients

This call returns all studio clients.

query Parameters
sortField
string
Default: createdAt
Enum: (all properties) city street postalCode

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

filters[emailAddress]
string
Example: filters[emailAddress][email protected]

Shrink the collection based on the email address criteria.

filters[address]
Array of arrays
Items Enum: havingAddress noAddress
Example: filters[address]=havingAddress

Shrink the collection based on address criteria.

filters[phone]
Array of arrays
Items Enum: havingPhone noPhone
Example: filters[phone]=noPhone

Shrink the collection based on phone criteria.

filters[sex]
Array of arrays
Items Enum: 0 (male) 1 (female)
Example: filters[sex]=1

Shrink the collection based on gender criteria.

filters[age]
Array of arrays
Items Enum: <18 18-24 25-34 35-44 45-54 55-64 65+
Example: filters[age]=18-24

Shrink the collection based on age criteria.

filters[agreements]
Array of arrays
Items Enum: havingTermsOfUseAgreement noTermsOfUseAgreement havingPrivacyPolicyAgreement noPrivacyPolicyAgreement havingNewsletterAgreement noNewsletterAgreement
Example: filters[agreements]=noPrivacyPolicyAgreement

Shrink the collection based on agreements criteria.

filters[tags]
Array of arrays
Items Enum: havingTags noTags
Example: filters[tags]=havingTags

Shrink the collection based on tags criteria.

filters[selectedTags]
Array of arrays
Items Value: guid
Example: filters[selectedTags]=F15138B6-826E-4287-AAA5-8EC301D65FB4

Shrink the collection based on specific tags criteria.

filters[notes]
Array of arrays
Items Enum: havingNotes noNotes
Example: filters[notes]=havingNotes

Shrink the collection based on notes criteria.

filters[emergencyContact]
Array of arrays
Items Enum: havingEmergencyContact noEmergencyContact
Example: filters[emergencyContact]=noEmergencyContact

Shrink the collection based on emergency contact criteria.

filters[mobileApps]
Array of arrays
Items Enum: mobileApp noMobileApp
Example: filters[mobileApps]=noMobileApp

Shrink the collection based on mobile app criteria.

filters[deleted]
Array of arrays
Items Enum: true false
Example: filters[deleted]=true

Shrink the collection based on deleted clients criteria.

filters[suspended]
Array of arrays
Items Enum: havingAccountSuspended noAccountSuspended
Example: filters[suspended]=havingAccountSuspended

Shrink the collection based on suspended clients criteria.

filters[birthdate]
Array of arrays
Items Enum: havingBirthdate noBirthdate
Example: filters[birthdate]=noBirthdate

Shrink the collection based on birthdates criteria.

filters[login]
Array of arrays
Items Enum: havingLoginEnabled noLoginEnabled
Example: filters[login]=noLoginEnabled

Shrink the collection based on login criteria.

filters[createdAt]
Array of arrays
Items Enum: eq (=) lt (<) lte (<=) gt (>) gte (>=)
Example: filters[createdAt]=lt(2023-10-25)

Shrink the collection based on created on criteria.

filters[modifiedAt]
Array of arrays
Items Enum: between eq (=) lt (<) lte (<=) gt (>) gte (>=)
Example: filters[modifiedAt]=between(2023-10-01,2023-10-31)

Shrink the collection based on modified on criteria.

queryString
string
Default: null

Filtering collection by free text.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (User)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "emailAddress": "[email protected]",
      • "contactEmailAddress": "[email protected]",
      • "firstName": "Maria",
      • "lastName": "Dvorak",
      • "sex": 1,
      • "suspensionType": 1,
      • "isSuspended": false,
      • "suspendedAt": "2019-09-10T15:31:47+02:00",
      • "suspensionExpiresAt": "2019-09-17T15:31:47+02:00",
      • "suspensionReason": "Suspended due to many cancellations",
      • "isLoginEnabled": true,
      • "activatedAt": "2019-09-01T12:02:35+02:00",
      • "lastSeenAt": "2019-09-03T09:54:12+02:00",
      • "client": {
        • "uuid": "1000072",
        • "clientFields": null,
        • "agreements": null,
        • "birthdateAt": "1980-01-19T23:00:00+01:00",
        • "lastActiveAt": "2019-09-03T08:06:23+02:00",
        • "address": {
          • "street": "Sunny street 77a",
          • "postalCode": "1234AB",
          • "city": "Amsterdam",
          • "countryCode": "NL"
          },
        • "phone": {
          • "mobilePhone": "+31222333444",
          • "homePhone": "20304050",
          • "workPhone": "60708090",
          • "isMobilePhoneVerified": false
          },
        • "clientNotes": [
          • {
            • "type": "private",
            • "note": "Client prefers morning classes.",
            • "color": "#FF5733",
            • "expiresAt": null,
            • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
            }
          ],
        • "tags": [
          • {
            • "name": "VIP",
            • "color": "#FF5733",
            • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
            }
          ]
        },
      • "fullName": "Monica Dvorak",
      • "hasAndroidApp": false,
      • "hasIosApp": false,
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

Get client

This call returns the client.

path Parameters
user
required
string <guid>

The guid of the Client to return.

Responses

Response Schema: application/json
emailAddress
string or null
Default: null

An unique user's email address.

contactEmailAddress
string or null
Default: null

The user's contact email address.

firstName
string

The user's first name.

lastName
string

The user's last name.

sex
integer or null
Default: 1
Enum: 0 (male) 1 (female)

The user's gender.

suspensionType
integer or null
Default: null
Enum: 0 (booking) 1 (login)

If not null, returns information about what type of suspension has been set on user's account.

isSuspended
boolean
Default: false

Determines whether the user's account is suspended or not.

suspendedAt
string or null
Default: null

The time at which user's account has been suspended.

suspensionExpiresAt
string or null
Default: null

The time at which user's account will be automatically released from suspension.

suspensionReason
string or null
Default: null

Additional reason of why user's account has been suspended.

isLoginEnabled
boolean
Default: true

Determines whether the user's login possibility is enabled or not.

activatedAt
string or null
Default: null

The time at which user's account has been activated (mostly via activation link in the email).

lastSeenAt
string or null
Default: null

The time at which user was logged in to FrontOffice for the last time.

object (Client)

Attached when user is a client type.

fullName
string

The user's full name.

hasAndroidApp
boolean
Default: false

Determines whether user is using Android app (Fitssey free app or Fitssey premium app).

hasIosApp
boolean
Default: false

Determines whether user is using iOS app (Fitssey free app or Fitssey premium app).

guid
string <guid> = 36 characters

Globally unique identifier

Response samples

Content type
application/json
{
  • "emailAddress": "[email protected]",
  • "contactEmailAddress": "[email protected]",
  • "firstName": "Maria",
  • "lastName": "Dvorak",
  • "sex": 1,
  • "suspensionType": 1,
  • "isSuspended": false,
  • "suspendedAt": "2019-09-10T15:31:47+02:00",
  • "suspensionExpiresAt": "2019-09-17T15:31:47+02:00",
  • "suspensionReason": "Suspended due to many cancellations",
  • "isLoginEnabled": true,
  • "activatedAt": "2019-09-01T12:02:35+02:00",
  • "lastSeenAt": "2019-09-03T09:54:12+02:00",
  • "client": {
    • "uuid": "1000072",
    • "clientFields": null,
    • "agreements": null,
    • "birthdateAt": "1980-01-19T23:00:00+01:00",
    • "lastActiveAt": "2019-09-03T08:06:23+02:00",
    • "address": {
      • "street": "Sunny street 77a",
      • "postalCode": "1234AB",
      • "city": "Amsterdam",
      • "countryCode": "NL"
      },
    • "phone": {
      • "mobilePhone": "+31222333444",
      • "homePhone": "20304050",
      • "workPhone": "60708090",
      • "isMobilePhoneVerified": false
      },
    • "clientNotes": [
      • {
        • "type": "private",
        • "note": "Client prefers morning classes.",
        • "color": "#FF5733",
        • "expiresAt": null,
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        }
      ],
    • "tags": [
      • {
        • "name": "VIP",
        • "color": "#FF5733",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        }
      ]
    },
  • "fullName": "Monica Dvorak",
  • "hasAndroidApp": false,
  • "hasIosApp": false,
  • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
}

ClientContract

Get all client contracts

This call returns all client contracts.

path Parameters
user
required
string <guid>

The guid of the User the returned client contracts belong to.

query Parameters
sortField
string
Default: createdAt
Value: createdAt

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (ClientContract)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "privateNotes": "Client prefers monthly billing",
      • "startsAt": "2019-06-01T22:00:00+02:00",
      • "endsAt": "2020-05-31T21:59:59+02:00",
      • "terminatedAt": "2020-10-02T22:00:00+02:00",
      • "terminatedFrom": "2020-10-02T22:00:00+02:00",
      • "terminationReason": "Moving out to different country",
      • "contract": {
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        },
      • "instalments": [
        • {
          • "status": "scheduled",
          • "scheduledAt": "2019-05-12T22:00:00+02:00",
          • "endsAt": "2019-06-12T21:59:59+02:00",
          • "processedAt": "2019-06-12T22:00:00+02:00",
          • "chargeAt": "2019-06-01T22:00:00+02:00",
          • "suspendedAt": "2020-03-15T10:00:00+02:00",
          • "suspensionReason": "Holiday season",
          • "clientOrder": {
            • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
            },
          • "qualifiedName": "Guest Card",
          • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
          }
        ],
      • "nextPaymentAt": "2020-10-02T22:00:00+02:00",
      • "nextChargeAmount": "8000",
      • "minInstalmentCountToAllowTermination": "3",
      • "qualifiedName": "1 Year Contract",
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

ClientContractInstalment

Suspend client contract instalment

With this call you will be able to suspend a client contract instalment. Suspending an instalment changes the associated order status to suspended.

path Parameters
clientContractInstalment
required
string <guid>

The guid of the ClientContractInstalment to be suspended.

Request Body schema: application/json
suspensionReason
string

The reason why the instalment is being suspended.

Responses

Response Schema: application/json
status
string
Enum: scheduled processed

The status that indicates whether the instalment has been scheduled or processed

scheduledAt
string

The scheduled date of the instalment (expressed in ISO 8601 format). This is the date when scheduled instalment becomes processed one

endsAt
string

The end date of the instalment (expressed in ISO 8601 format)

processedAt
datetime or null
Default: null

Time at which the instalment has changed the status to "processed" (expressed in ISO 8601 format).

chargeAt
datetime or null
Default: null

Time at which the instalment is scheduled for charge (expressed in ISO 8601 format).

suspendedAt
datetime or null
Default: null

Time at which the instalment has been suspended (expressed in ISO 8601 format).

suspensionReason
string or null
Default: null

The reason why the instalment has been suspended

object (ClientOrder)

Attached the order to the instalment

qualifiedName
string

A representative name of the instalment, derived from the attached order items.

guid
string <guid> = 36 characters

Globally unique identifier

Request samples

Content type
application/json
{
  • "suspensionReason": "Holiday season"
}

Response samples

Content type
application/json
{
  • "status": "scheduled",
  • "scheduledAt": "2019-05-12T22:00:00+02:00",
  • "endsAt": "2019-06-12T21:59:59+02:00",
  • "processedAt": "2019-06-12T22:00:00+02:00",
  • "chargeAt": "2019-06-01T22:00:00+02:00",
  • "suspendedAt": "2020-03-15T10:00:00+02:00",
  • "suspensionReason": "Holiday season",
  • "clientOrder": {
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
    },
  • "qualifiedName": "Guest Card",
  • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
}

Resume client contract instalment

With this call you will be able to resume a previously suspended client contract instalment. Resuming an instalment changes the associated order status back to scheduled.

path Parameters
clientContractInstalment
required
string <guid>

The guid of the ClientContractInstalment to be resumed.

Responses

Response Schema: application/json
status
string
Enum: scheduled processed

The status that indicates whether the instalment has been scheduled or processed

scheduledAt
string

The scheduled date of the instalment (expressed in ISO 8601 format). This is the date when scheduled instalment becomes processed one

endsAt
string

The end date of the instalment (expressed in ISO 8601 format)

processedAt
datetime or null
Default: null

Time at which the instalment has changed the status to "processed" (expressed in ISO 8601 format).

chargeAt
datetime or null
Default: null

Time at which the instalment is scheduled for charge (expressed in ISO 8601 format).

suspendedAt
datetime or null
Default: null

Time at which the instalment has been suspended (expressed in ISO 8601 format).

suspensionReason
string or null
Default: null

The reason why the instalment has been suspended

object (ClientOrder)

Attached the order to the instalment

qualifiedName
string

A representative name of the instalment, derived from the attached order items.

guid
string <guid> = 36 characters

Globally unique identifier

Response samples

Content type
application/json
{
  • "status": "scheduled",
  • "scheduledAt": "2019-05-12T22:00:00+02:00",
  • "endsAt": "2019-06-12T21:59:59+02:00",
  • "processedAt": "2019-06-12T22:00:00+02:00",
  • "chargeAt": "2019-06-01T22:00:00+02:00",
  • "suspendedAt": "2020-03-15T10:00:00+02:00",
  • "suspensionReason": "Holiday season",
  • "clientOrder": {
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
    },
  • "qualifiedName": "Guest Card",
  • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
}

ClientPricingOption

Get all client pricing options

This call returns all client pricing options.

path Parameters
user
required
string <guid>

The guid of the User the returned client pricing options belong to.

query Parameters
sortField
string
Default: createdAt
Value: (all properties)

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

status
string
Default: null
Enum: active inactive notActivated active,notActivated

You can filter out collection based on the given status.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (ClientPricingOption)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "remain": 4,
      • "sessionType": "limitedVisits",
      • "expiresAt": "2023-08-31T21:59:59+02:00",
      • "activatedAt": "2023-08-01T22:00:00+02:00",
      • "pricingOption": {
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        },
      • "isUnpaid": false,
      • "isShared": false,
      • "qualifiedName": "Yoga pass 8x",
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

ClientVisit

Get all client visits

This call returns all client visits.

path Parameters
user
required
string <guid>

The guid of the User the returned client visits belong to.

query Parameters
sortField
string
Default: createdAt
Value: (all properties)

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (ClientVisit)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "status": 0,
      • "weight": 1,
      • "members": [
        • {
          • "user": {
            • "fullName": "Monica Dvorak",
            • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
            }
          }
        ],
      • "room": {
        • "qualifiedName": "Circle place - Room A",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        },
      • "visitStartsAt": "2024-04-02T11:00:00+01:00",
      • "visitEndsAt": "2024-04-02T12:00:00+01:00",
      • "awaitingUntil": "2024-04-02T11:00:00+01:00",
      • "privateNotes": "Client requested front row spot.",
      • "isFree": false,
      • "clientPricingOption": {
        • "qualifiedName": "Yoga pass 8x",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        },
      • "source2": "api",
      • "isUnpaid": false,
      • "isOnWaitingList": false,
      • "bookedAt": "2024-04-01T09:30:00+01:00",
      • "qualifiedName": "Yoga class",
      • "enrollmentType": "clientVisit",
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

ClientOrder

Get all client orders

This call returns all client orders.

path Parameters
user
required
string <guid>

The guid of the User the returned client orders belong to.

query Parameters
sortField
string
Default: createdAt
Value: (all properties)

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

status
string
Default: null
Enum: current past

You can filter out collection based on the given status.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (ClientOrder)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "orderStatus": 1,
      • "paymentMethod": 0,
      • "paidAmount": 1750,
      • "dueAmount": 0,
      • "discountRate": 0,
      • "invoiceDetails": null,
      • "privateNotes": null,
      • "voidReason": null,
      • "paymentDueAt": null,
      • "paidAt": "2025-05-12T12:45:47+02:00",
      • "voidedAt": null,
      • "clientOrderItems": [
        • {
          • "name": "Yoga Card x4",
          • "netPrice": 1428,
          • "totalPrice": 1750,
          • "taxAmount": 322,
          • "taxRate": 0.23,
          • "totalPriceBeforeDiscount": 2000,
          • "serviceType": "classroom",
          • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
          • "createdAt": "2019-05-12T12:45:47+02:00",
          • "modifiedAt": "2023-09-12T19:18:23+02:00"
          }
        ],
      • "totalPrice": 1750,
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
      • "createdAt": "2019-05-12T12:45:47+02:00",
      • "modifiedAt": "2023-09-12T19:18:23+02:00"
      }
    ]
}

Get client order

This call returns the client order.

path Parameters
user
required
string <guid>

The guid of the User the client order belongs to.

clientOrder
required
string <guid>

The guid of the ClientOrder to return.

Responses

Response Schema: application/json
orderStatus
integer
Enum: 0 (pending) 1 (paid) 2 (unpaid) 3 (cancelled) 4 (rejected) 5 (awaiting) 6 (void) 7 (scheduled) 8 (failed) 9 (authorizationAllowed) 10 (authorizationDisallowed) 11 (freeOfCharge) 12 (suspended)

The last order status that indicates whether the order has been paid or not.

paymentMethod
integer
Enum: 0 (online) 1 (bankTransfer) 2 (cash) 3 (other) 4 (gift) 5 (none) 6 (paymentCard) 11 (test) 12 (terminal) 13 (wallet)

The payment method that has been used to pay for this order.

paidAmount
decimal

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the total paid amount for the order.

dueAmount
decimal

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the total due amount for the order.

discountRate
decimal

A decimal number indicating discount rate (0.2 for 20%, 1.0 for 100%).

invoiceDetails
object or null
Default: null

Invoice details attached to the order, containing billing information such as company name, tax ID and address.

privateNotes
string or null
Default: null

Private notes visible only to studio members, not exposed to the client.

voidReason
string or null
Default: null

The reason why the order has been voided.

paymentDueAt
string or null
Default: null

Time by which the order should be paid.

paidAt
string or null
Default: null

Time at which the order has been paid.

voidedAt
string or null
Default: null

Time at which the order has been voided.

Array of objects

Item objects purchased along with the order.

totalPrice
integer

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the total price of the order.

guid
string <guid> = 36 characters

Globally unique identifier

createdAt
string

Time at which the object was created (expressed in ISO 8601 format)

modifiedAt
string

Time at which the object was modified (expressed in ISO 8601 format). If never modified it will equal date of creation

Response samples

Content type
application/json
{
  • "orderStatus": 1,
  • "paymentMethod": 0,
  • "paidAmount": 1750,
  • "dueAmount": 0,
  • "discountRate": 0,
  • "invoiceDetails": null,
  • "privateNotes": null,
  • "voidReason": null,
  • "paymentDueAt": null,
  • "paidAt": "2025-05-12T12:45:47+02:00",
  • "voidedAt": null,
  • "clientOrderItems": [
    • {
      • "name": "Yoga Card x4",
      • "netPrice": 1428,
      • "totalPrice": 1750,
      • "taxAmount": 322,
      • "taxRate": 0.23,
      • "totalPriceBeforeDiscount": 2000,
      • "serviceType": "classroom",
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
      • "createdAt": "2019-05-12T12:45:47+02:00",
      • "modifiedAt": "2023-09-12T19:18:23+02:00"
      }
    ],
  • "totalPrice": 1750,
  • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
  • "createdAt": "2019-05-12T12:45:47+02:00",
  • "modifiedAt": "2023-09-12T19:18:23+02:00"
}

Location

Get all locations

This call returns all studio locations.

query Parameters
sortField
string
Default: createdAt
Value: createdAt

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (Location)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "name": "Circle place",
      • "type": "facility",
      • "directions": "Take the second exit on the roundabout.",
      • "entranceInstructions": "Use the side entrance and ring the bell.",
      • "address": {
        • "street": "Sunny street 77a",
        • "postalCode": "1234AB",
        • "city": "Amsterdam",
        • "countryCode": "NL"
        },
      • "phone": {
        • "mobilePhone": "+31222333444",
        • "homePhone": "20304050",
        • "workPhone": "60708090",
        • "isMobilePhoneVerified": false
        },
      • "rooms": [
        • {
          • "name": "Room A",
          • "qualifiedName": "Circle place - Room A",
          • "hasSmartLock": false,
          • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
          }
        ],
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

Member

Get all members

This call returns all studio staff members.

query Parameters
sortField
string
Default: createdAt
Value: createdAt

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

iamRole
string
Default: null
Enum: lb:iam_role:manager lb:iam_role:teacher lb:iam_role:host

Filters out the collection based on the given IAM role.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (User)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "emailAddress": "[email protected]",
      • "contactEmailAddress": "[email protected]",
      • "firstName": "Maria",
      • "lastName": "Dvorak",
      • "sex": 1,
      • "suspensionType": 1,
      • "isSuspended": false,
      • "suspendedAt": "2019-09-10T15:31:47+02:00",
      • "suspensionExpiresAt": "2019-09-17T15:31:47+02:00",
      • "suspensionReason": "Suspended due to many cancellations",
      • "isLoginEnabled": true,
      • "activatedAt": "2019-09-01T12:02:35+02:00",
      • "lastSeenAt": "2019-09-03T09:54:12+02:00",
      • "member": {
        • "publicBiography": "Mark is one of the best Yoga teachers...",
        • "birthdateAt": "1974-09-17T22:00:00+02:00",
        • "address": {
          • "street": "Sunny street 77a",
          • "postalCode": "1234AB",
          • "city": "Amsterdam",
          • "countryCode": "NL"
          },
        • "phone": {
          • "mobilePhone": "+31222333444",
          • "homePhone": "20304050",
          • "workPhone": "60708090",
          • "isMobilePhoneVerified": false
          },
        • "tags": [
          • {
            • "name": "VIP",
            • "color": "#FF5733",
            • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
            }
          ],
        • "qualifiedName": "Mark the Teacher"
        },
      • "fullName": "Monica Dvorak",
      • "hasAndroidApp": false,
      • "hasIosApp": false,
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

Get member

This call returns the member.

path Parameters
user
required
string <guid>

The guid of the Member to return.

Responses

Response Schema: application/json
emailAddress
string or null
Default: null

An unique user's email address.

contactEmailAddress
string or null
Default: null

The user's contact email address.

firstName
string

The user's first name.

lastName
string

The user's last name.

sex
integer or null
Default: 1
Enum: 0 (male) 1 (female)

The user's gender.

suspensionType
integer or null
Default: null
Enum: 0 (booking) 1 (login)

If not null, returns information about what type of suspension has been set on user's account.

isSuspended
boolean
Default: false

Determines whether the user's account is suspended or not.

suspendedAt
string or null
Default: null

The time at which user's account has been suspended.

suspensionExpiresAt
string or null
Default: null

The time at which user's account will be automatically released from suspension.

suspensionReason
string or null
Default: null

Additional reason of why user's account has been suspended.

isLoginEnabled
boolean
Default: true

Determines whether the user's login possibility is enabled or not.

activatedAt
string or null
Default: null

The time at which user's account has been activated (mostly via activation link in the email).

lastSeenAt
string or null
Default: null

The time at which user was logged in to FrontOffice for the last time.

object (Member)

Attached when user is a member type.

fullName
string

The user's full name.

hasAndroidApp
boolean
Default: false

Determines whether user is using Android app (Fitssey free app or Fitssey premium app).

hasIosApp
boolean
Default: false

Determines whether user is using iOS app (Fitssey free app or Fitssey premium app).

guid
string <guid> = 36 characters

Globally unique identifier

Response samples

Content type
application/json
{
  • "emailAddress": "[email protected]",
  • "contactEmailAddress": "[email protected]",
  • "firstName": "Maria",
  • "lastName": "Dvorak",
  • "sex": 1,
  • "suspensionType": 1,
  • "isSuspended": false,
  • "suspendedAt": "2019-09-10T15:31:47+02:00",
  • "suspensionExpiresAt": "2019-09-17T15:31:47+02:00",
  • "suspensionReason": "Suspended due to many cancellations",
  • "isLoginEnabled": true,
  • "activatedAt": "2019-09-01T12:02:35+02:00",
  • "lastSeenAt": "2019-09-03T09:54:12+02:00",
  • "member": {
    • "publicBiography": "Mark is one of the best Yoga teachers...",
    • "birthdateAt": "1974-09-17T22:00:00+02:00",
    • "address": {
      • "street": "Sunny street 77a",
      • "postalCode": "1234AB",
      • "city": "Amsterdam",
      • "countryCode": "NL"
      },
    • "phone": {
      • "mobilePhone": "+31222333444",
      • "homePhone": "20304050",
      • "workPhone": "60708090",
      • "isMobilePhoneVerified": false
      },
    • "tags": [
      • {
        • "name": "VIP",
        • "color": "#FF5733",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        }
      ],
    • "qualifiedName": "Mark the Teacher"
    },
  • "fullName": "Monica Dvorak",
  • "hasAndroidApp": false,
  • "hasIosApp": false,
  • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
}

Other endpoints

Ping the API

Checks whether the given credentials are valid for authentication.

Responses

Response samples

Content type
application/json
{
  • "error": {
    • "statusCode": 403,
    • "code": 103,
    • "message": "Invalid API key"
    }
}

PaymentOption

Get all payment options

This call returns all studio payment options.

query Parameters
sortField
string
Default: createdAt
Value: createdAt

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (PaymentOption)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "name": "Physical card fee",
      • "privateNotes": "Internal note about card fee",
      • "price": 500,
      • "taxRate": 1.23,
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

Get payment option

This call returns the payment option.

path Parameters
paymentOption
required
string <guid>

The guid of the PaymentOption to return.

Responses

Response Schema: application/json
name
string

A descriptive name for the payment option.

privateNotes
string or null
Default: null

Private notes for the payment option.

price
decimal

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the amount for the payment option.

taxRate
decimal or null
Default: null

A decimal number indicating tax rate (1.0 for 0%, 1.23 for 23%).

guid
string <guid> = 36 characters

Globally unique identifier

Response samples

Content type
application/json
{
  • "name": "Physical card fee",
  • "privateNotes": "Internal note about card fee",
  • "price": 500,
  • "taxRate": 1.23,
  • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
}

PricingOption

Get all pricing options

This call returns all studio pricing options.

query Parameters
sortField
string
Default: createdAt
Value: createdAt

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (PricingOption)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "name": "Guest card",
      • "internalName": "Guest card [previously 1x card]",
      • "description": "Great option for trying out!",
      • "privateNotes": "Internal note about guest card",
      • "preSaleInfo": "Remember, you can only buy one",
      • "sessionType": "limitedVisits",
      • "sessionValue": 2,
      • "price": 5500,
      • "taxRate": 1.23,
      • "expirationType": 0,
      • "isSoldOnline": true,
      • "isAutoAssigned": false,
      • "isIntroductoryOffer": false,
      • "promotion": {
        • "isPromotionEnabled": true,
        • "promotionType": "discount",
        • "discountAmount": 3000,
        • "discountType": 0,
        • "promotionStartsAt": "2025-01-00:00:00+02:00",
        • "promotionEndsAt": "2026-01-01T23:59:59+02:00"
        },
      • "discountedPrice": 2500,
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

Get pricing option

This call returns the pricing option.

path Parameters
pricingOption
required
string <guid>

The guid of the PricingOption to return.

Responses

Response Schema: application/json
name
string

A descriptive name for the pricing option.

internalName
string or null
Default: null

An additional descriptive name for the pricing option visible in BackOffice only.

description
string or null
Default: null

A public description for the pricing option, available in FrontOffice.

object (Picture)

A public picture representing the given pricing option.

privateNotes
string or null
Default: null

Private notes for the pricing option.

preSaleInfo
string or null
Default: null

Additional information displayed in the FrontOffice shopping cart before purchasing.

sessionType
string
Enum: limitedVisits limitedTime unlimited

Determines the session type.
- limitedVisits restricts the number of bookable sessions to a specified count.
-limitedTime restricts the total bookable time to a specified number of minutes.
- unlimited no limits on sessions or time, represented by a value of -1.

sessionValue
integer

Determines how many sessions (credits) are available for the pricing option. Check sessionType description to learn more.

price
decimal

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the amount for the pricing option.

taxRate
decimal

A decimal number indicating tax rate (1.0 for 0%, 1.23 for 23%).

expirationType
integer
Enum: 0 (sale date) 1 (first visit) 2 (always valid) 3 (calendar month) 4 (specific date)

Determines expiration type for the pricing option and set the activation and expiration dates accordingly.
- 0 dates are set already when pricing option is sold.
- 1 dates are set when the first visit is booked.
- 2 dates are null and allows to book without constraints.
- 3dates are set to first and last date of the month.
- 4 custom dates.

isSoldOnline
boolean

Determines whether the pricing option is available in FrontOffice to be sold.

isAutoAssigned
boolean

Determines whether the pricing option is automatically assigned to newly created accounts.

isIntroductoryOffer
boolean

Determines whether the pricing option is set as introductory offer visible under certain conditions to new clients.

object (PricingOptionPromotion)

An object holding promotion information when created.

discountedPrice
float

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the discounted amount for the pricing option.

guid
string <guid> = 36 characters

Globally unique identifier

Response samples

Content type
application/json
{
  • "name": "Guest card",
  • "internalName": "Guest card [previously 1x card]",
  • "description": "Great option for trying out!",
  • "privateNotes": "Internal note about guest card",
  • "preSaleInfo": "Remember, you can only buy one",
  • "sessionType": "limitedVisits",
  • "sessionValue": 2,
  • "price": 5500,
  • "taxRate": 1.23,
  • "expirationType": 0,
  • "isSoldOnline": true,
  • "isAutoAssigned": false,
  • "isIntroductoryOffer": false,
  • "promotion": {
    • "isPromotionEnabled": true,
    • "promotionType": "discount",
    • "discountAmount": 3000,
    • "discountType": 0,
    • "promotionStartsAt": "2025-01-00:00:00+02:00",
    • "promotionEndsAt": "2026-01-01T23:59:59+02:00"
    },
  • "discountedPrice": 2500,
  • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
}

Product

Get all products

This call returns all studio products.

query Parameters
sortField
string
Default: createdAt
Value: createdAt

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 1

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (Product)

Response samples

Content type
application/json
{}

Get product

This call returns the product.

path Parameters
product
required
string <guid>

The guid of the Product to return.

Responses

Response Schema: application/json
name
string

A descriptive name for the product.

description
string or null
Default: null

A public description for the product, available in FrontOffice.

privateNotes
string or null
Default: null

Private notes for the product.

sku
string or null
Default: null

SKU (Stock keeping unit) of the product.

price
decimal

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the amount for the product.

taxRate
decimal

A decimal number indicating tax rate (1.0 for 0%, 1.23 for 23%).

stock
integer

Determines number of items in the stock.

object (Picture)

A public picture representing the given product.

isPublic
boolean

Determines whether the product is publicly visible.

guid
string <guid> = 36 characters

Globally unique identifier

Response samples

Content type
application/json
{}

Report

Get client visits report

Returns all client visits for the specified date range in a report format.

query Parameters
startDate
required
string <Y-m-d> (startDate)
Default: Today's date

The requested start date for filtering the results.

endDate
required
string <Y-m-d> (endDate)
Default: Today's date

The requested end date for filtering the results.

Responses

Response Schema: application/json
Array
guid
string

Unique identifier of the client visit.

classServiceGuid
string

Unique identifier of the class service.

clientUuid
string

Unique identifier of the client.

clientPricingOptionExpiresAt
string <Y-m-d>

Expiration date of the pricing option.

clientPricingOptionGuid
string

Unique identifier of the client's pricing option.

clientPricingOptionName
string

Name of the client's pricing option.

clientPricingOptionRemain
integer

Remaining sessions on the pricing option.

locationGuid
string

Unique identifier of the location.

locationName
string

Name of the location.

memberGuid
string

Unique identifier(s) of the assigned member(s). Multiple GUIDs are separated by comma.

memberName
string

Name of the assigned teacher.

paymentStatus
string
Enum: paid unpaid free

Payment status of the visit.

privateNotes
string

Private notes attached to the visit.

qualifiedName
string

Name of the class or service.

serviceType
string

Type of the service module.

source
string
Enum: backoffice frontoffice api mobileApp widget kiosk

Booking source.

startsAt
string <Y-m-d>

The date when the visit starts.

status
integer
Enum: 0 (booked) 1 (present) 2 (absent) 3 (early cancel) 4 (self early cancel) 5 (late cancel) 6 (self late cancel) 7 (class cancelled) 8 (waiting list) 9 (unconfirmed)

Visit status.

userFirstName
string

Client's first name.

userGuid
string

Unique identifier of the client.

userLastName
string

Client's last name.

weekday
integer
Enum: 1 2 3 4 5 6 7

Day of the week (1 = Monday, 7 = Sunday).

Request samples

curl -X GET "https://app.fitssey.com/{uuid}/api/v4/public/report/enrollments/client-visit?startDate=2025-01-01&endDate=2025-01-31" \
-H "Authorization: Bearer {apiKey}"

Response samples

Content type
application/json
[
  • {
    • "guid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "classServiceGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "clientUuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "clientPricingOptionExpiresAt": "2025-06-30",
    • "clientPricingOptionGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "clientPricingOptionName": "Guest Card",
    • "clientPricingOptionRemain": 7,
    • "locationGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "locationName": "Weteringschans",
    • "memberGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "memberName": "Lidewij Severins",
    • "paymentStatus": "paid",
    • "privateNotes": "Prefers front row",
    • "qualifiedName": "Astanga Yoga",
    • "serviceType": "TYPE_CLASSROOM_SERVICE",
    • "source": "backoffice",
    • "startsAt": "2025-01-15",
    • "status": 1,
    • "userFirstName": "Maria",
    • "userGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "userLastName": "Dvorak",
    • "weekday": 1
    }
]

Get client appointments report

Returns all client appointments for the specified date range in a report format.

query Parameters
startDate
required
string <Y-m-d> (startDate)
Default: Today's date

The requested start date for filtering the results.

endDate
required
string <Y-m-d> (endDate)
Default: Today's date

The requested end date for filtering the results.

Responses

Response Schema: application/json
Array
guid
string

Unique identifier of the client appointment.

appointmentServiceGuid
string

Unique identifier of the appointment service.

clientPricingOptionExpiresAt
string <Y-m-d>

Expiration date of the pricing option.

clientPricingOptionGuid
string

Unique identifier of the client's pricing option.

clientPricingOptionName
string

Name of the client's pricing option.

clientPricingOptionRemain
integer

Remaining sessions on the pricing option.

clientUuid
string

Unique identifier of the client.

locationGuid
string

Unique identifier of the location.

locationName
string

Name of the location.

memberGuid
string

Unique identifier of the assigned member.

memberName
string

Name of the assigned teacher.

paymentStatus
string
Enum: paid unpaid free

Payment status of the appointment.

privateNotes
string

Private notes attached to the appointment.

qualifiedName
string

Name of the appointment service and event.

source
string
Enum: backoffice frontoffice api mobileApp widget kiosk

Booking source.

startsAt
string <Y-m-d>

The date when the appointment starts.

status
integer
Enum: 0 (booked) 1 (present) 2 (absent) 3 (early cancel) 4 (self early cancel) 5 (late cancel) 6 (self late cancel) 7 (class cancelled) 8 (waiting list) 9 (unconfirmed)

Appointment status.

userFirstName
string

Client's first name.

userGuid
string

Unique identifier of the client's user account.

userLastName
string

Client's last name.

weekday
integer
Enum: 1 2 3 4 5 6 7

Day of the week (1 = Monday, 7 = Sunday).

Request samples

curl -X GET "https://app.fitssey.com/{uuid}/api/v4/public/report/enrollments/client-appointment?startDate=2025-01-01&endDate=2025-01-31" \
-H "Authorization: Bearer {apiKey}"

Response samples

Content type
application/json
[
  • {
    • "guid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "appointmentServiceGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "clientPricingOptionExpiresAt": "2025-06-30",
    • "clientPricingOptionGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "clientPricingOptionName": "Guest Card",
    • "clientPricingOptionRemain": 7,
    • "clientUuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "locationGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "locationName": "Weteringschans",
    • "memberGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "memberName": "Lidewij Severins",
    • "paymentStatus": "paid",
    • "privateNotes": "Prefers front row",
    • "qualifiedName": "Massage | Deep Tissue",
    • "source": "backoffice",
    • "startsAt": "2025-01-15",
    • "status": 1,
    • "userFirstName": "Maria",
    • "userGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "userLastName": "Dvorak",
    • "weekday": 1
    }
]

Get client entries report

Returns all client entries for the specified date range in a report format.

query Parameters
startDate
required
string <Y-m-d> (startDate)
Default: Today's date

The requested start date for filtering the results.

endDate
required
string <Y-m-d> (endDate)
Default: Today's date

The requested end date for filtering the results.

Responses

Response Schema: application/json
Array
guid
string

Unique identifier of the client entry.

clientPricingOptionExpiresAt
string <Y-m-d>

Expiration date of the pricing option.

clientPricingOptionGuid
string

Unique identifier of the client's pricing option.

clientPricingOptionName
string

Name of the client's pricing option.

clientPricingOptionRemain
integer

Remaining sessions on the pricing option.

clientUuid
string

Unique identifier of the client.

entryServiceGuid
string

Unique identifier of the entry service.

locationGuid
string

Unique identifier of the location.

locationName
string

Name of the location.

paymentStatus
string
Enum: paid unpaid free

Payment status of the entry.

privateNotes
string

Private notes attached to the entry.

qualifiedName
string

Name of the entry service.

startsAt
string <Y-m-d>

The date when the entry starts.

userFirstName
string

Client's first name.

userGuid
string

Unique identifier of the client's user account.

userLastName
string

Client's last name.

weekday
integer
Enum: 1 2 3 4 5 6 7

Day of the week (1 = Monday, 7 = Sunday).

Request samples

curl -X GET "https://app.fitssey.com/{uuid}/api/v4/public/report/enrollments/client-entry?startDate=2025-01-01&endDate=2025-01-31" \
-H "Authorization: Bearer {apiKey}"

Response samples

Content type
application/json
[
  • {
    • "guid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "clientPricingOptionExpiresAt": "2025-06-30",
    • "clientPricingOptionGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "clientPricingOptionName": "Guest Card",
    • "clientPricingOptionRemain": 7,
    • "clientUuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "entryServiceGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "locationGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "locationName": "Weteringschans",
    • "paymentStatus": "paid",
    • "privateNotes": "Prefers front row",
    • "qualifiedName": "Open Gym",
    • "startsAt": "2025-01-15",
    • "userFirstName": "Maria",
    • "userGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "userLastName": "Dvorak",
    • "weekday": 1
    }
]

Get sales report

Returns sales/revenue data for the specified date range in a report format.

query Parameters
startDate
required
string <Y-m-d> (startDate)
Default: Today's date

The requested start date for filtering the results.

endDate
required
string <Y-m-d> (endDate)
Default: Today's date

The requested end date for filtering the results.

Responses

Response Schema: application/json
Array
clientAddressCity
string

Client's city.

clientAddressPostalCode
string

Client's postal code.

clientAddressStreet
string

Client's street address.

clientUuid
string

Unique identifier of the client.

guid
string

Unique identifier of the client order.

discountAmount
number

Discount amount.

discountRate
number

Discount rate applied.

invoiceAddressLine
string

Address line on the invoice.

invoiceCity
string

City on the invoice.

invoiceCompanyName
string

Company name on the invoice.

invoicePostalCode
string

Postal code on the invoice.

invoiceTaxIdentificationNumber
string

Tax identification number on the invoice.

itemName
string

Name of the sold item.

itemNetPrice
number

Subtotal excluding tax.

itemPrice
number

Item price including discount.

itemTaxAmount
number

Tax amount.

itemTaxRate
number

Tax rate applied.

itemTotalPrice
number

Subtotal including tax.

locationGuid
string

Unique identifier of the location.

locationName
string

Name of the location.

paymentMethod
string

Payment method used.

saleDate
string <date>

Date of the sale.

userFullName
string

Full name of the client.

userGuid
string

Unique identifier of the client.

Request samples

curl -X GET "https://app.fitssey.com/{uuid}/api/v4/public/report/finance/sales?startDate=2025-01-01&endDate=2025-01-31" \
-H "Authorization: Bearer {apiKey}"

Response samples

Content type
application/json
[
  • {
    • "clientAddressCity": "Amsterdam",
    • "clientAddressPostalCode": "1017 CV",
    • "clientAddressStreet": "Weteringschans 28",
    • "clientUuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "guid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "discountAmount": 500,
    • "discountRate": 5,
    • "invoiceAddressLine": "Keizersgracht 112",
    • "invoiceCity": "Amsterdam",
    • "invoiceCompanyName": "Van der Berg Fitness B.V.",
    • "invoicePostalCode": "1015 AA",
    • "invoiceTaxIdentificationNumber": "NL123456789B01",
    • "itemName": "Guest Card",
    • "itemNetPrice": 7983,
    • "itemPrice": 9500,
    • "itemTaxAmount": 1517,
    • "itemTaxRate": 19,
    • "itemTotalPrice": 9500,
    • "locationGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301",
    • "locationName": "Weteringschans",
    • "paymentMethod": "card",
    • "saleDate": "2025-01-15",
    • "userFullName": "Maria Dvorak",
    • "userGuid": "3F2504E0-4F89-11D3-9A0C-0305E82C3301"
    }
]

Retail

Checkout contracts

With this call you will be able to checkout contracts.

Request Body schema: application/json
object

Root property describing retail payload.

Responses

Response Schema: application/json
Array
privateNotes
string or null
Default: null

Private notes attached to the client contract, only visible to studio staff.

startsAt
string

Time at which the contract starts (expressed in ISO 8601 format).

endsAt
string or null
Default: null

Time at which the contract ends (expressed in ISO 8601 format).

terminatedAt
datetime or null
Default: null

Time at which the contract has been terminated (expressed in ISO 8601 format).

terminatedFrom
datetime

Time from which the contract will become terminated (expressed in ISO 8601 format).

terminationReason
string or null
Default: null

The reason why the contract has been terminated.

object (Contract)

The contract template from which this client contract was created.

Array of objects

A list of contract instalments.

nextPaymentAt
datetime

Time at which next payment is scheduled (expressed in ISO 8601 format).

nextChargeAmount
integer

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the next scheduled charge amount.

minInstalmentCountToAllowTermination
integer

A minimum number of instalments after which the contract can be terminated. No value means it can be terminated anytime.

qualifiedName
string

A representative name of the client's contract. Can be custom or inherited from Contract.

guid
string <guid> = 36 characters

Globally unique identifier

Request samples

Content type
application/json
{
  • "retail": {
    • "user": "F7CB86F0-0E5F-42A4-895E-480BD0B7B963",
    • "paidAmount": 1250,
    • "contracts": [
      • {
        • "guid": "37E96AEF-A1DA-4A41-9A56-A64F661A32BF",
        • "name": "My contract",
        • "startDate": "2020-03-11",
        • "privateNotes": "The payment was made via website"
        }
      ]
    }
}

Response samples

Content type
application/json
[
  • {
    • "privateNotes": "Client prefers monthly billing",
    • "startsAt": "2019-06-01T22:00:00+02:00",
    • "endsAt": "2020-05-31T21:59:59+02:00",
    • "terminatedAt": "2020-10-02T22:00:00+02:00",
    • "terminatedFrom": "2020-10-02T22:00:00+02:00",
    • "terminationReason": "Moving out to different country",
    • "contract": {
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      },
    • "instalments": [
      • {
        • "status": "scheduled",
        • "scheduledAt": "2019-05-12T22:00:00+02:00",
        • "endsAt": "2019-06-12T21:59:59+02:00",
        • "processedAt": "2019-06-12T22:00:00+02:00",
        • "chargeAt": "2019-06-01T22:00:00+02:00",
        • "suspendedAt": "2020-03-15T10:00:00+02:00",
        • "suspensionReason": "Holiday season",
        • "clientOrder": {
          • "orderStatus": 1,
          • "paymentMethod": 0,
          • "paidAmount": 1750,
          • "dueAmount": 0,
          • "discountRate": 0,
          • "invoiceDetails": null,
          • "privateNotes": null,
          • "voidReason": null,
          • "paymentDueAt": null,
          • "paidAt": "2025-05-12T12:45:47+02:00",
          • "voidedAt": null,
          • "clientOrderItems": [
            • {
              • "name": "Yoga Card x4",
              • "netPrice": 1428,
              • "totalPrice": 1750,
              • "taxAmount": 322,
              • "taxRate": 0.23,
              • "totalPriceBeforeDiscount": 2000,
              • "serviceType": "classroom",
              • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
              }
            ],
          • "totalPrice": 1750,
          • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
          },
        • "qualifiedName": "Guest Card",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        }
      ],
    • "nextPaymentAt": "2020-10-02T22:00:00+02:00",
    • "nextChargeAmount": "8000",
    • "minInstalmentCountToAllowTermination": "3",
    • "qualifiedName": "1 Year Contract",
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
    }
]

Checkout orders

With this call you will be able to checkout pricing options, payment options or products.

Request Body schema: application/json
object

Root property describing retail payload.

Responses

Response Schema: application/json
Array
orderStatus
integer
Enum: 0 (pending) 1 (paid) 2 (unpaid) 3 (cancelled) 4 (rejected) 5 (awaiting) 6 (void) 7 (scheduled) 8 (failed) 9 (authorizationAllowed) 10 (authorizationDisallowed) 11 (freeOfCharge) 12 (suspended)

The last order status that indicates whether the order has been paid or not.

paymentMethod
integer
Enum: 0 (online) 1 (bankTransfer) 2 (cash) 3 (other) 4 (gift) 5 (none) 6 (paymentCard) 11 (test) 12 (terminal) 13 (wallet)

The payment method that has been used to pay for this order.

paidAmount
decimal

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the total paid amount for the order.

dueAmount
decimal

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the total due amount for the order.

discountRate
decimal

A decimal number indicating discount rate (0.2 for 20%, 1.0 for 100%).

invoiceDetails
object or null
Default: null

Invoice details attached to the order, containing billing information such as company name, tax ID and address.

privateNotes
string or null
Default: null

Private notes visible only to studio members, not exposed to the client.

voidReason
string or null
Default: null

The reason why the order has been voided.

paymentDueAt
string or null
Default: null

Time by which the order should be paid.

paidAt
string or null
Default: null

Time at which the order has been paid.

voidedAt
string or null
Default: null

Time at which the order has been voided.

Array of objects

Item objects purchased along with the order.

totalPrice
integer

A positive integer in the smallest currency unit (100 cents for 1 EUR) representing the total price of the order.

guid
string <guid> = 36 characters

Globally unique identifier

Request samples

Content type
application/json
{
  • "retail": {
    • "user": "F7CB86F0-0E5F-42A4-895E-480BD0B7B963",
    • "paidAmount": 3000,
    • "orders": [
      • {
        • "qualifiedName": 1,
        • "orderStatus": 1,
        • "discount": {
          • "type": 1,
          • "amount": 25
          },
        • "privateNotes": "The payment was made via website",
        • "pricingOptions": [
          • {
            • "guid": "FFA73DC2-2A6F-442A-AB8E-6444BAF0188D",
            • "name": "My pass",
            • "price": 1000
            }
          ],
        • "paymentOptions": [
          • {
            • "guid": "0F5A4FA5-B394-48A4-B20F-6974EED8C076",
            • "name": "My payment",
            • "price": 1000
            }
          ],
        • "products": [
          • {
            • "guid": "AB370858-C5B6-4887-A3CF-45CED74E4667",
            • "name": "My product",
            • "price": 1000
            }
          ]
        }
      ]
    }
}

Response samples

Content type
application/json
[
  • {
    • "orderStatus": 1,
    • "paymentMethod": 0,
    • "paidAmount": 1750,
    • "dueAmount": 0,
    • "discountRate": 0,
    • "invoiceDetails": null,
    • "privateNotes": null,
    • "voidReason": null,
    • "paymentDueAt": null,
    • "paidAt": "2025-05-12T12:45:47+02:00",
    • "voidedAt": null,
    • "clientOrderItems": [
      • {
        • "name": "Yoga Card x4",
        • "netPrice": 1428,
        • "totalPrice": 1750,
        • "taxAmount": 322,
        • "taxRate": 0.23,
        • "totalPriceBeforeDiscount": 2000,
        • "serviceType": "classroom",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        }
      ],
    • "totalPrice": 1750,
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
    }
]

Schedule

Get studio schedule

This call returns all ScheduleEvents within the given period grouped by date.

query Parameters
startDate
string <Y-m-d> (startDate)
Default: Today's date

The requested start date for filtering the results.

endDate
string <Y-m-d> (endDate)
Default: Today's date

The requested end date for filtering the results.

object
Default: null

The object containing filters to base the search on.

Responses

Response Schema: application/json
Array of objects

Schedule data grouped by dates.

Request samples

curl -X GET "https://app.fitssey.com/<YOUR_UUID>/api/v4/public/schedule?startDate=2026-03-10&endDate=2026-03-17&filters[members][]=3561A9F5-4B83-4F8D-B857-01A2C818C784" \
-H "Accept: application/json" \
-H "Authorization: Bearer <YOUR_API_KEY>"

Response samples

Content type
application/json
{
  • "schedule": [
    • {
      • "date": "2025-11-24",
      • "scheduleEvents": [
        • {
          • "referenceId": "55995f06ed386dc3d3bd236eaeb95b8c109540266bf7e1a6c634ae1b56b5bfe6",
          • "totalCapacity": 22,
          • "onlineCapacity": 20,
          • "waitingListCapacity": 10,
          • "color": "rgb(69, 180, 231)",
          • "liveStreamUrl": null,
          • "liveStreamPassword": null,
          • "isFree": false,
          • "isLiveStream": false,
          • "isCancelled": false,
          • "isHidden": false,
          • "isBookableOnline": true,
          • "startsAt": "2019-09-04T10:00:00+02:00",
          • "endsAt": "2019-09-04T11:00:00+02:00",
          • "room": {
            • "qualifiedName": "Circle place - Room A",
            • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
            },
          • "remainCapacity": 5,
          • "remainOnlineCapacity": 3,
          • "remainFrontOfficeCapacity": 3,
          • "remainWaitingListCapacity": 2,
          • "remainCapacityForMale": 2,
          • "remainCapacityForFemale": 3,
          • "bookedSpots": 17,
          • "bookedSpotsForMale": 8,
          • "bookedSpotsForFemale": 9,
          • "bookedWaitingListSpots": 4,
          • "bookedOnlineSpots": 12,
          • "maleCapacity": 10,
          • "femaleCapacity": 12,
          • "isAvailableForBookingAhead": true,
          • "isAvailableBeforeStartTime": true,
          • "qualifiedName": "Astanga Led",
          • "serviceType": "TYPE_CLASSROOM_SERVICE",
          • "experienceLevel": {
            • "name": "Beginner level",
            • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
            },
          • "members": [
            • {
              • "user": {
                • "fullName": "Monica Dvorak",
                • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
                }
              }
            ]
          }
        ]
      }
    ]
}

ScheduleEvent

Get schedule event

This call returns the schedule event.

path Parameters
scheduleEvent
required
string

The referenceId of the ScheduleEvent.

Responses

Response Schema: application/json
referenceId
string

The unique ID of the event.

totalCapacity
integer

The total number of available spots for the given event.

onlineCapacity
integer

The total number of spots available for booking online (via FrontOffice, mobile app) for the given event.

waitingListCapacity
integer or null
Default: null

The total number of spots available for joining waiting list for the given event.

color
string or null
Default: null

Representing color of the given event displayed on the schedule.

liveStreamUrl
string or null
Default: null

The livestream URL to join the event.

liveStreamPassword
string or null
Default: null

The password of the livestream (null when the livestream is not protected by password).

privateNotes
string or null
Default: null
isFree
boolean
Default: false

Determines whether the event is free of charge (no ClientPricingOption required).

isLiveStream
boolean
Default: false

Determines whether the event is a livestream.

isCancelled
boolean
Default: false

Determines whether the event is cancelled or not.

isHidden
boolean
Default: false

Determines whether the event is hidden on the schedule or not.

isBookableOnline
boolean
Default: true

Determines whether the event is bookable online (e.g. FrontOffice, mobile app).

startsAt
string <Y-m-dTH:i:s>

The time at which the event starts.

endsAt
string <Y-m-dTH:i:s>

The time at which the event ends.

object (LocationRoom)

The room in which the event takes place.

object (ScheduleMeta)

Attached ScheduleMeta object to the given event.

remainCapacity
integer

The number of remaining spots across all booking channels.

remainOnlineCapacity
integer

The number of remaining spots bookable online via FrontOffice or mobile app.

remainFrontOfficeCapacity
integer

The effective remaining capacity for FrontOffice bookings, capped by both total and online remaining capacity.

remainWaitingListCapacity
integer

The number of remaining spots on the waiting list.

remainCapacityForMale
integer or null

The remaining capacity available for male clients. Null when gender-restricted capacity is not enabled.

remainCapacityForFemale
integer or null

The remaining capacity available for female clients. Null when gender-restricted capacity is not enabled.

bookedSpots
integer

The total number of spots currently booked or attended (status booked or present).

bookedSpotsForMale
integer or null

The number of booked spots occupied by male clients. Null when gender-restricted capacity is not enabled.

bookedSpotsForFemale
integer or null

The number of booked spots occupied by female clients. Null when gender-restricted capacity is not enabled.

bookedWaitingListSpots
integer

The number of spots currently occupied on the waiting list.

bookedOnlineSpots
integer

The number of spots booked online via FrontOffice or mobile app (status booked or present).

maleCapacity
integer or null

The maximum number of spots reserved for male clients. Null when gender-restricted capacity is not enabled.

femaleCapacity
integer or null

The maximum number of spots reserved for female clients. Null when gender-restricted capacity is not enabled.

isAvailableForBookingAhead
boolean

Determines whether the event falls within the service's booking-ahead window and is open for booking.

isAvailableBeforeStartTime
boolean

Determines whether the event is still within the booking window before the booking-close cutoff.

qualifiedName
string

A qualified name for the event.

serviceType
string
Enum: TYPE_CLASSROOM_SERVICE TYPE_COURSE_SERVICE TYPE_APPOINTMENT_SERVICE TYPE_VIDEO_SERVICE TYPE_ENTRY_SERVICE

The service type of the event.

object (StudioExperienceLevel)

The experience level of the event.

Array of objects

The teachers assigned to the given event.

createdAt
string

Time at which the object was created (expressed in ISO 8601 format)

modifiedAt
string

Time at which the object was modified (expressed in ISO 8601 format). If never modified it will equal date of creation

Response samples

Content type
application/json
{
  • "referenceId": "55995f06ed386dc3d3bd236eaeb95b8c109540266bf7e1a6c634ae1b56b5bfe6",
  • "totalCapacity": 22,
  • "onlineCapacity": 20,
  • "waitingListCapacity": 10,
  • "color": "rgb(69, 180, 231)",
  • "liveStreamUrl": null,
  • "liveStreamPassword": null,
  • "privateNotes": "Some private notes about this event.",
  • "isFree": false,
  • "isLiveStream": false,
  • "isCancelled": false,
  • "isHidden": false,
  • "isBookableOnline": true,
  • "startsAt": "2019-09-04T10:00:00+02:00",
  • "endsAt": "2019-09-04T11:00:00+02:00",
  • "room": {
    • "qualifiedName": "Circle place - Room A",
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
    • "createdAt": "2019-05-12T12:45:47+02:00",
    • "modifiedAt": "2023-09-12T19:18:23+02:00"
    },
  • "scheduleMeta": {
    • "classService": {
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
      • "createdAt": "2019-05-12T12:45:47+02:00",
      • "modifiedAt": "2023-09-12T19:18:23+02:00"
      },
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
    • "createdAt": "2019-05-12T12:45:47+02:00",
    • "modifiedAt": "2023-09-12T19:18:23+02:00"
    },
  • "remainCapacity": 5,
  • "remainOnlineCapacity": 3,
  • "remainFrontOfficeCapacity": 3,
  • "remainWaitingListCapacity": 2,
  • "remainCapacityForMale": 2,
  • "remainCapacityForFemale": 3,
  • "bookedSpots": 17,
  • "bookedSpotsForMale": 8,
  • "bookedSpotsForFemale": 9,
  • "bookedWaitingListSpots": 4,
  • "bookedOnlineSpots": 12,
  • "maleCapacity": 10,
  • "femaleCapacity": 12,
  • "isAvailableForBookingAhead": true,
  • "isAvailableBeforeStartTime": true,
  • "qualifiedName": "Astanga Led",
  • "serviceType": "TYPE_CLASSROOM_SERVICE",
  • "experienceLevel": {
    • "name": "Beginner level",
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
    • "createdAt": "2019-05-12T12:45:47+02:00",
    • "modifiedAt": "2023-09-12T19:18:23+02:00"
    },
  • "members": [
    • {
      • "user": {
        • "fullName": "Monica Dvorak",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
        • "createdAt": "2019-05-12T12:45:47+02:00",
        • "modifiedAt": "2023-09-12T19:18:23+02:00"
        }
      }
    ],
  • "createdAt": "2019-05-12T12:45:47+02:00",
  • "modifiedAt": "2023-09-12T19:18:23+02:00"
}

Get client visits of schedule event

This call returns all ClientVisits assigned to the given ScheduleEvent.

path Parameters
scheduleEvent
required
string

The referenceId of the ScheduleEvent.

query Parameters
sortField
string
Default: createdAt
Value: (all properties)

Determines by which field the collection should be sorted on.

sortDir
string
Default: asc
Enum: asc desc

Determines the sort order for the collection.

page
number
Default: 1

Determines the current page number of the collection.

count
number
Default: 10

Determines how many items should be returned in the collection.

Responses

Response Schema: application/json
pages
integer

The number of pages for the given collection.

totalCount
integer

The total number of items returned in the given collection.

object

An object describing the current page.

Array of objects (ClientVisit)

Response samples

Content type
application/json
{
  • "collection": [
    • {
      • "status": 0,
      • "weight": 1,
      • "members": [
        • {
          • "user": {
            • "fullName": "Monica Dvorak",
            • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
            }
          }
        ],
      • "room": {
        • "qualifiedName": "Circle place - Room A",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        },
      • "visitStartsAt": "2024-04-02T11:00:00+01:00",
      • "visitEndsAt": "2024-04-02T12:00:00+01:00",
      • "awaitingUntil": "2024-04-02T11:00:00+01:00",
      • "privateNotes": "Client requested front row spot.",
      • "isFree": false,
      • "client": {
        • "uuid": "1000072",
        • "user": {
          • "fullName": "Monica Dvorak",
          • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
          }
        },
      • "clientPricingOption": {
        • "remain": 4,
        • "sessionType": "limitedVisits",
        • "expiresAt": "2023-08-31T21:59:59+02:00",
        • "activatedAt": "2023-08-01T22:00:00+02:00",
        • "pricingOption": {
          • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
          },
        • "isUnpaid": false,
        • "isShared": false,
        • "qualifiedName": "Yoga pass 8x",
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        },
      • "source2": "api",
      • "experienceLevel": {
        • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
        },
      • "isUnpaid": false,
      • "isOnWaitingList": false,
      • "bookedAt": "2024-04-01T09:30:00+01:00",
      • "qualifiedName": "Yoga class",
      • "enrollmentType": "clientVisit",
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709"
      }
    ]
}

User

Get user

This call returns the user.

path Parameters
user
required
string <guid>

The guid of the User to return.

Responses

Response Schema: application/json
uuid
string or null
Default: null

Client's public and unique ID.

clientFields
object or null
Default: null

An object describing client's custom fields.

object or null (agreements)
Default: null
birthdateAt
string
Default: null

The client's birthdate.

lastActiveAt
string or null <Y-m-d H:i:s>
Default: null

The last time at which client made one of the following actions: booking, purchase or payment.

object (User)
object (Address)

The object describing client's postal address.

object (Phone)

The object describing client's available phone numbers.

object (Picture)

An uploaded image displayed in client's profile (FrontOffice and BackOffice).

Array of objects

A collection of tags assigned to the client.

Response samples

Content type
application/json
{
  • "uuid": "1000072",
  • "clientFields": null,
  • "agreements": null,
  • "birthdateAt": "1980-01-19T23:00:00+01:00",
  • "lastActiveAt": "2019-09-03T08:06:23+02:00",
  • "user": {
    • "emailAddress": "[email protected]",
    • "contactEmailAddress": "[email protected]",
    • "firstName": "Maria",
    • "lastName": "Dvorak",
    • "sex": 1,
    • "suspensionType": 1,
    • "isSuspended": false,
    • "suspendedAt": "2019-09-10T15:31:47+02:00",
    • "suspensionExpiresAt": "2019-09-17T15:31:47+02:00",
    • "suspensionReason": "Suspended due to many cancellations",
    • "isLoginEnabled": true,
    • "activatedAt": "2019-09-01T12:02:35+02:00",
    • "lastSeenAt": "2019-09-03T09:54:12+02:00",
    • "member": {},
    • "client": { },
    • "fullName": "Monica Dvorak",
    • "hasAndroidApp": false,
    • "hasIosApp": false,
    • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
    • "createdAt": "2019-05-12T12:45:47+02:00",
    • "modifiedAt": "2023-09-12T19:18:23+02:00"
    },
  • "address": {
    • "street": "Sunny street 77a",
    • "postalCode": "1234AB",
    • "city": "Amsterdam",
    • "countryCode": "NL",
    • "createdAt": "2019-05-12T12:45:47+02:00",
    • "modifiedAt": "2023-09-12T19:18:23+02:00"
    },
  • "phone": {
    • "primaryPhone": "+48111222333",
    • "createdAt": "2019-05-12T12:45:47+02:00",
    • "modifiedAt": "2023-09-12T19:18:23+02:00"
    },
  • "tags": [
    • {
      • "name": "VIP",
      • "color": "#FF5733",
      • "guid": "364F59AB-5B43-4D02-989E-AE2811422709",
      • "createdAt": "2019-05-12T12:45:47+02:00",
      • "modifiedAt": "2023-09-12T19:18:23+02:00"
      }
    ]
}