Workday Integrations API

REST API for building custom integrations with Workday services. Provides endpoints for programmatic access to integration events, launch parameters, and reference data used across Workday modules.

OpenAPI Specification

workday-integration-integrations-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Workday Integration Workday Integrations API
  description: >-
    REST API for building custom integrations with Workday services. Provides
    endpoints for programmatic access to integration events, launch parameters,
    and reference data used across Workday modules.
  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/v1/{tenant}
    description: Workday REST API server
    variables:
      baseUrl:
        default: wd2-impl-services1.workday.com
        description: The Workday data center hostname
      tenant:
        default: tenant
        description: The Workday tenant name
security:
  - OAuth2:
      - r:integrations
      - w:integrations
paths:
  /integrationEvents:
    get:
      operationId: getIntegrationEvents
      summary: Workday Integration Retrieve integration events
      description: >-
        Returns a collection of integration event records showing the status
        and details of integration runs.
      tags:
        - Integration Events
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Successful response with integration events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationEventsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /integrationEvents/{ID}:
    get:
      operationId: getIntegrationEventById
      summary: Workday Integration Retrieve a specific integration event
      description: >-
        Returns the specified integration event including run status, start time,
        end time, and any error messages.
      tags:
        - Integration Events
      parameters:
        - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response with the integration event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationEvent'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /integrationSystems:
    get:
      operationId: getIntegrationSystems
      summary: Workday Integration Retrieve integration systems
      description: >-
        Returns a collection of configured integration systems in the tenant.
      tags:
        - Integration Systems
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Successful response with integration systems
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationSystemsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /integrationSystems/{ID}:
    get:
      operationId: getIntegrationSystemById
      summary: Workday Integration Retrieve a specific integration system
      description: >-
        Returns the specified integration system with its configuration details.
      tags:
        - Integration Systems
      parameters:
        - $ref: '#/components/parameters/ID'
      responses:
        '200':
          description: Successful response with the integration system
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationSystem'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /integrationSystems/{ID}/launch:
    post:
      operationId: launchIntegration
      summary: Workday Integration Launch an integration system
      description: >-
        Triggers execution of the specified integration system.
      tags:
        - Integration Systems
      parameters:
        - $ref: '#/components/parameters/ID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegrationLaunchRequest'
      responses:
        '201':
          description: Integration launched successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationEvent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://{baseUrl}/authorize
          tokenUrl: https://{baseUrl}/oauth2/{tenant}/token
          refreshUrl: https://{baseUrl}/oauth2/{tenant}/token
          scopes:
            r:integrations: Read integration data
            w:integrations: Write integration data
  parameters:
    ID:
      name: ID
      in: path
      required: true
      description: The Workday ID of the resource
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: The maximum number of objects in a single response (default 20, maximum 100)
      schema:
        type: integer
        default: 20
        maximum: 100
    offset:
      name: offset
      in: query
      description: The zero-based index of the first object in a response collection
      schema:
        type: integer
        default: 0
    search:
      name: search
      in: query
      description: Search string used to filter results
      schema:
        type: string
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    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
        errors:
          type: array
          items:
            type: object
            properties:
              error:
                type: string
              field:
                type: string
              message:
                type: string
    ResourceReference:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        href:
          type: string
          format: uri
    IntegrationEvent:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        integrationSystem:
          $ref: '#/components/schemas/ResourceReference'
        status:
          type: string
          enum:
            - Completed
            - Failed
            - In_Progress
            - Cancelled
        startDateTime:
          type: string
          format: date-time
        endDateTime:
          type: string
          format: date-time
        recordsProcessed:
          type: integer
        recordsFailed:
          type: integer
    IntegrationEventsResponse:
      type: object
      properties:
        total:
          type: integer
        data:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationEvent'
    IntegrationSystem:
      type: object
      properties:
        id:
          type: string
        descriptor:
          type: string
        integrationSystemName:
          type: string
        template:
          $ref: '#/components/schemas/ResourceReference'
        isActive:
          type: boolean
        lastRunDateTime:
          type: string
          format: date-time
    IntegrationSystemsResponse:
      type: object
      properties:
        total:
          type: integer
        data:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationSystem'
    IntegrationLaunchRequest:
      type: object
      properties:
        launchParameters:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              value:
                type: string
tags:
  - name: Integration Events
  - name: Integration Systems