Base URL https://api.cube-hr.co.uk/api/v1
18 endpoints
Employee records, org chart, change history, offboarding, and emergency contacts.
/employees
Get a paginated list of employees scoped by the authenticated user's access level (own/team/dept/location/all).
/employees/search
Optimised autocomplete search by name, email, or employee number. Returns up to 50 results.
/employees/changes
View field change history across all employees (company scoped). Sourced from audit_logs.
/employees/org-chart
Get company structure as a hierarchical tree (employees → managers → direct reports).
Create a new employee record. Uses abbreviated API keys (fn, ln, jt etc.).
/employees/{uuid}
Get full details for a single employee by UUID.
Update an employee record. All fields are optional (partial update supported).
Sparse update for a single employee (same fields as PUT but any subset).
/employees/bulk
Update up to 50 employees in a single request. Pass an array of objects each containing uuid and the fields to update.
Soft-delete an employee. Sets employee_deleted_at. The record is kept for audit purposes.
/employees/{uuid}/changes
View the full change history for a specific employee. Filterable by field and date range.
/employees/{uuid}/offboarding-preview
Everything needed to confirm a leaver before anything is changed: the pro-rated holiday position for the leave year the end date falls in (entitlement to date, used, booked, days to settle), leave that would be cancelled, assets still assigned, and the logins that would be deactivated. Read-only. Requires employee.offboard.
/employees/{uuid}/offboard
Confirms an offboarding. Sets the status to terminated and records the last working day, notice date and holiday settlement, cancels leave booked after the last working day, recalculates the balance, and deactivates the linked login unless deactivate_user is false. Requires employee.offboard.
/employees/{uuid}/gdpr-export
Export all personally identifiable information held for an employee (GDPR right of access). Returns a structured JSON document.
/employees/{uuid}/emergency-contacts
Get all emergency contacts for an employee.
Add a new emergency contact for an employee.
/employees/{uuid}/emergency-contacts/{contact_uuid}
Update an emergency contact.
Remove an emergency contact.