Reading the directory
GET /api/public/v1/employees returns the whole directory in one response — there is no pagination.
The public employee shape is deliberately minimal: identity, department and status. It does not include manager, location, shift, joining date, compensation or contact details.
Choosing a match key
1
First run: match on code
Both systems typically know an employee number. Match on it, then record the OnTime
id against each of your records.2
Subsequent runs: match on the stored id
Immune to a code being reassigned or corrected.
The reconciliation
Applying changes
Because the public API is read-only, you have three options for acting on the drift:Report it
Emit a drift report and let an administrator apply it in the console. Simple, auditable, and the right choice when drift is rare.
CSV import
For bulk onboarding, produce a CSV and use the directory’s bulk import. Remember imported employees need a password set before they can sign in.
MCP
The MCP server does expose employee create and update tools, acting as a bound employee with that person’s permissions. This is the only programmatic write path. See the AI & MCP tab.
Status values
Exited employees remain in the directory and continue to be returned by this endpoint — their attendance, payslips and documents are part of the statutory record. Filter them out yourself if your target system should not see them.