openapi: 3.1.0
info:
title: Workday Reporting Workday Report-as-a-Service (RaaS) Report Metadata Reports API
description: REST 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 as Advanced type reports with web service enabled in Workday before they can be accessed through this API. Supports prompt-based filtering through query parameters matching report prompt names configured in the report definition.
version: v1
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
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
security:
- basicAuth: []
- bearerAuth: []
tags:
- name: Reports
description: Execute and retrieve data from custom and standard Workday reports configured as web services
paths:
/{reportOwner}/{reportName}:
get:
operationId: getReport
summary: Workday Reporting Get report data
description: Execute a Workday custom report and retrieve its data. The report must have web service enabled in its report definition. Returns data in JSON format by default, with support for CSV, XML, and GData formats via the format parameter. Supports prompt-based filtering through query parameters that match the report prompt names configured in Workday. Pagination is supported through limit and offset parameters for large result sets.
tags:
- Reports
parameters:
- name: reportOwner
in: path
required: true
description: Username of the report owner in Workday, typically the integration system user (ISU) account 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 in place of spaces.
schema:
type: string
- name: format
in: query
description: Response format for the report data. Determines the Content-Type of the response body.
schema:
type: string
enum:
- json
- csv
- simplexml
- gdata
default: json
- name: Employee_ID
in: query
description: Example prompt parameter for filtering by Employee ID. Actual parameters depend on the prompts configured in the report definition.
schema:
type: string
- name: Effective_Date
in: query
description: Example prompt parameter for filtering by effective date in YYYY-MM-DD format. Actual parameters depend on the prompts configured in the report definition.
schema:
type: string
format: date
- name: Organization
in: query
description: Example prompt parameter for filtering by organization WID or reference ID. Actual parameters depend on the prompts configured in the report definition.
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 with headers
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 for this report
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
parameters:
limit:
name: limit
in: query
description: Maximum number of rows to return per page
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
description: Response object containing report data rows and pagination information. The Report_Entry array contains objects whose properties correspond to the report columns configured in Workday.
properties:
Report_Entry:
type: array
description: Array of report data rows
items:
type: object
additionalProperties: true
description: A single report row. Properties vary based on the report columns configured in the Workday report definition.
Report_Has_More_Rows:
type: boolean
description: Indicates whether additional rows are available beyond the current page for pagination
Report_Total_Rows:
type: integer
description: Total number of rows matching the report filter criteria
Error:
type: object
description: Error response returned by the Workday RaaS API
properties:
error:
type: string
description: Error code identifying the type of error
message:
type: string
description: Human-readable error message with details about the failure
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 obtained via Workday authentication for report access.
externalDocs:
description: Workday RaaS Documentation
url: https://community.workday.com/sites/default/files/file-hosting/productionapi/Reporting/v1/index.html