Workday Prism Analytics API

API for loading external data into Workday Prism Analytics for advanced reporting and analytics capabilities.

OpenAPI Specification

workday-integrations-prism-analytics-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Workday Integrations Workday Prism Analytics API
  description: >-
    API for managing external data in Workday Prism Analytics. Enables
    creation of datasets, uploading of external data files, and management
    of data tables for advanced reporting and analytics within Workday.
    Supports loading CSV and Parquet data into Prism for blending with
    native Workday data sources.
  version: v2
  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 Prism Analytics API Documentation
  url: https://doc.workday.com/admin-guide/en-us/workday-prism-analytics/workday-prism-analytics-api.html
servers:
  - url: https://wd2-impl-services1.workday.com/ccx/api/prismAnalytics/v2/{tenant}
    description: Workday Prism Analytics Endpoint
    variables:
      tenant:
        default: mycompany
        description: Workday tenant name
tags:
  - name: Data Sources
    description: Discover available Workday and external data sources
  - name: Data Upload
    description: Upload external data files into datasets
  - name: Datasets
    description: Manage Prism Analytics dataset definitions
  - name: Tables
    description: Manage data tables derived from datasets
security:
  - bearerAuth: []
paths:
  /datasets:
    get:
      operationId: listDatasets
      summary: Workday Integrations List datasets
      description: >-
        Retrieve a collection of Prism Analytics datasets available in the
        tenant. Includes both active and draft datasets.
      tags:
        - Datasets
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - name: name
          in: query
          description: Filter datasets by name
          schema:
            type: string
      responses:
        '200':
          description: Collection of datasets returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                    description: Total number of datasets
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Dataset'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createDataset
      summary: Workday Integrations Create a dataset
      description: >-
        Create a new Prism Analytics dataset with a defined schema. The dataset
        is created in draft status and must have data uploaded before it can be
        published.
      tags:
        - Datasets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDatasetRequest'
      responses:
        '201':
          description: Dataset created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /datasets/{datasetId}:
    get:
      operationId: getDataset
      summary: Workday Integrations Get a dataset
      description: >-
        Retrieve details of a specific Prism Analytics dataset by ID,
        including its schema, status, and row count.
      tags:
        - Datasets
      parameters:
        - $ref: '#/components/parameters/datasetId'
      responses:
        '200':
          description: Dataset details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateDataset
      summary: Workday Integrations Update a dataset
      description: >-
        Update the schema or metadata of an existing dataset. Only draft
        datasets can be modified.
      tags:
        - Datasets
      parameters:
        - $ref: '#/components/parameters/datasetId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDatasetRequest'
      responses:
        '200':
          description: Dataset updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteDataset
      summary: Workday Integrations Delete a dataset
      description: >-
        Delete a Prism Analytics dataset and all associated data.
      tags:
        - Datasets
      parameters:
        - $ref: '#/components/parameters/datasetId'
      responses:
        '204':
          description: Dataset deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /datasets/{datasetId}/upload:
    post:
      operationId: uploadDataToDataset
      summary: Workday Integrations Upload data to a dataset
      description: >-
        Upload a data file (CSV or gzipped CSV) to a Prism Analytics dataset.
        The file is validated against the dataset schema. Multiple files can
        be uploaded and will be appended to the dataset.
      tags:
        - Data Upload
      parameters:
        - $ref: '#/components/parameters/datasetId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                  description: CSV or gzipped CSV file to upload
      responses:
        '200':
          description: File uploaded and validated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResponse'
        '400':
          description: File validation failed or schema mismatch
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /datasets/{datasetId}/publish:
    post:
      operationId: publishDataset
      summary: Workday Integrations Publish a dataset
      description: >-
        Publish a dataset after data has been uploaded. This makes the data
        available for use in Prism Analytics reports and dashboards. Publishing
        replaces any previously published data.
      tags:
        - Datasets
      parameters:
        - $ref: '#/components/parameters/datasetId'
      responses:
        '200':
          description: Dataset published successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '400':
          description: Dataset has no uploaded data to publish
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /tables:
    get:
      operationId: listTables
      summary: Workday Integrations List data tables
      description: >-
        Retrieve a collection of Prism Analytics data tables available in the
        tenant, including both Workday-sourced and external data tables.
      tags:
        - Tables
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - name: name
          in: query
          description: Filter tables by name
          schema:
            type: string
      responses:
        '200':
          description: Collection of tables returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Table'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /tables/{tableId}:
    get:
      operationId: getTable
      summary: Workday Integrations Get a data table
      description: >-
        Retrieve details of a specific data table by ID, including its schema
        and source information.
      tags:
        - Tables
      parameters:
        - name: tableId
          in: path
          required: true
          description: Workday ID of the data table
          schema:
            type: string
      responses:
        '200':
          description: Table details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Table'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /dataSources:
    get:
      operationId: listDataSources
      summary: Workday Integrations List data sources
      description: >-
        Retrieve available data sources for Prism Analytics, including native
        Workday data sources and external datasets that can be used in reports.
      tags:
        - Data Sources
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Collection of data sources returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/DataSource'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        OAuth 2.0 bearer token obtained via Workday authentication for
        Prism Analytics API access.
  parameters:
    limit:
      name: limit
      in: query
      description: Maximum number of results to return per page
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    offset:
      name: offset
      in: query
      description: Number of results to skip for pagination
      schema:
        type: integer
        minimum: 0
        default: 0
    datasetId:
      name: datasetId
      in: path
      required: true
      description: Workday ID of the Prism Analytics dataset
      schema:
        type: string
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication credentials missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Dataset:
      type: object
      properties:
        id:
          type: string
          description: Workday ID of the dataset
        name:
          type: string
          description: Name of the dataset
        description:
          type: string
          description: Description of the dataset
        status:
          type: string
          enum:
            - Draft
            - Published
            - Publishing
            - Failed
          description: Current status of the dataset
        rowCount:
          type: integer
          description: Number of rows in the published dataset
        createdDate:
          type: string
          format: date-time
          description: When the dataset was created
        modifiedDate:
          type: string
          format: date-time
          description: When the dataset was last modified
        publishedDate:
          type: string
          format: date-time
          description: When the dataset was last published
        schema:
          type: array
          description: Field definitions for the dataset
          items:
            $ref: '#/components/schemas/FieldDefinition'
    CreateDatasetRequest:
      type: object
      required:
        - name
        - schema
      properties:
        name:
          type: string
          description: Name for the dataset
          minLength: 1
          maxLength: 255
        description:
          type: string
          description: Description of the dataset
        schema:
          type: array
          description: Field definitions for the dataset schema
          minItems: 1
          items:
            $ref: '#/components/schemas/FieldDefinition'
    FieldDefinition:
      type: object
      required:
        - name
        - type
      properties:
        name:
          type: string
          description: Field name
        description:
          type: string
          description: Field description
        type:
          type: string
          enum:
            - Text
            - Numeric
            - Date
            - Boolean
            - Currency
          description: Data type of the field
        precision:
          type: integer
          description: Decimal precision for numeric fields
        isRequired:
          type: boolean
          description: Whether the field is required
          default: false
    UploadResponse:
      type: object
      properties:
        id:
          type: string
          description: Upload identifier
        status:
          type: string
          enum:
            - Accepted
            - Processing
            - Completed
            - Failed
          description: Upload processing status
        rowsUploaded:
          type: integer
          description: Number of rows successfully uploaded
        rowsFailed:
          type: integer
          description: Number of rows that failed validation
        errors:
          type: array
          items:
            type: object
            properties:
              row:
                type: integer
              field:
                type: string
              message:
                type: string
    Table:
      type: object
      properties:
        id:
          type: string
          description: Workday ID of the table
        name:
          type: string
          description: Name of the data table
        description:
          type: string
          description: Description of the data table
        sourceType:
          type: string
          enum:
            - Workday
            - External
          description: Whether the table is sourced from Workday or external data
        rowCount:
          type: integer
          description: Number of rows in the table
        lastRefreshed:
          type: string
          format: date-time
          description: When the table was last refreshed
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldDefinition'
    DataSource:
      type: object
      properties:
        id:
          type: string
          description: Workday ID of the data source
        name:
          type: string
          description: Name of the data source
        description:
          type: string
          description: Description of the data source
        sourceType:
          type: string
          enum:
            - Workday
            - External
          description: Origin of the data source
        isAvailable:
          type: boolean
          description: Whether the data source is available for use
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string