Workday RaaS (Report-as-a-Service)

Access custom and standard Workday reports as web services, enabling report data to be consumed by external systems.

OpenAPI Specification

workday-integrations-raas-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Workday Integrations Workday Report-as-a-Service (RaaS) API
  description: >-
    API for accessing Workday custom and standard reports as RESTful web
    services. Enables external systems to consume report data in JSON, CSV, or
    XML formats. Reports must be configured with web service enabled in Workday
    before they can be accessed through this API.
  version: v1
  contact:
    name: Workday Support
    email: [email protected]
    url: https://www.workday.com/en-us/customer-experience/support.html
  termsOfService: https://www.workday.com/en-us/legal.html
externalDocs:
  description: Workday RaaS Documentation
  url: https://doc.workday.com/admin-guide/en-us/integration/workday-reports/report-as-a-service-raas.html
servers:
  - url: https://wd2-impl-services1.workday.com/ccx/service/customreport2/{tenant}
    description: Workday Custom Reports Endpoint
    variables:
      tenant:
        default: mycompany
        description: Workday tenant name
tags:
  - name: Report Metadata
    description: Retrieve report field definitions and filter parameters
  - name: Reports
    description: Access custom and standard Workday reports
security:
  - basicAuth: []
  - bearerAuth: []
paths:
  /{reportOwner}/{reportName}:
    get:
      operationId: getReport
      summary: Workday Integrations Get report data
      description: >-
        Execute a Workday custom report and retrieve its data. The report must
        have web service enabled. Returns data in JSON format by default, with
        support for CSV and XML via the format parameter. Supports prompt-based
        filtering through query parameters matching report prompt names.
      tags:
        - Reports
      parameters:
        - name: reportOwner
          in: path
          required: true
          description: >-
            Username of the report owner in Workday (the ISU account or
            integration system user that owns the report)
          schema:
            type: string
        - name: reportName
          in: path
          required: true
          description: >-
            Name of the custom report as defined in Workday. Must match the
            report name exactly, using underscores for spaces.
          schema:
            type: string
        - name: format
          in: query
          description: Response format for the report data
          schema:
            type: string
            enum:
              - json
              - csv
              - simplexml
              - gdata
            default: json
        - name: Employee_ID
          in: query
          description: >-
            Filter by Employee ID (example prompt parameter; actual parameters
            depend on report configuration)
          schema:
            type: string
        - name: Effective_Date
          in: query
          description: >-
            Filter by effective date in YYYY-MM-DD format (example prompt
            parameter)
          schema:
            type: string
            format: date
        - name: Organization
          in: query
          description: >-
            Filter by organization WID or reference ID (example prompt
            parameter)
          schema:
            type: string
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Report data returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportResponse'
            text/csv:
              schema:
                type: string
                description: Report data in CSV format
            application/xml:
              schema:
                type: string
                description: Report data in XML format
        '400':
          description: Invalid report parameters or prompt values
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication credentials missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Insufficient permissions to access the report
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Report not found or web service not enabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /{reportOwner}/{reportName}/fields:
    get:
      operationId: getReportMetadata
      summary: Workday Integrations Get report field metadata
      description: >-
        Retrieve metadata about a report including available fields, field
        types, and prompt parameters that can be used for filtering.
      tags:
        - Report Metadata
      parameters:
        - name: reportOwner
          in: path
          required: true
          description: Username of the report owner
          schema:
            type: string
        - name: reportName
          in: path
          required: true
          description: Name of the custom report
          schema:
            type: string
      responses:
        '200':
          description: Report metadata returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportMetadata'
        '401':
          description: Authentication credentials missing or invalid
        '404':
          description: Report not found
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        HTTP Basic authentication using Workday integration system user
        credentials (ISU username and password).
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 bearer token for report access
  parameters:
    limit:
      name: limit
      in: query
      description: Maximum number of rows to return
      schema:
        type: integer
        minimum: 1
        default: 100
    offset:
      name: offset
      in: query
      description: Number of rows to skip for pagination
      schema:
        type: integer
        minimum: 0
        default: 0
  schemas:
    ReportResponse:
      type: object
      properties:
        Report_Entry:
          type: array
          description: Array of report rows
          items:
            type: object
            additionalProperties: true
            description: >-
              Report row data. Properties vary based on the report columns
              configured in Workday.
        Report_Has_More_Rows:
          type: boolean
          description: Whether additional rows are available for pagination
        Report_Total_Rows:
          type: integer
          description: Total number of rows matching the report criteria
    ReportMetadata:
      type: object
      properties:
        reportName:
          type: string
          description: Name of the report
        reportOwner:
          type: string
          description: Owner of the report
        fields:
          type: array
          description: Report column definitions
          items:
            type: object
            properties:
              fieldName:
                type: string
                description: Column field name
              fieldType:
                type: string
                description: Data type of the field
              isRequired:
                type: boolean
                description: Whether the field is required in prompts
        prompts:
          type: array
          description: Available filter prompt parameters
          items:
            type: object
            properties:
              promptName:
                type: string
                description: Name of the prompt parameter
              promptType:
                type: string
                description: Data type expected for the prompt
              isRequired:
                type: boolean
                description: Whether the prompt is required
              defaultValue:
                type: string
                description: Default value for the prompt
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message