Towers Watson Employees API

Employee profile and engagement management

OpenAPI Specification

towers-watson-employees-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: WTW HR Portal Benefits Employees API
  description: Willis Towers Watson HR Portal API for delivering personalized digital employee experiences. Enables HR teams to manage employee content, benefits communications, total rewards statements, case management, and targeted workforce messaging.
  version: 1.0.0
  contact:
    name: Willis Towers Watson
    url: https://www.wtwco.com/en-us/solutions/products/hr-portal-software
servers:
- url: https://api.wtwco.com/hrportal/v1
  description: WTW HR Portal API
security:
- bearerAuth: []
tags:
- name: Employees
  description: Employee profile and engagement management
paths:
  /employees:
    get:
      operationId: listEmployees
      summary: List Employees
      description: Returns a paginated list of employee records in the HR portal.
      tags:
      - Employees
      parameters:
      - name: department
        in: query
        schema:
          type: string
        description: Filter by department
      - name: status
        in: query
        schema:
          type: string
          enum:
          - active
          - inactive
          - leave
        description: Filter by employment status
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Employee list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}:
    get:
      operationId: getEmployee
      summary: Get Employee
      description: Retrieve HR portal profile for a specific employee.
      tags:
      - Employees
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
        description: Employee identifier
      responses:
        '200':
          description: Employee profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employee'
        '404':
          $ref: '#/components/responses/NotFound'
  /employees/{employeeId}/total-rewards:
    get:
      operationId: getEmployeeTotalRewards
      summary: Get Employee Total Rewards
      description: Returns the total compensation and rewards summary for an employee.
      tags:
      - Employees
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      - name: year
        in: query
        schema:
          type: integer
        description: Plan year (defaults to current year)
      responses:
        '200':
          description: Total rewards statement
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TotalRewards'
        '404':
          $ref: '#/components/responses/NotFound'
  /employees/{employeeId}/benefits:
    get:
      operationId: getEmployeeBenefits
      summary: Get Employee Benefits
      description: Returns current benefits enrollment summary for an employee.
      tags:
      - Employees
      parameters:
      - name: employeeId
        in: path
        required: true
        schema:
          type: string
      - name: planYear
        in: query
        schema:
          type: integer
        description: Benefits plan year
      responses:
        '200':
          description: Benefits summary
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenefitsSummary'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    BenefitsSummary:
      type: object
      properties:
        employeeId:
          type: string
        planYear:
          type: integer
        enrollments:
          type: array
          items:
            type: object
            properties:
              planType:
                type: string
                enum:
                - medical
                - dental
                - vision
                - life
                - disability
                - hsa
                - 401k
                - other
              planName:
                type: string
              status:
                type: string
                enum:
                - active
                - waived
                - pending
              coverageLevel:
                type: string
              employeeContribution:
                type: number
                format: float
              employerContribution:
                type: number
                format: float
              effectiveDate:
                type: string
                format: date
    Employee:
      type: object
      properties:
        id:
          type: string
        employeeNumber:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
          format: email
        department:
          type: string
        jobTitle:
          type: string
        location:
          type: string
        status:
          type: string
          enum:
          - active
          - inactive
          - leave
        hireDate:
          type: string
          format: date
        manager:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
    TotalRewards:
      type: object
      properties:
        employeeId:
          type: string
        planYear:
          type: integer
        baseSalary:
          type: number
          format: float
        bonus:
          type: number
          format: float
        equity:
          type: number
          format: float
        benefits:
          type: object
          properties:
            healthInsurance:
              type: number
              format: float
            dental:
              type: number
              format: float
            vision:
              type: number
              format: float
            retirement:
              type: number
              format: float
            other:
              type: number
              format: float
        totalCompensation:
          type: number
          format: float
        currency:
          type: string
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    EmployeeList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Employee'
        total:
          type: integer
        page:
          type: integer
        limit:
          type: integer
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT