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