API Reference

Staff

Read and manage the team members customers can book with. Staff carry their own schedules, breaks, and absences, and can be assigned to specific services with optional price or duration overrides.

Scope and plan

Reads require staff:read, mutations require staff:write. API keys are available on the PRO and ENTERPRISE plans.

List staff

GET/businesses/{businessId}/staff
staff:readPRO plan

Path parameters

NameTypeRequiredDescription
businessIduuidRequiredYour business id.
curl "https://api.salonify.eu/api/v1/businesses/b_8f3a/staff" \
  -H "X-API-Key: sk_live_..."
[
  {
    "id": "st_4d11",
    "firstName": "Marie",
    "lastName": "Dupont",
    "title": "Senior Stylist",
    "email": "[email protected]",
    "phone": "+352 621 123 456",
    "avatar": "https://cdn.salonify.eu/staff/4d11.jpg",
    "color": "#7C3AED",
    "isOwner": false,
    "isActive": true,
    "acceptsBookings": true,
    "order": 0
  }
]

Retrieve a staff member

GET/businesses/{businessId}/staff/{staffId}
staff:readPRO plan

Path parameters

NameTypeRequiredDescription
businessIduuidRequiredYour business id.
staffIduuidRequiredThe staff member id.
curl "https://api.salonify.eu/api/v1/businesses/b_8f3a/staff/st_4d11" \
  -H "X-API-Key: sk_live_..."
{
  "id": "st_4d11",
  "firstName": "Marie",
  "lastName": "Dupont",
  "title": "Senior Stylist",
  "isActive": true,
  "acceptsBookings": true
}

Create a staff member

POST/businesses/{businessId}/staff
staff:writePRO plan

Body parameters

NameTypeRequiredDescription
firstNamestringRequiredFirst name (max 100).
lastNamestringRequiredLast name (max 100).
titlestringOptionalJob title, e.g. Senior Stylist.
emailstringOptionalContact email.
phonestringOptionalContact phone.
biostringOptionalPublic biography (max 2000).
avatarurlOptionalAvatar image URL.
colorstringOptionalCalendar color as a hex value, e.g. #7C3AED.
isActivebooleanOptionalDefaults to true.
acceptsBookingsbooleanOptionalDefaults to true.
orderintegerOptionalDisplay order (min 0).
curl -X POST "https://api.salonify.eu/api/v1/businesses/b_8f3a/staff" \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "Marie",
    "lastName": "Dupont",
    "title": "Senior Stylist",
    "color": "#7C3AED"
  }'
{
  "id": "st_5e22",
  "firstName": "Marie",
  "lastName": "Dupont",
  "title": "Senior Stylist",
  "color": "#7C3AED",
  "isActive": true,
  "acceptsBookings": true
}

Update a staff member

PATCH/businesses/{businessId}/staff/{staffId}
staff:writePRO plan

All create fields are accepted and optional.

curl -X PATCH "https://api.salonify.eu/api/v1/businesses/b_8f3a/staff/st_5e22" \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "acceptsBookings": false }'
{ "id": "st_5e22", "firstName": "Marie", "acceptsBookings": false }

Assign services to a staff member

PUT/businesses/{businessId}/staff/{staffId}/services
staff:writePRO plan

Body parameters

NameTypeRequiredDescription
servicesobject[]RequiredArray of { serviceId, priceOverride?, durationOverride? }.
curl -X PUT "https://api.salonify.eu/api/v1/businesses/b_8f3a/staff/st_5e22/services" \
  -H "X-API-Key: sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "services": [{ "serviceId": "sv_77", "priceOverride": 55 }] }'
{ "staffId": "st_5e22", "assigned": 1 }

Delete a staff member

DELETE/businesses/{businessId}/staff/{staffId}
staff:writePRO plan

Soft-deletes the staff member. Returns 204 No Content.

curl -X DELETE "https://api.salonify.eu/api/v1/businesses/b_8f3a/staff/st_5e22" \
  -H "X-API-Key: sk_live_..."

Schedules, breaks, and absences

Per-staff working hours, breaks and absences live under /businesses/{businessId}/staff/{staffId}/schedules, /breaks and /absences (and the consolidated /schedule resource). See the Schedule page for the full calendar model.