Using Workday Strategic Sourcing API With Bruno For REST Data Calls
Using Workday Strategic Sourcing API With Bruno For REST Data Calls
U
with Bruno for REST Data Calls
5-Page Summary and Cheat Sheet for Developers and Integration Specialists
A
June 2025
Introduction
he Workday Strategic Sourcing API enables developers to interact with Workday’s
T
procurement and sourcing platform, automating tasks like managing projects, contracts, and
suppliers. This RESTful API uses the JSON API specification and requires API key-based
authentication. Bruno, an open-source, offline API client, is ideal for testing these API calls due
to its simplicity and Git-friendly interface. This guide provides a beginner-friendly overview of
using the API with Bruno, covering setup, authentication, REST calls, and a cheat sheet for
quick reference.
● nderstand the API structure and authentication.
U
● Set up Bruno for API testing.
● Execute common REST calls (GET, POST, PATCH, DELETE).
● Troubleshoot issues and optimize interactions.
o sensitive data (e.g., API keys, tokens) is included; placeholders are used. For official
N
documentation, visit Workday API Docs.
Prerequisites
● orkday Strategic Sourcing account with API access.
W
● Bruno installed (Windows, macOS, or Linux).
● Basic REST API and JSON knowledge.
● Optional: Text editor for scripting.
Setting Up Bruno
runo stores API requests as plain text in Bru markup, making it ideal for version-controlled
B
testing. Follow these steps to prepare Bruno for Workday Strategic Sourcing API calls.
Installing Bruno
. D
1 ownload Bruno from usebruno.com for your OS.
2. Install and create a workspace (e.g., "Workday API").
3. Create a collection named "Strategic Sourcing" for requests.
Configuring Authentication
he API requires three HTTP headers, obtainable from the API Tokens section of your Workday
T
profile:
X
● -Api-Key: Company API key.
● X-User-Token: User token.
● X-User-Email: User email.
In Bruno:
1. O pen the "Strategic Sourcing" collection and select "Configure" from the environment
dropdown.
2. Create an environment (e.g., "Production") with variables:
○ api_key: Company API key (e.g., <COMPANY_KEY>).
○ user_token: User token (e.g., <USER_TOKEN>).
○ user_email: User email (e.g., <USER_EMAIL>).
○ base_url: API base URL (e.g., https://api.us.workdayspend.com).
○ Mark sensitive variables as "Secret" to prevent exposure.
Verifying Setup
R
● equest: Create "List Projects" in the collection.
● Method: GET
● URL: {{base_url}}/services/projects/v1/projects?page[size]=50(default 10, max 100).
● }
R
● equest: Create "Create Project".
● Method: POST
● URL: {{base_url}}/services/projects/v1/projects
ody:
B
{
"data": {
"type": "projects",
"attributes": {
"name": "New Project",
"external_id": "PROJ-001"
}
}
}
●
● Response: Includes new project’s ID.
ody:
B
{
"data": {
"type": "projects",
"id": "PROJ-001",
"attributes": {
"name": "Updated Project"
}
}
}
●
● Response: Updated project attributes.
● equest: Create "Delete Project".
R
● Method: DELETE
● URL: {{base_url}}/services/projects/v1/projects/PROJ-001/external_id
● Response: HTTP 204 (No Content).
Best Practices
● E nvironment Variables: Use Bruno variables for credentialsand URLs to switch
environments.
● Pagination: Set page[size] (max 100) to manage responsesizes.
● Rate Limits: Respect 5 requests/second limit for projects.
● Security: Avoid hardcoding keys; use Bruno’s secretvariables.
● Version Control: Store collections in Git for collaboration.
Troubleshooting
● 01 Unauthorized: Verify headers and user permissions.
4
● 400 Bad Request: Check JSON syntax and required fields(e.g., type, id).
● 429 Too Many Requests: Slow requests to meet 5 req/seclimit.
● Null Response: Confirm user access; add to Full Accessteam if needed.
● Connection Errors: Ensure correct base_url and region.
For support, submit a case via Workday’s Customer Center or check Workday API Docs.
Task Details
etup
S reate "Production" environment with variables: api_key, user_token,
C
Environment user_email, base_url=https://api.us.workdayspend.com.
ET Project
G ethod: GET
M
Types URL: {{base_url}}/services/projects/v1/project_types
Response: List of project types.