Skip to main content
The BuildingSwell UI calls this resource People; the API calls it worker. This page uses worker/Worker throughout to match the API.
The workforce roster. Use it to list workers and resolve the worker IDs returned elsewhere in the API (e.g. deliverable assignees, timesheet.workerId, QC inspection assignees) back to worker names — and to create, edit, archive, and restore workers.
Authorization is enforced at the record level via your worker permission: read for the GET endpoints, create/update for the writes below. Admins have full access. (In the role editor, the People composite grants worker create/update; read is also granted by Build, Planning, Attendance, Timesheets, and Teams.)
No hard delete. Workers are archived, never deleted — DELETE /worker/:id and DELETE /worker/bulk return 403. Archive via PATCH /worker/:id { "isArchived": true } instead.
Search columns: name, customerIdentifier

Fields

Only name is required on create; every other field falls through to the default above.

Archive and restore

There is no separate archive endpoint — flip isArchived with a PATCH:
  • ArchivePATCH /worker/:id { "isArchived": true }. The worker’s name and customerIdentifier are suffixed with - (archived <n>) so they don’t collide with active records, teamId is cleared, and the worker’s open work sessions and daily-plan assignments are ended.
  • RestorePATCH /worker/:id { "isArchived": false }. The archived suffix is stripped and, if the original name is now taken by an active worker, the next free name is chosen (e.g. Jane Doe (1)).
  • An archived worker is read-only — any PATCH other than the restore (setting isArchived back to false) returns 400.

Example queries