Workday API
| title | description | updated_date |
|---|---|---|
| Workday API | How to generate an API token for the Workday API. | 2025-10-24T16:45:21Z |
Follow these steps to configure Workday for REST API access. This process involves creating a dedicated integration user, setting its permissions, registering an OAuth API client, and gathering the necessary credentials for your application. This guide is aligned with Workday’s standard security practices for building robust integrations.
What we need
[] Tenant [] Client ID [] Client Secret [] Instance URL https://.myworkday.com
Step 1: Create an Integration System User (ISU)
First, create a dedicated non-human user account to own the integration process. This ISU acts as a service account, providing a clear audit trail and ensuring the integration’s stability, independent of any human user’s account status.
- Log in to Workday as an administrator.
- In the search bar, search for the task: Create Integration System User.
- Enter a User Name (e.g.,
python_rest_api_user) and a secure Password. - Check the box for Do Not Allow UI Sessions to enhance security.
- Click OK.
Step 2: Create Security Group and Assign Permissions
Next, create a security group to grant permissions to the ISU. The API client you create later will inherit the permissions of the user associated with it. This step configures the Domain Security Policies.
- In the search bar, search for the task: Create Security Group.
- Select Integration System Security Group (Unconstrained) from the dropdown.
- Give the group a descriptive Name (e.g.,
REST_API_Permissions_Group). - Click OK.
- On the next screen, add the Integration System User you created in Step 1 to this group.
- Next, search for the task: Maintain Domain Permissions for Security Group.
- Select the security group you just created (
REST_API_Permissions_Group). - In the Domain Security Policies section, grant
Getaccess to the following domains:
| Domain Security Policy | Get Permission |
|---|---|
| Worker Data: Public Worker Reports | ✅ |
| Worker Data: Current Staffing Info | ✅ |
| View: Supervisory Organization | ✅ |
| Reports: Organization | ✅ |
| Worker Data: Leave of Absence | ✅ |
| Worker Data: Time Off (Time Off) | ✅ |
- Click OK to save the permissions.
Step 3: Activate Pending Security Policy Changes
Workday requires you to formally activate all security changes before they take effect.
- In the search bar, search for the task: Activate Pending Security Policy Changes.
- Enter a Comment (e.g.,
Permissions for REST API integration.). - Check the Confirm box and click OK.
Step 4: Register an API Client for Integration
This is the core step for OAuth, where you configure the OAuth Scopes.
- In the search bar, search for the task: Register API Client.
- Select Register API Client for Integration.
- Client Name: Give your client a clear name (e.g.,
Custom Python Backend). - Grant Type: Select Authorization Code Grant. This is the recommended and most secure grant type for external applications, enabling the use of refresh tokens.
- Access Token Type: Select Bearer.
- Redirection URI: Add a placeholder URI like
https://www.google.com/. It is required by the UI but will not be used by your backend service. - Scopes (Functional Areas): Add the following scopes by searching and selecting them:
- Staffing
- Organizations and Roles
- Time Off and Leave
- System
- Public Data
- Tenant Non-Configurable
- Click OK to save.
- CRITICAL: Workday will now display the Client ID and Client Secret. Copy these immediately and store them in a secure location. The Client Secret will not be shown again.
Step 5: Generate a Refresh Token
For a backend service to run without manual intervention, you need a long-lived refresh token.
- Search for your newly created API Client under the View API Clients report.
- From the client’s menu, select API Client > Manage Refresh Tokens for Integration.
- In the Workday Account field, select the Integration System User you created in Step 1. This step formally links your API client to the ISU and all of its permissions.
- Check the Generate New Refresh Token box.
- Click OK.
- CRITICAL: Workday will display the Refresh Token. Copy and store it securely with your Client ID and Secret.
Step 6: Obtain the REST API and Token Endpoints
Your application needs to know where to request tokens and where to make API calls.
- Navigate again to the View API Clients report.
- Select your API client.
- From the menu, select API Client > View.
- This page will display your Workday REST API Endpoint and the Token Endpoint. Copy both of these URLs.
✅ REST API Integration Checklist
To configure our backend, we will need all of the following credentials:
- Workday Tenant Name: (e.g.,
yourtenantfrom your Workday URL) - Client ID: (From Step 4)
- Client Secret: (From Step 4)
- Refresh Token: (From Step 5)
- Token Endpoint URL: (From Step 6)
- REST API Base URL: (From Step 6)