Workday HCM API

Human Capital Management API for managing workforce data, recruiting, talent management, and payroll. Provides RESTful endpoints for core HR operations.

OpenAPI Specification

hcm.yml Raw ↑
openapi: 3.1.0
info:
  title: Workday HCM API
  description: >-
    Human Capital Management API for managing workforce data, recruiting,
    talent management, and payroll. Provides RESTful endpoints for core HR
    operations including workers, organizations, and job data.
  version: v1
  contact:
    name: Workday Support
    email: [email protected]
    url: https://www.workday.com/en-us/customer-service/support.html
  license:
    name: Proprietary
    url: https://www.workday.com/en-us/legal.html
servers:
- url: https://wd2-impl-services1.workday.com/ccx/api/v1/{tenant}
  description: Workday REST API Server
  variables:
    tenant:
      default: tenant_name
      description: The Workday tenant identifier
security:
- OAuth2:
  - r_worker
  - w_worker
paths:
  /workers:
    get:
      operationId: getWorkers
      summary: Get Workers
      description: >-
        Returns a collection of workers. Supports filtering, pagination, and
        field-level selection of worker data.
      tags:
      - Workers
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Successful response containing a collection of workers.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkerSummary'
                  total:
                    type: integer
                    description: Total number of results available.
              examples:
                Getworkers200Example:
                  summary: Default getWorkers 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                      primaryWorkEmail: [email protected]
                      primaryWorkPhone: example_value
                      isPrimaryJob: true
                      businessTitle: example_value
                    total: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /workers/{ID}:
    get:
      operationId: getWorkerById
      summary: Get Worker by Id
      description: Returns detailed information for a specific worker by their Workday ID.
      tags:
      - Workers
      parameters:
      - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response containing worker details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Worker'
              examples:
                Getworkerbyid200Example:
                  summary: Default getWorkerById 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    descriptor: example_value
                    workerID: '500123'
                    primaryWorkEmail: [email protected]
                    primaryWorkPhone: example_value
                    businessTitle: example_value
                    workerType:
                      id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                    primarySupervisoryOrganization:
                      id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                    location:
                      id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                    hireDate: '2026-01-15'
                    terminationDate: '2026-01-15'
                    isManager: true
                    externalID: '500123'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /workers/{ID}/history:
    get:
      operationId: getWorkerHistory
      summary: Get Worker History
      description: Returns the history of changes for a specific worker.
      tags:
      - Workers
      parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Successful response containing worker history records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkerHistoryEntry'
                  total:
                    type: integer
              examples:
                Getworkerhistory200Example:
                  summary: Default getWorkerHistory 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: abc123
                      descriptor: example_value
                      effectiveDate: '2026-01-15'
                    total: 10
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /workers/{ID}/photos:
    get:
      operationId: getWorkerPhoto
      summary: Get Worker Photo
      description: Returns the photo for a specific worker.
      tags:
      - Workers
      parameters:
      - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response containing worker photo data.
          content:
            image/png:
              schema:
                type: string
                format: binary
              examples:
                Getworkerphoto200Example:
                  summary: Default getWorkerPhoto 200 response
                  x-microcks-default: true
                  value: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /workers/{ID}/businessTitleChanges:
    get:
      operationId: getWorkerBusinessTitleChanges
      summary: Get Business Title Changes
      description: Returns business title change history for a specific worker.
      tags:
      - Workers
      parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Successful response containing business title changes.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BusinessTitleChange'
                  total:
                    type: integer
              examples:
                Getworkerbusinesstitlechanges200Example:
                  summary: Default getWorkerBusinessTitleChanges 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: abc123
                      descriptor: example_value
                      proposedBusinessTitle: example_value
                      effectiveDate: '2026-01-15'
                    total: 10
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /workers/{ID}/inboxTasks:
    get:
      operationId: getWorkerInboxTasks
      summary: Get Worker Inbox Tasks
      description: Returns inbox tasks for a specific worker.
      tags:
      - Workers
      parameters:
      - $ref: '#/components/parameters/ID'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Successful response containing inbox tasks.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/InboxTask'
                  total:
                    type: integer
              examples:
                Getworkerinboxtasks200Example:
                  summary: Default getWorkerInboxTasks 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: abc123
                      descriptor: example_value
                      assigned: '2026-01-15T10:30:00Z'
                      due: '2026-01-15T10:30:00Z'
                      overdue: true
                    total: 10
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /supervisoryOrganizations:
    get:
      operationId: getSupervisoryOrganizations
      summary: Get Supervisory Organizations
      description: Returns a collection of supervisory organizations.
      tags:
      - Organizations
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Successful response containing supervisory organizations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/SupervisoryOrganization'
                  total:
                    type: integer
              examples:
                Getsupervisoryorganizations200Example:
                  summary: Default getSupervisoryOrganizations 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: abc123
                      descriptor: example_value
                      name: Example Title
                      code: example_value
                      isInactive: true
                      staffingModel: example_value
                    total: 10
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /supervisoryOrganizations/{ID}:
    get:
      operationId: getSupervisoryOrganizationById
      summary: Get Supervisory Organization by Id
      description: Returns detailed information for a specific supervisory organization.
      tags:
      - Organizations
      parameters:
      - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response containing organization details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupervisoryOrganization'
              examples:
                Getsupervisoryorganizationbyid200Example:
                  summary: Default getSupervisoryOrganizationById 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    descriptor: example_value
                    name: Example Title
                    code: example_value
                    isInactive: true
                    manager:
                      id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                    superiorOrganization:
                      id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                    location:
                      id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                    staffingModel: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /locations:
    get:
      operationId: getLocations
      summary: Get Locations
      description: Returns a collection of work locations.
      tags:
      - Locations
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Successful response containing locations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Location'
                  total:
                    type: integer
              examples:
                Getlocations200Example:
                  summary: Default getLocations 200 response
                  x-microcks-default: true
                  value:
                    data:
                    - id: abc123
                      descriptor: example_value
                      name: Example Title
                      latitude: 42.5
                      longitude: 42.5
                      usages:
                      - {}
                    total: 10
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /locations/{ID}:
    get:
      operationId: getLocationById
      summary: Get Location by Id
      description: Returns detailed information for a specific location.
      tags:
      - Locations
      parameters:
      - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response containing location details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
              examples:
                Getlocationbyid200Example:
                  summary: Default getLocationById 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    descriptor: example_value
                    name: Example Title
                    latitude: 42.5
                    longitude: 42.5
                    timeProfile:
                      id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                    locale:
                      id: abc123
                      descriptor: example_value
                      href: https://www.example.com
                    usages:
                    - id: abc123
                      descriptor: example_value
                      href: https://www.example.com
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://wd2-impl-services1.workday.com/ccx/oauth2/{tenant}/authorize
          tokenUrl: https://wd2-impl-services1.workday.com/ccx/oauth2/{tenant}/token
          scopes:
            r_worker: Read worker data
            w_worker: Write worker data
  parameters:
    ID:
      name: ID
      in: path
      required: true
      description: The Workday ID of the resource.
      schema:
        type: string
    limit:
      name: limit
      in: query
      required: false
      description: The maximum number of objects in a single response. The default is 20. The maximum is 100.
      schema:
        type: integer
        default: 20
        maximum: 100
    offset:
      name: offset
      in: query
      required: false
      description: The zero-based index of the first object in a response collection.
      schema:
        type: integer
        default: 0
    search:
      name: search
      in: query
      required: false
      description: Searches workers by name. The search is case-insensitive.
      schema:
        type: string
  schemas:
    WorkerSummary:
      type: object
      properties:
        id:
          type: string
          description: The Workday ID of the worker.
          example: abc123
        descriptor:
          type: string
          description: A display descriptor for the worker (typically full name).
          example: example_value
        href:
          type: string
          format: uri
          description: A link to the full worker resource.
          example: https://www.example.com
        primaryWorkEmail:
          type: string
          format: email
          description: The primary work email address.
          example: [email protected]
        primaryWorkPhone:
          type: string
          description: The primary work phone number.
          example: example_value
        isPrimaryJob:
          type: boolean
          description: Whether this is the primary job for the worker.
          example: true
        businessTitle:
          type: string
          description: The business title for the worker.
          example: example_value
        primarySupervisoryOrganization:
          $ref: '#/components/schemas/ResourceReference'
    Worker:
      type: object
      properties:
        id:
          type: string
          description: The Workday ID of the worker.
          example: abc123
        descriptor:
          type: string
          description: A display descriptor for the worker.
          example: example_value
        workerID:
          type: string
          description: The employee or contingent worker ID.
          example: '500123'
        primaryWorkEmail:
          type: string
          format: email
          example: [email protected]
        primaryWorkPhone:
          type: string
          example: example_value
        businessTitle:
          type: string
          example: example_value
        workerType:
          $ref: '#/components/schemas/ResourceReference'
        primarySupervisoryOrganization:
          $ref: '#/components/schemas/ResourceReference'
        location:
          $ref: '#/components/schemas/ResourceReference'
        hireDate:
          type: string
          format: date
          description: The hire date for the worker.
          example: '2026-01-15'
        terminationDate:
          type: string
          format: date
          description: The termination date, if applicable.
          example: '2026-01-15'
        isManager:
          type: boolean
          description: Whether the worker is a manager.
          example: true
        externalID:
          type: string
          description: The external ID for the worker.
          example: '500123'
    WorkerHistoryEntry:
      type: object
      properties:
        id:
          type: string
          example: abc123
        descriptor:
          type: string
          example: example_value
        effectiveDate:
          type: string
          format: date
          example: '2026-01-15'
        businessProcess:
          $ref: '#/components/schemas/ResourceReference'
    BusinessTitleChange:
      type: object
      properties:
        id:
          type: string
          example: abc123
        descriptor:
          type: string
          example: example_value
        proposedBusinessTitle:
          type: string
          example: example_value
        effectiveDate:
          type: string
          format: date
          example: '2026-01-15'
    InboxTask:
      type: object
      properties:
        id:
          type: string
          example: abc123
        descriptor:
          type: string
          example: example_value
        status:
          $ref: '#/components/schemas/ResourceReference'
        assigned:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        due:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        overdue:
          type: boolean
          example: true
        subject:
          $ref: '#/components/schemas/ResourceReference'
    SupervisoryOrganization:
      type: object
      properties:
        id:
          type: string
          description: The Workday ID of the organization.
          example: abc123
        descriptor:
          type: string
          description: A display descriptor for the organization.
          example: example_value
        name:
          type: string
          description: The name of the supervisory organization.
          example: Example Title
        code:
          type: string
          description: The organization reference ID.
          example: example_value
        isInactive:
          type: boolean
          description: Whether the organization is inactive.
          example: true
        manager:
          $ref: '#/components/schemas/ResourceReference'
        superiorOrganization:
          $ref: '#/components/schemas/ResourceReference'
        location:
          $ref: '#/components/schemas/ResourceReference'
        staffingModel:
          type: string
          description: The staffing model for the organization.
          example: example_value
    Location:
      type: object
      properties:
        id:
          type: string
          description: The Workday ID of the location.
          example: abc123
        descriptor:
          type: string
          description: A display descriptor for the location.
          example: example_value
        name:
          type: string
          example: Example Title
        latitude:
          type: number
          format: double
          example: 42.5
        longitude:
          type: number
          format: double
          example: 42.5
        timeProfile:
          $ref: '#/components/schemas/ResourceReference'
        locale:
          $ref: '#/components/schemas/ResourceReference'
        usages:
          type: array
          items:
            $ref: '#/components/schemas/ResourceReference'
          example: []
    ResourceReference:
      type: object
      description: A reference to a Workday resource.
      properties:
        id:
          type: string
          description: The Workday ID of the referenced resource.
          example: abc123
        descriptor:
          type: string
          description: A display descriptor for the referenced resource.
          example: example_value
        href:
          type: string
          format: uri
          description: A link to the referenced resource.
          example: https://www.example.com
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: A message describing the error.
          example: example_value
        errors:
          type: array
          items:
            type: object
            properties:
              error:
                type: string
              field:
                type: string
          example: []
  responses:
    BadRequest:
      description: The request was invalid or malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Authentication credentials were missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
tags:
- name: Workers
  description: Endpoints for managing worker data.
- name: Organizations
  description: Endpoints for managing organizational data.
- name: Locations
  description: Endpoints for managing location data.