Staff
Manage property staff members across departments and roles. Staff records can be linked to housekeeping tasks and guest requests via the assigned_to field on those resources.
The Staff Member object
idstringUnique staff ID. Prefixed stf_.
property_idstringProperty this staff member belongs to.
namestringFull name.
emailstring?Work email address.
phonestring?Work phone or mobile number.
roleenummanager · supervisor · attendant · technician · concierge · chef · security · driver · admin · other
departmentenumhousekeeping · maintenance · front_desk · food_beverage · concierge · security · transport · management · spa · other
statusenumactive · on_leave · inactive
notesstring?Internal notes about this staff member.
created_atdatetimeISO 8601 timestamp.
updated_atdatetimeISO 8601 timestamp.
Endpoints
/v1/staffCreate a staff memberAdd a new staff member to the property.
Request Body
namestringrequiredFull name.rolestringrequiredStaff role enum value.departmentstringrequiredDepartment enum value.statusstringactive, on_leave, or inactive. Defaults to active.emailstringWork email address.phonestringWork phone number.notesstringInternal notes.curl -X POST https://api.escapelife.ai/v1/staff \
-H "X-API-Key: sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Rosa Martinez",
"role": "attendant",
"department": "housekeeping",
"email": "rosa@grandresort.com",
"phone": "+1 305-555-0142"
}'{
"id": "stf_a1b2c3d4e5f6",
"property_id": "pty_xyz",
"name": "Rosa Martinez",
"email": "rosa@grandresort.com",
"phone": "+1 305-555-0142",
"role": "attendant",
"department": "housekeeping",
"status": "active",
"notes": null,
"created_at": "2026-03-16T12:00:00Z",
"updated_at": "2026-03-16T12:00:00Z"
}/v1/staffList staff membersReturn all staff members for the property, sorted by name.
Path / Query Parameters
departmentstringFilter by department.rolestringFilter by role.statusstringFilter by status: active, on_leave, inactive.limitintegerMax results (1–200). Default 50.offsetintegerPagination offset. Default 0./v1/staff/summaryStaff summaryReturn total count, active count, and breakdowns by department and role.
{
"total": 24,
"active": 21,
"by_department": {
"housekeeping": 8,
"front_desk": 5,
"food_beverage": 4,
"maintenance": 3,
"concierge": 2,
"management": 2
},
"by_role": {
"attendant": 10,
"supervisor": 4,
"manager": 3,
"concierge": 2,
"technician": 3,
"admin": 2
}
}/v1/staff/{id}Retrieve a staff memberFetch a single staff member by ID.
Path / Query Parameters
idstringrequiredStaff ID (stf_...)./v1/staff/{id}Update a staff memberUpdate role, department, status, or contact details.
Path / Query Parameters
idstringrequiredStaff ID (stf_...).Request Body
namestringUpdated name.rolestringUpdated role.departmentstringUpdated department.statusstringUpdated status.emailstringUpdated email.phonestringUpdated phone.notesstringUpdated notes.curl -X PATCH https://api.escapelife.ai/v1/staff/stf_a1b2c3d4e5f6 \
-H "X-API-Key: sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"status": "on_leave"}'/v1/staff/{id}Delete a staff memberPermanently remove a staff member record. This does not affect historical housekeeping or request records that reference them by name.
Path / Query Parameters
idstringrequiredStaff ID (stf_...).