user-service (1.0.1)

Download OpenAPI specification:Download

The service provides capabilities to interact with the user’s stored data inside of BEAUTY_OS Core in MongoDB. This is used throughout the website to retrieve information about the user and interact with the user’s settings.

Admin Auth

Login

Authenticates admin user with username and password.

Request Body schema: application/json

The object containing admin authentication credentials.

username
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "roles": [
    ],
  • "status": "ACTIVE",
  • "accessToken": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "email": "string",
  • "username": "string",
  • "id": "string"
}

Logout

Logs out the current admin by invalidating their JWT token.

Authorizations:
jwt-admin

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Admin

GetProfile

Get admin profile information

Authorizations:
jwt-admin

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "email": "string",
  • "roles": [
    ],
  • "userType": "ADMIN"
}

GetAdminOnlyData

Admin-only endpoint that requires ADMIN role

Authorizations:
jwt-admin

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "adminUser": {
    }
}

GetManagerData

Manager or Admin endpoint

Authorizations:
jwt-admin

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "adminUser": {
    }
}

Upsert

Creates or updates update configuration for a given device type. Admin decides enabled/time/updateMode.

Authorizations:
jwt-admin
Request Body schema: application/json
deviceType
required
string (DeviceType)
Enum: "android" "ios"
enabled
boolean
time
required
string
updateMode
required
number
Enum: 0 1 2

Responses

Request samples

Content type
application/json
{
  • "deviceType": "android",
  • "enabled": true,
  • "time": "string",
  • "updateMode": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "deviceType": "android",
  • "enabled": true,
  • "time": "2019-08-24T14:15:22Z",
  • "updateMode": 0,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Auth

Login

Authenticates user to Okta account with username and password that user signed up to Okta.

Request Body schema: application/json

The object containing authentication credentials.

username
required
string

Username of the user should be email or phone number

Responses

Request samples

Content type
application/json
{
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Register

Registers a new user with the provided details and sends OTP.

Request Body schema: application/json

The object containing registration details.

username
required
string

Username of the user (email or phone number)

firstName
required
string

First name of the user

lastName
required
string

Last name of the user

roleOperations
required
Array of strings (RoleOperation)
Items Enum: "ARTIST" "SALON_OWNER"

Role operations (ARTIST or SALON_OWNER)

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "roleOperations": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string"
}

LoginWithFirebase

Authenticates user with Firebase ID token (Google/Apple login).

Request Body schema: application/json

The object containing Firebase ID token, userType, and optional salonId.

salonId
string
userType
required
string (UserType)
Enum: "USER" "CLIENT"
idToken
required
string

Responses

Request samples

Content type
application/json
{
  • "salonId": "string",
  • "userType": "USER",
  • "idToken": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "phone": "string",
  • "email": "string",
  • "roles": [
    ],
  • "status": "CREATED",
  • "accessToken": "string"
}

VerifyLoginOTP

Verifies login OTP.

Request Body schema: application/json

The object containing OTP.

id
required
string

User or client id

otp
required
string

OTP

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "otp": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "phone": "string",
  • "email": "string",
  • "roles": [
    ],
  • "status": "CREATED",
  • "accessToken": "string"
}

Logout

Logs out the current user by invalidating their JWT token.

Authorizations:
jwt

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Auth(Internal)

ActivateUser

Activates user in the Okta.

path Parameters
userId
required
string

The ID of user that should be activated.

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "message": "string",
  • "code": "string",
  • "status": 0.1,
  • "details": { }
}

DeactivateUser

Deactivates user in the Okta.

path Parameters
userId
required
string

The ID of user that should be deactivated.

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "message": "string",
  • "code": "string",
  • "status": 0.1,
  • "details": { }
}

Mobile

GetCurrentStatus

Returns update status for a given device type. Always returns { status: 0 | 1 | 2 }

query Parameters
deviceType
required
string (DeviceType)
Enum: "android" "ios"

Responses

Response samples

Content type
application/json
{
  • "status": 0,
  • "enabled": true
}

User

CreateUser

Creates a new user.

Request Body schema: application/json

Represents the user data that is being created.

firstName
required
string
lastName
required
string
phone
required
string
salonId
required
string
email
string
socialMedia
string
profileImage
string
gender
string (Gender)
Enum: "Male" "Female" "Non-binary" "Transgender" "Intersex" "opt-out"

Possible values of Gender

pronouns
string
birthday
string <date-time>
object (CreateAddressRequest)
roles
Array of strings (UserRole)
Items Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "phone": "string",
  • "salonId": "string",
  • "email": "string",
  • "socialMedia": "string",
  • "profileImage": "string",
  • "gender": "Male",
  • "pronouns": "string",
  • "birthday": "2019-08-24T14:15:22Z",
  • "address": {
    },
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

GetUsers

Retrieves users by given filter.

Authorizations:
jwt
query Parameters
salonId
required
string
skip
number <double>
Default: 0
top
number <double>
Default: 10
phone
string
email
string
status
string (UserStatus)
Enum: "CREATED" "ONBOARDING" "ONBOARDING_COMPLETED" "ACTIVATED" "DEACTIVATED" "SUSPENDED" "DELETED"
userSalonStatus
string (UserSalonStatus)
Enum: "active" "pending" "inactive" "declined" "deleted"
roles
Array of strings (UserRole)
Items Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"
gender
string (Gender)
Enum: "Male" "Female" "Non-binary" "Transgender" "Intersex" "opt-out"

Possible values of Gender

search
string
inactiveArtist
boolean
templateId
string

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "records": [
    ]
}

GetUserProfile

Retrieves the current user's profile.

Authorizations:
jwt
header Parameters
user-id
required
string

The ID of the current user.

Responses

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

GetUserById

Retrieves user's data by given ID.

Authorizations:
jwt
path Parameters
userId
required
string
header Parameters
user-id
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

UpdateUser

Updates a user's data by given ID.

Authorizations:
jwt
path Parameters
userId
required
string

The ID of the user to update.

Request Body schema: application/json

The updated user data.

firstName
required
string
lastName
required
string
phone
required
string
email
string
profileImage
string
gender
string (Gender)
Enum: "Male" "Female" "Non-binary" "Transgender" "Intersex" "opt-out"

Possible values of Gender

socialMedia
string
pronouns
string
birthday
string <date-time>
object (CreateAddressRequest)
roles
Array of strings (UserRole)
Items Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "gender": "Male",
  • "socialMedia": "string",
  • "pronouns": "string",
  • "birthday": "2019-08-24T14:15:22Z",
  • "address": {
    },
  • "roles": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

DeleteUserById

Deletes a user by given ID.

Authorizations:
jwt
path Parameters
userId
required
string

The ID of the user to delete.

Responses

Response samples

Content type
application/json
"string"

AcceptInvitation

Accepts a user invitation to a salon.

Authorizations:
jwt
header Parameters
user-id
required
string
Request Body schema: application/json
salonId
required
string

Responses

Request samples

Content type
application/json
{
  • "salonId": "string"
}

Response samples

Content type
application/json
"string"

DeclineInvitation

Declines a user invitation to a salon.

Authorizations:
jwt
header Parameters
user-id
required
string
Request Body schema: application/json
salonId
required
string

Responses

Request samples

Content type
application/json
{
  • "salonId": "string"
}

Response samples

Content type
application/json
"string"

UpdateStylistCommission

Update stylist comission

Authorizations:
jwt
path Parameters
userId
required
string

The ID of the user to update the stylist comission.

Request Body schema: application/json

The updated stylist comission data.

stylistCommission
required
number <double>
stylistTipCommission
required
number <double>
salonId
required
string

Responses

Request samples

Content type
application/json
{
  • "stylistCommission": 0.1,
  • "stylistTipCommission": 0.1,
  • "salonId": "string"
}

Response samples

Content type
application/json
"string"

AddRoleToUser

Adds a role to a user for a specific salon

Authorizations:
jwt
path Parameters
userId
required
string

The ID of the user to add the role to.

Request Body schema: application/json

The request body containing salon ID and role to add.

salonId
required
string
role
required
string (UserRole)
Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"

Current role of the user

Responses

Request samples

Content type
application/json
{
  • "salonId": "string",
  • "role": "PROFESSIONAL"
}

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

RemoveRoleFromUser

Removes a role from a user for a specific salon

Authorizations:
jwt
path Parameters
userId
required
string

The ID of the user to remove the role from.

Request Body schema: application/json

The request body containing salon ID and role to remove.

salonId
required
string
role
required
string (UserRole)
Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"

Current role of the user

Responses

Request samples

Content type
application/json
{
  • "salonId": "string",
  • "role": "PROFESSIONAL"
}

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

GetSalonContracts

Retrive salon contracts by user id

Authorizations:
jwt
path Parameters
userId
required
string

The ID of the user to retrive the salon contracts.

query Parameters
salonId
string

The ID of the salon to retrive the salon contracts.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GenerateProfileImageUploadUrl

Generates a pre-signed URL for uploading a user's profile image to S3.

Authorizations:
jwt
path Parameters
userId
required
string

The ID of the user

Request Body schema: application/json

The upload request containing filename and content type

filename
required
string
contentType
required
string

Responses

Request samples

Content type
application/json
{
  • "filename": "string",
  • "contentType": "string"
}

Response samples

Content type
application/json
{
  • "uploadUrl": "string",
  • "imageUrl": "string"
}

UpdateUserProfileImage

Updates only the profile image URL for a user.

Authorizations:
jwt
path Parameters
userId
required
string

The ID of the user

Request Body schema: application/json

Object containing the profileImage URL

profileImage
required
string

Responses

Request samples

Content type
application/json
{
  • "profileImage": "string"
}

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

User(Internal)

GetUserDataByEmail

Retrieves user's data by given email.

path Parameters
email
required
string

Represents the given email for an account holder.

Responses

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

GetUserDataByUsername

Retrieves user's data by given username.

path Parameters
username
required
string

Represents the given username for an account holder.

Responses

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

GetUserDataBySingleSalonId

Retrieves user's data by given single salon ID.

path Parameters
stylistSingleSalonId
required
string

Represents the given single salon ID for an account holder.

Responses

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

GetUsersBySingleSalonIds

Retrieves users' data by given array of single salon IDs.

query Parameters
stylistSingleSalonIds
required
Array of strings

Represents the array of single salon IDs as query parameters.

Responses

Response samples

Content type
application/json
{
  • "users": [
    ]
}

GetUserDataById

Retrieves user's data by given ID.

path Parameters
userId
required
string

Represents the given ID for an account holder.

Responses

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

GetStylistSingleSalonIdsBySalonId

Retrieves stylist single salon ids by salon id

path Parameters
salonId
required
string

Represents the given salon ID for an account holder.

query Parameters
inactiveArtist
boolean
Default: false

Responses

Response samples

Content type
application/json
[
  • "string"
]

AddSalonToUser

Add a salon to a user.

path Parameters
userId
required
string

The ID of the user.

Request Body schema: application/json
salonId
required
string
isSingle
required
boolean
name
required
string
roles
required
Array of strings (UserRole)
Items Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"
status
required
string (UserSalonStatus)
Enum: "active" "pending" "inactive" "declined" "deleted"

Responses

Request samples

Content type
application/json
{
  • "salonId": "string",
  • "isSingle": true,
  • "name": "string",
  • "roles": [
    ],
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

InviteUserToSalon

Invite a user to a salon.

Request Body schema: application/json

The request body.

salonId
required
string
isSingle
required
boolean
name
required
string
roles
required
Array of strings (UserRole)
Items Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"
status
required
string (UserSalonStatus)
Enum: "active" "pending" "inactive" "declined" "deleted"
username
required
string

Responses

Request samples

Content type
application/json
{
  • "salonId": "string",
  • "isSingle": true,
  • "name": "string",
  • "roles": [
    ],
  • "status": "active",
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

UpdateUserSalonByUserIdAndSalonId

Update user salon by userId and salonId

path Parameters
userId
required
string

The ID of the user.

salonId
required
string

The ID of the salon.

Request Body schema: application/json
name
string
roles
Array of strings (UserRole)
Items Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"
status
string (UserSalonStatus)
Enum: "active" "pending" "inactive" "declined" "deleted"
stylistCommission
number <double>
stylistTipCommission
number <double>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "roles": [
    ],
  • "status": "active",
  • "stylistCommission": 0.1,
  • "stylistTipCommission": 0.1
}

Response samples

Content type
application/json
{
  • "status": "CREATED",
  • "roleOperations": [
    ],
  • "roles": [
    ],
  • "salons": [
    ],
  • "address": {
    },
  • "birthday": "2019-08-24T14:15:22Z",
  • "rating": 0.1,
  • "services": 0.1,
  • "level": 0.1,
  • "socialMedia": "string",
  • "pronouns": "string",
  • "gender": "Male",
  • "isPushNotificationEnabled": true,
  • "pushNotificationId": "string",
  • "phone": "string",
  • "email": "string",
  • "profileImage": "string",
  • "username": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "id": "string"
}

UpdateAllUsersSalonBySalonId

Update all users salon user by salonId

path Parameters
salonId
required
string

The ID of the salon.

Request Body schema: application/json

The request body.

name
string
roles
Array of strings (UserRole)
Items Enum: "PROFESSIONAL" "OWNER" "DESK" "SUPERADMIN"
status
string (UserSalonStatus)
Enum: "active" "pending" "inactive" "declined" "deleted"
stylistCommission
number <double>
stylistTipCommission
number <double>

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "roles": [
    ],
  • "status": "active",
  • "stylistCommission": 0.1,
  • "stylistTipCommission": 0.1
}

Response samples

Content type
application/json
"string"

IsStylistWorkingInThisSalon

Is stylist working in this salon

path Parameters
stylistSingleSalonId
required
string
salonId
required
string

The ID of the salon.

Responses

Response samples

Content type
application/json
true

GetSalonOwnersBySalonId

Returns all users who are owners of a specific salon.

path Parameters
salonId
required
string

The ID of the salon.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Public

GetUsersBySalonIdAndServiceId

Retrieves availability information for a salon or stylist across a date range.

Case 1: Pass salonId to get all stylists for that salon with their availability Case 2: Pass stylistSingleSalonId to get all salons where that stylist works with their availability

Response Structure (same for both cases): { salons: [{ salonId: string, salonName: string, workingHours: WorkingHour[], // Salon's default hours timezone: string, stylists: [{ user: UserInfo, workingHours: WorkingHour[], // Stylist's hours at this salon availableSlots: [{ date: "2025-08-29", slots: [{ time: "9:00 AM", duration: 60, ... }] }] }] }] }

query Parameters
templateIds
required
Array of strings

Array of template service IDs

startDate
string

Start date of the range in YYYY-MM-DD format (defaults to today)

endDate
string

End date of the range in YYYY-MM-DD format (defaults to startDate + 7 days)

salonId
string

The ID of the salon (either salonId or stylistSingleSalonId is required)

stylistSingleSalonId
string

The stylist's single salon ID (either salonId or stylistSingleSalonId is required)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GetUserByStylistSingleSalonId

Get user information by stylistSingleSalonId

Retrieves basic user information (userId, firstName, lastName, email, phoneNumber) for a stylist identified by their single salon ID.

path Parameters
stylistSingleSalonId
required
string

The stylist's single salon ID

Responses

Response samples

Content type
application/json
{
  • "phoneNumber": "string",
  • "email": "string",
  • "socialMedia": "string",
  • "lastName": "string",
  • "firstName": "string",
  • "userId": "string"
}