all:read). See Scopes.
List employees
GET /v1/employees returns a cursor-paginated list of the people included in
compliance. Service accounts are never listed.
status=TERMINATED to list terminated
employees instead.
Filters
Filters combine with AND. A filter that takes several values accepts up to 50 of them, comma-separated in one parameter, for examplegroup=Engineering,Sales. More returns
400 validation_failed.
status or onboardingStatus value, or a groupId that isn’t a UUID, returns
400 validation_failed.
Get an employee
GET /v1/employees/{id} returns one employee by id. It returns active and terminated employees,
so you can still read someone after they leave. An unknown id, an id from another workspace, and a
service account all return 404 not_found.
An employee’s id is the same value as ownerId on computers and inventory assets. Use it to
list an employee’s computers.
Fields
Onboarding status
onboardingStatus follows the same rules as the status on the People page. It is calculated from
the employee’s tasks in this workspace that apply to your workspace’s frameworks:
An expired task, such as a recurring training, counts as open.
If the same person is an employee in more than one of your workspaces, the People page currently
also counts their tasks from the other workspaces. It can then show a different status than the
API. The API counts only the tasks of the workspace your API key belongs to.
Tasks summary
tasksSummary breaks onboarding down the way the employee’s page in Secfix does:
trainings,deviceMonitoring,policyAcceptance: progress per task category. Each hastotal(tasks of that category that apply to the employee),completed, andstatus(same values asonboardingStatus).tasks: the employee’s tasks, in the order the Secfix app shows them. Each task has akey,name,category(TRAINING,POLICIES, orMONITORING),status(COMPLETE,INCOMPLETE, orNOT_APPLICABLE), andcompletedAtandexpiresAtwhen they apply.
A terminated employee’s tasks keep their real status, even though their
onboardingStatus is
NOT_APPLICABLE.Personal data
name and email are personal data. Read access (all:read) returns them. No separate scope
protects them. Grant Read access only to API keys that may see your employees’ data. See
Scopes.