Workday Staffing API

API for managing staffing transactions including hires, terminations, transfers, and position management. Provides programmatic access to job profiles, positions, and organizational assignments.

OpenAPI Specification

workday-integration-staffing-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Workday Integration Workday Staffing API
  description: >-
    API for managing staffing transactions including hires, terminations,
    transfers, and position management. Provides programmatic access to job
    profiles, positions, and organizational assignments.
  version: v1
  contact:
    name: Workday API Support
    email: [email protected]
    url: https://community.workday.com
  license:
    name: Proprietary
    url: https://www.workday.com/en-us/legal/site-terms.html
servers:
  - url: https://{baseUrl}/ccx/api/staffing/v1/{tenant}
    description: Workday Staffing REST API server
    variables:
      baseUrl:
        default: wd2-impl-services1.workday.com
      tenant:
        default: tenant
security:
  - OAuth2:
      - r:staffing
      - w:staffing
paths:
  /workers:
    get:
      operationId: getWorkers
      summary: Workday Integration Retrieve workers and staffing information
      description: >-
        Returns a collection of workers and their current staffing information
        including positions, jobs, and organizational assignments.
      tags:
        - Workers
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Successful response with workers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkersResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /workers/{ID}:
    get:
      operationId: getWorkerById
      summary: Workday Integration Retrieve a specific worker
      description: >-
        Returns the specified worker with their staffing details.
      tags:
        - Workers
      parameters:
        - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response with the worker
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Worker'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /positions:
    get:
      operationId: getPositions
      summary: Workday Integration Retrieve positions
      description: >-
        Returns a collection of positions within the organization.
      tags:
        - Positions
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Successful response with positions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PositionsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /positions/{ID}:
    get:
      operationId: getPositionById
      summary: Workday Integration Retrieve a specific position
      description: >-
        Returns the specified position with its job profile and restrictions.
      tags:
        - Positions
      parameters:
        - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response with the position
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Position'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /jobProfiles:
    get:
      operationId: getJobProfiles
      summary: Workday Integration Retrieve job profiles
      description: >-
        Returns a collection of job profiles configured in the tenant.
      tags:
        - Job Profiles
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Successful response with job profiles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobProfilesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /jobProfiles/{ID}:
    get:
      operationId: getJobProfileById
      summary: Workday Integration Retrieve a specific job profile
      description: >-
        Returns the specified job profile with its details and qualifications.
      tags:
        - Job Profiles
      parameters:
        - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response with the job profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobProfile'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://{baseUrl}/authorize
          tokenUrl: https://{baseUrl}/oauth2/{tenant}/token
          scopes:
            r:staffing: Read staffing data
            w:staffing: Write staffing data
  parameters:
    ID:
      name: ID
      in: path
      required: true
      schema:
        type: string
    limit:
      name: limit
      in: query
      schema:
        type: integer
        default: 20
        maximum: 100
    offset:
      name: offset
      in: query
      schema:
        type: integer
        default: 0
    search:
      name: search
      in: query
      schema:
        type: string
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
    ResourceReference:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        href:
          type: string
          format: uri
    Worker:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        workerID:
          type: string
        workerType:
          $ref: '#/components/schemas/ResourceReference'
        position:
          $ref: '#/components/schemas/ResourceReference'
        jobProfile:
          $ref: '#/components/schemas/ResourceReference'
        supervisoryOrganization:
          $ref: '#/components/schemas/ResourceReference'
        hireDate:
          type: string
          format: date
        terminationDate:
          type: string
          format: date
    WorkersResponse:
      type: object
      properties:
        total:
          type: integer
        data:
          type: array
          items:
            $ref: '#/components/schemas/Worker'
    Position:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        positionID:
          type: string
        jobProfile:
          $ref: '#/components/schemas/ResourceReference'
        supervisoryOrganization:
          $ref: '#/components/schemas/ResourceReference'
        isFilled:
          type: boolean
        worker:
          $ref: '#/components/schemas/ResourceReference'
    PositionsResponse:
      type: object
      properties:
        total:
          type: integer
        data:
          type: array
          items:
            $ref: '#/components/schemas/Position'
    JobProfile:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        jobProfileName:
          type: string
        jobFamily:
          $ref: '#/components/schemas/ResourceReference'
        managementLevel:
          $ref: '#/components/schemas/ResourceReference'
        isActive:
          type: boolean
    JobProfilesResponse:
      type: object
      properties:
        total:
          type: integer
        data:
          type: array
          items:
            $ref: '#/components/schemas/JobProfile'
tags:
  - name: Job Profiles
  - name: Positions
  - name: Workers