Skip to main content

List Staff

Retrieve a paginated list of staff members.

Endpointโ€‹

GET /v1/staff

Authenticationโ€‹

Requires an API key with the staff:read scope.

Query Parametersโ€‹

ParameterTypeDefaultDescription
pageinteger1Page number
per_pageinteger15Items per page (max 100)
statusstring-Filter by status: active, inactive
searchstring-Search by name or email

Responseโ€‹

Success (200 OK)โ€‹

{
"data": [
{
"id": 1,
"first_name": "Jane",
"last_name": "Smith",
"full_name": "Jane Smith",
"email": "jane@company.com",
"phone": "0412345678",
"phone_country_code": "+61",
"status": "active",
"employment_type": "full_time",
"gender": "female",
"dob": "1988-03-20T00:00:00+00:00",
"job_title": "Tour Guide",
"position": "Senior Guide",
"hire_date": "2023-01-15T00:00:00+00:00",
"termination_date": null,
"address": {
"line_1": "789 Staff Road",
"line_2": null,
"city": "Sydney",
"state": "NSW",
"postcode": "2000",
"country": "AU"
},
"emergency_contact": {
"name": "John Smith",
"phone": "0498765432",
"country_code": "+61"
},
"add_in_roster": true,
"profile_photo_url": "https://example.com/photos/jane.jpg",
"roles": [
{ "id": 1, "name": "Guide" },
{ "id": 2, "name": "Instructor" }
],
"main_location": {
"id": 1,
"name": "Main Office"
},
"locations": [
{ "id": 1, "name": "Main Office", "is_main": true },
{ "id": 2, "name": "Beach Location", "is_main": false }
],
"has_portal_access": true,
"custom_fields": [
{
"field_id": 5,
"label": "Certification Level",
"field_type": "text",
"value": "Advanced",
"formatted_value": "Advanced"
}
],
"created_at": "2023-01-15T00:00:00+00:00",
"updated_at": "2026-01-15T10:30:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 12,
"total_pages": 1,
"request_id": "req_abc123",
"timestamp": "2026-01-15T12:00:00+00:00"
}
}

Response Fieldsโ€‹

Staff Memberโ€‹

FieldTypeDescription
idintegerUnique staff identifier
first_namestringFirst name
last_namestringLast name
full_namestringCombined first and last name
emailstringEmail address
phonestringPhone number
phone_country_codestringPhone country code
statusstringactive or inactive
employment_typestringfull_time, part_time, contractor
genderstring|nullmale, female, or other
dobstring|nullDate of birth (ISO 8601)
job_titlestring|nullJob title
positionstring|nullPosition/role
hire_datestring|nullHire date (ISO 8601)
termination_datestring|nullTermination date if applicable
addressobjectAddress details
emergency_contactobjectEmergency contact information
add_in_rosterbooleanInclude in staff roster
profile_photo_urlstring|nullProfile photo URL
rolesarrayAssigned staff roles
main_locationobject|nullPrimary work location
locationsarrayAll assigned locations
has_portal_accessbooleanHas access to staff portal
custom_fieldsarrayCustom field values for this staff member
created_atstringISO 8601 datetime
updated_atstringISO 8601 datetime

Custom Fieldsโ€‹

FieldTypeDescription
field_idintegerCustom field definition ID
labelstringField display label
field_typestringField type: text, textarea, number, date, datetime
valuestring|nullRaw value
formatted_valuestring|nullFormatted value for display

Errorsโ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
401invalid_api_keyInvalid API key
403insufficient_scopeAPI key lacks staff:read scope

Example Requestโ€‹

curl -X GET "https://app.equipdash.com/api/v1/staff?status=active" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."