Employees
Overview
The Employees API manages worker records used for labor cost calculations and crew assignments in bids. Employees are referenced when creating labor items to apply specific hourly rates and per diem costs.
Base Operations
List Employees
- Request
- Response
GET /api/employees
Cookie: sAccessToken=...; sRefreshToken=...
[
{
"id": "uuid",
"name": "John Doe",
"hourlyRate": 35.00,
"perDiemRate": 75.00,
"status": "ACTIVE",
"createdAt": "2025-01-15T10:00:00.000Z",
"updatedAt": "2025-01-20T14:30:00.000Z"
},
...
]
Roles: ADMIN, ESTIMATOR, PM
Create Employee
- Request
- Response
POST /api/employees
Cookie: sAccessToken=...; sRefreshToken=...
Content-Type: application/json
{
"name": "Jane Smith",
"hourlyRate": 42.50,
"perDiemRate": 85.00
}
{
"id": "uuid",
"name": "Jane Smith",
"hourlyRate": 42.50,
"perDiemRate": 85.00,
"status": "ACTIVE",
"message": "Employee created successfully"
}
Roles: ADMIN, ESTIMATOR
Required Fields:
name(string) - Employee full namehourlyRate(number) - Hourly wage rateperDiemRate(number) - Daily per diem allowance
Update Employee
- Request
- Response
PATCH /api/employees/:id
Cookie: sAccessToken=...; sRefreshToken=...
Content-Type: application/json
{
"hourlyRate": 45.00,
"perDiemRate": 90.00
}
{
"id": "uuid",
"message": "Employee updated successfully"
}
Roles: ADMIN, ESTIMATOR
Update Employee Status
- Request
- Response
PATCH /api/employees/:id/status
Cookie: sAccessToken=...; sRefreshToken=...
Content-Type: application/json
{
"status": "INACTIVE"
}
{
"id": "uuid",
"status": "INACTIVE",
"message": "Employee status updated"
}
Roles: ADMIN
Status Values:
ACTIVE- Employee available for assignmentINACTIVE- Employee not available (archived)
Delete Employee
- Request
- Response
DELETE /api/employees/:id
Cookie: sAccessToken=...; sRefreshToken=...
{
"message": "Employee deleted successfully"
}
Roles: ADMIN
warning
Deleting an employee will fail if they are referenced in any labor items. Set status to INACTIVE instead.
Data Model
interface Employee {
id: string // UUID
name: string // Full name
hourlyRate: number // Hourly wage
perDiemRate: number // Daily per diem
status: EmployeeStatus // ACTIVE or INACTIVE
createdAt: DateTime
updatedAt: DateTime
}
enum EmployeeStatus {
ACTIVE
INACTIVE
}
Related Endpoints
- Labor Items - Reference employees in labor cost calculations