openapi: 3.1.0 info: title: Workday Report Writer Workday Prism Analytics API description: >- REST API for working with Workday Prism Analytics tables, datasets, and data change tasks. Enables programmatic loading of external data into Prism Analytics for advanced reporting and analytics that combines internal Workday data with external sources. Supports creating tables with schema definitions, uploading compressed data files via buckets, and executing data change tasks to apply inserts, updates, upserts, and deletes. version: v3 contact: name: Workday Support url: https://www.workday.com/en-us/company/contact-us.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://{hostname}/api/prismAnalytics/v3/{tenant} description: Workday Prism Analytics Production variables: hostname: description: >- Workday data center hostname, varies by tenant deployment default: wd2-impl-services1.workday.com tenant: description: Workday tenant name default: your-tenant tags: - name: Buckets description: >- Manage file upload buckets for staging compressed data files before executing data change tasks against tables - name: Data Change Tasks description: >- Execute data change tasks to load, update, or delete data in Prism Analytics tables using files uploaded to buckets - name: Datasets description: >- Manage Prism Analytics datasets, which are read-only data collections used in Prism reports and dashboards - name: Tables description: >- Create and manage Prism Analytics tables that define the schema for external data loaded into Workday for reporting and analytics security: - bearerAuth: [] paths: /tables: get: operationId: listTables summary: Workday Report Writer List Prism Analytics Tables description: >- Retrieve a collection of Prism Analytics tables available in the tenant. Tables define the schema for external data loaded into Workday. 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: Tables retrieved successfully content: application/json: schema: type: object properties: total: type: integer description: Total number of tables data: type: array items: $ref: '#/components/schemas/Table' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createTable summary: Workday Report Writer Create a Prism Analytics Table description: >- Create a new Prism Analytics table with a defined schema. The table schema specifies the fields, data types, and constraints for the external data that will be loaded. tags: - Tables requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TableCreateRequest' responses: '201': description: Table created successfully content: application/json: schema: $ref: '#/components/schemas/Table' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /tables/{tableId}: get: operationId: getTable summary: Workday Report Writer Get a Prism Analytics Table description: >- Retrieve details of a specific Prism Analytics table including its schema definition, field mappings, and current state. tags: - Tables parameters: - $ref: '#/components/parameters/tableId' responses: '200': description: Table details retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Table' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateTable summary: Workday Report Writer Update a Prism Analytics Table description: >- Update the display name or description of an existing Prism Analytics table. Schema changes require creating a new table version. tags: - Tables parameters: - $ref: '#/components/parameters/tableId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TableUpdateRequest' responses: '200': description: Table updated successfully content: application/json: schema: $ref: '#/components/schemas/Table' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /datasets: get: operationId: listDatasets summary: Workday Report Writer List Prism Analytics Datasets description: >- Retrieve a collection of Prism Analytics datasets. Datasets are read-only data collections derived from tables or Workday data sources used in Prism reports and dashboards. 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: Datasets retrieved 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' /datasets/{datasetId}: get: operationId: getDataset summary: Workday Report Writer Get a Prism Analytics Dataset description: >- Retrieve details of a specific Prism Analytics dataset including its schema, row count, and last refresh timestamp. tags: - Datasets parameters: - $ref: '#/components/parameters/datasetId' responses: '200': description: Dataset details retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Dataset' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /buckets: get: operationId: listBuckets summary: Workday Report Writer List File Upload Buckets description: >- Retrieve a collection of file upload buckets. Buckets are used to stage compressed data files before executing data change tasks. tags: - Buckets parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' responses: '200': description: Buckets retrieved successfully content: application/json: schema: type: object properties: total: type: integer description: Total number of buckets data: type: array items: $ref: '#/components/schemas/Bucket' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createBucket summary: Workday Report Writer Create a File Upload Bucket description: >- Create a new bucket for uploading data files to a specific Prism Analytics table. The bucket must be associated with a table and specifies the data change operation type. tags: - Buckets requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BucketCreateRequest' responses: '201': description: Bucket created successfully content: application/json: schema: $ref: '#/components/schemas/Bucket' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /buckets/{bucketId}: get: operationId: getBucket summary: Workday Report Writer Get a File Upload Bucket description: >- Retrieve details of a specific bucket including its state, associated table, and uploaded file count. tags: - Buckets parameters: - $ref: '#/components/parameters/bucketId' responses: '200': description: Bucket details retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Bucket' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /buckets/{bucketId}/files: post: operationId: uploadFileToBucket summary: Workday Report Writer Upload a File to a Bucket description: >- Upload a single gzip-compressed data file to a bucket. Files must be delimited (CSV) and gzip compressed. The bucket state must be New. Multiple files can be uploaded by making multiple POST requests sequentially or concurrently. Maximum upload size for a single compressed file is 256 MB. tags: - Buckets parameters: - $ref: '#/components/parameters/bucketId' requestBody: required: true content: application/gzip: schema: type: string format: binary description: >- Gzip-compressed delimited data file (CSV format) responses: '200': description: File uploaded successfully '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /buckets/{bucketId}/complete: post: operationId: completeBucket summary: Workday Report Writer Complete a Bucket and Trigger Data Change Task description: >- Mark a bucket as complete after all files have been uploaded. This triggers the associated data change task to process the uploaded files and apply the data changes to the target Prism Analytics table. tags: - Buckets parameters: - $ref: '#/components/parameters/bucketId' responses: '200': description: Bucket completed and data change task initiated content: application/json: schema: $ref: '#/components/schemas/Bucket' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /dataChangeTasks: get: operationId: listDataChangeTasks summary: Workday Report Writer List Data Change Tasks description: >- Retrieve a collection of data change tasks. Data change tasks represent operations that modify data in Prism Analytics tables, including inserts, updates, upserts, and deletes. tags: - Data Change Tasks parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' responses: '200': description: Data change tasks retrieved successfully content: application/json: schema: type: object properties: total: type: integer description: Total number of data change tasks data: type: array items: $ref: '#/components/schemas/DataChangeTask' '401': $ref: '#/components/responses/Unauthorized' /dataChangeTasks/{taskId}: get: operationId: getDataChangeTask summary: Workday Report Writer Get a Data Change Task description: >- Retrieve details of a specific data change task including its status, operation type, row counts, and any error information. tags: - Data Change Tasks parameters: - $ref: '#/components/parameters/taskId' responses: '200': description: Data change task details retrieved successfully content: application/json: schema: $ref: '#/components/schemas/DataChangeTask' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: >- OAuth 2.0 bearer token obtained from Workday token endpoint. Requires the Prism Analytics scope. parameters: tableId: name: tableId in: path required: true description: Unique identifier (WID) of the Prism Analytics table schema: type: string datasetId: name: datasetId in: path required: true description: Unique identifier (WID) of the Prism Analytics dataset schema: type: string bucketId: name: bucketId in: path required: true description: Unique identifier of the file upload bucket schema: type: string taskId: name: taskId in: path required: true description: Unique identifier of the data change task schema: type: string limit: name: limit in: query description: Maximum number of results to return per page schema: type: integer default: 20 maximum: 100 offset: name: offset in: query description: Number of results to skip for pagination schema: type: integer default: 0 responses: BadRequest: description: >- The request was malformed or contained invalid data Unauthorized: description: >- Authentication credentials are missing or invalid NotFound: description: >- The specified resource was not found schemas: Table: type: object description: >- A Prism Analytics table defining the schema for external data loaded into Workday properties: id: type: string description: Unique identifier (WID) of the table displayName: type: string description: Display name of the table name: type: string description: API name of the table description: type: string description: Description of the table purpose and contents enableForAnalysis: type: boolean description: Whether the table is enabled for use in Prism reports fields: type: array items: $ref: '#/components/schemas/TableField' description: Schema field definitions for the table rowCount: type: integer description: Current number of rows in the table createdOn: type: string format: date-time description: Timestamp when the table was created updatedOn: type: string format: date-time description: Timestamp when the table was last modified TableField: type: object description: >- A field definition within a Prism Analytics table schema properties: name: type: string description: Field name used in data files and queries displayName: type: string description: Display name shown in the Prism Analytics UI fieldId: type: string description: Unique identifier of the field ordinal: type: integer description: Position index of the field in the schema type: $ref: '#/components/schemas/FieldType' required: type: boolean description: Whether the field is required for data loading externalId: type: boolean description: >- Whether this field serves as a unique identifier for upsert and delete operations precision: type: integer description: >- Number of decimal places for numeric fields FieldType: type: object description: >- Data type specification for a table field properties: id: type: string description: Type identifier enum: - Text - Numeric - Date - Boolean - Instance descriptor: type: string description: Display name of the field type TableCreateRequest: type: object description: >- Request body for creating a new Prism Analytics table required: - displayName - fields properties: displayName: type: string description: Display name for the new table description: type: string description: Description of the table purpose enableForAnalysis: type: boolean description: Whether to enable the table for Prism reports default: true fields: type: array items: $ref: '#/components/schemas/TableField' description: Schema field definitions TableUpdateRequest: type: object description: >- Request body for updating a Prism Analytics table properties: displayName: type: string description: Updated display name description: type: string description: Updated description Dataset: type: object description: >- A read-only Prism Analytics dataset derived from tables or Workday data sources properties: id: type: string description: Unique identifier (WID) of the dataset displayName: type: string description: Display name of the dataset name: type: string description: API name of the dataset description: type: string description: Description of the dataset rowCount: type: integer description: Number of rows in the dataset fields: type: array items: $ref: '#/components/schemas/TableField' description: Schema field definitions createdOn: type: string format: date-time description: Timestamp when the dataset was created updatedOn: type: string format: date-time description: Timestamp when the dataset was last refreshed Bucket: type: object description: >- A file upload bucket for staging data files before executing data change operations on a Prism Analytics table properties: id: type: string description: Unique identifier of the bucket name: type: string description: Bucket name state: type: string description: Current state of the bucket enum: - New - Processing - Success - Error operation: type: string description: Type of data change operation enum: - TruncateAndInsert - Insert - Update - Upsert - Delete targetTable: type: object properties: id: type: string description: ID of the target table descriptor: type: string description: Display name of the target table description: The Prism Analytics table to load data into fileCount: type: integer description: Number of files uploaded to the bucket createdOn: type: string format: date-time description: Timestamp when the bucket was created BucketCreateRequest: type: object description: >- Request body for creating a new file upload bucket required: - name - operation - targetTable properties: name: type: string description: Name for the bucket operation: type: string description: Data change operation to perform enum: - TruncateAndInsert - Insert - Update - Upsert - Delete targetTable: type: object required: - id properties: id: type: string description: ID of the target Prism Analytics table DataChangeTask: type: object description: >- A data change task that processes uploaded files and applies data modifications to a Prism Analytics table properties: id: type: string description: Unique identifier of the data change task displayName: type: string description: Display name of the task status: type: string description: Current execution status of the task enum: - Queued - Processing - Success - Error operation: type: string description: Type of data operation performed enum: - TruncateAndInsert - Insert - Update - Upsert - Delete targetTable: type: object properties: id: type: string description: ID of the target table descriptor: type: string description: Display name of the target table description: The table that was modified rowsInserted: type: integer description: Number of rows inserted rowsUpdated: type: integer description: Number of rows updated rowsDeleted: type: integer description: Number of rows deleted rowsFailed: type: integer description: Number of rows that failed to process startedOn: type: string format: date-time description: Timestamp when the task started processing completedOn: type: string format: date-time description: Timestamp when the task completed errorMessage: type: string description: Error details if the task failed