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: api-support@workday.com 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