Skip to main content
An employee is a node in the org-structure graph. Edges run from it to the department, job title, manager, organization, location, and the person themselves (person). A manager is also an employee, so the manager chain leads further up the hierarchy.

The employee at the center of the graph, edges being the record's foreign keys

Traversal via expand

By default the record carries only *_id references. To get a related object in the same response, list it in expand.
  • Allowed values: person, department, job_title, manager. Any other name gives DEVELOPER.INVALID_EXPAND.
  • Expansion is flat, one level deep. There is no nested traversal: you cannot request the manager’s manager in a single expand.
  • A comma does not separate values — expand=department,manager is treated as one name. Repeat the parameter for multiple objects.
manager is a narrow ManagerRef reference: only id and a display name, without the manager’s personal data. To learn the manager’s department or IIN, request them as an employee — GET /employees/{manager_id} — and expand the relationships you need there (within your access).
HRQL under the hood. The graph and list filters are resolved by our own query engine, HRQL — a language akin to where-clauses over the org model. You never write HRQL yourself: publicly you work with typed filters and expand, and HRQL is what makes their traversal efficient. It is an internal engine, not part of the public API.

Next

Employee model

Record fields and the access model.

Statuses and lifecycle

EmployeeStatus values and transitions.

Pagination

List filters and incremental sync.