Staff Availability API
Availability is when a staff member can work. It has two parts:
- Their usual week: one row per day, each either off or on with a start and end time.
- Specific dates: an answer for one date (can work, with hours, or can't work). A date answer beats their usual week for that day.
Staff can set both themselves from their own link, with no login. These endpoints let you read and set the same data, and send staff their link.
Availability guides who gets picked to work. The guide picker lists people outside their hours after
everyone else, marked "Outside their hours", but never blocks them. Days off are separate: they are
time off entries, and a day off a staff member asks for from their
link arrives as pending until you approve it.
Endpointsโ
| Method | Endpoint | Description | Scope Required |
|---|---|---|---|
GET | /v1/staff/{staffId}/availability | Get a staff member's usual week and date answers | staff:read |
PUT | /v1/staff/{staffId}/availability | Set their usual week, specific dates, or both | staff:write |
POST | /v1/staff/{staffId}/availability-link | Send one staff member their link | staff:write |
POST | /v1/staff/availability-requests | Ask several staff members at once, for every week or for a date range | staff:write |
The availability objectโ
Every endpoint that returns availability uses this shape.
{
"week": {
"monday": { "on": true, "start": "09:00", "end": "17:00" },
"tuesday": { "on": true, "start": "09:00", "end": "17:00" },
"wednesday": { "on": false, "start": "09:00", "end": "17:00" },
"thursday": { "on": true, "start": "09:00", "end": "17:00" },
"friday": { "on": true, "start": "09:00", "end": "17:00" },
"saturday": { "on": true, "start": "07:00", "end": "12:00" },
"sunday": { "on": false, "start": "09:00", "end": "17:00" }
},
"set_by": "staff",
"dates": [
{ "date": "2026-10-05", "can_work": false, "start": null, "end": null },
{ "date": "2026-10-06", "can_work": true, "start": "12:00", "end": "18:00" }
]
}
| Field | Type | Description |
|---|---|---|
week | object | One entry per day, monday to sunday. on is false on days they don't work. Times are HH:MM, 24-hour. A day that is off shows 09:00 to 17:00 as a placeholder. |
set_by | string or null | staff when the staff member set their own week from their link, owner when it was set in the portal, the API, the phone app or Dash, null when no week is set. |
dates | array | Answers for today and later dates, oldest first, up to 60. start and end are null when can_work is false. |
The staff member's linkโ
Each staff member has one link, in the form https://app.equipdash.com/my-hours/{token}. It keeps
working until you make a new one in the portal (Staff > (name) > Schedule > Send (name) their
link > Make a new link), at which point the old link shows "This link no longer works."
Authenticationโ
All endpoints require a bearer API key. Reads need staff:read; everything else needs staff:write.
The two sending endpoints are limited to 30 calls a minute.