Workday Strategic Sourcing Fields API (1.0)
Download OpenAPI specification:
We've provided detailed documentation below to guide you. However, if you need additional assistance, here's how you can get the support you need:
- Community Discussions: Join the conversation on our Workday Community Discussion Boards (found under the "Collaborate" section in community). Connect with other users, share best practices, and get answers to your configuration questions.
- Expert Configuration Assistance (Professional Services): For tailored, hands-on support with your specific project, our Professional Services team is available.
- Looking for personalized guidance? Workday Success Plan customers can submit an "Ask" for expert insights on configuration and best practices.
- Need custom solutions? Consider Expert Assist, our consulting service for detailed changes and project support.
- Reporting System Issues: If you suspect a problem with the Workday system itself, please connect with our dedicated support team. Your company's Named Support Contact (NSC) can log a Product Support Defect case. We'll review the issue based on its impact and Workday's service level agreement (SLA).
US Region
Environment | US region Base URI |
---|---|
Production | https://api.us.workdayspend.com/services/fields/v1 |
Sandbox | https://api.sandbox.us.workdayspend.com/services/fields/v1 |
EU Region
Environment | EU region Base URI |
---|---|
Production | https://api.eu.workdayspend.com/services/fields/v1 |
Sandbox | https://api.sandbox.eu.workdayspend.com/services/fields/v1 |
CA Region
Environment | CA region Base URI |
---|---|
Production | https://api.ca.workdayspend.com/services/fields/v1 |
Sandbox | https://api.sandbox.ca.workdayspend.com/services/fields/v1 |
The API conforms to the JSON API Specification.
The current version of this service is indicated by the X-Api-Version
header.
Sample version header: X-Api-Version: 1.0
.
Our API adheres to the ISO 8601 standard when accepting and formatting Date and Time fields. All Date and Time fields returned by this API will be in the UTC timezone.
Date and Time fields sent to this API can be in any timezone, provided they adhere to the ISO 8601 standard.
The Workday Strategic Sourcing API uses API keys to authenticate requests. Every request will require all 3 HTTP headers:
HTTP Header | Description |
---|---|
X-Api-Key | a company-wide API key |
X-User-Token | a user-specific API token |
X-User-Email | user email |
You can generate all of those from the API tokens section of your Profile page.
Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
Rate limit windows are per second and are shared by all API Keys for a company.
The rate limit is 5 requests per second.
When request submissions exceed the limits, the limit-exceeding requests return 429 Too Many Requests
error responses to the client.
Upon receiving a 429
response, it is recommended to retry the request in compliance with the rate limit. One example would be to add a sleep function for 1 second and retry.
Use the fields API to create, update, and query the custom fields groups in Workday Strategic Sourcing.
Custom field groups act as a collection of custom fields. Every newly made custom field
with requires a custom field group (except for the fields with target_object
set to RFP
).
type required | string (FieldGroupType) Object type, should always be |
id required | integer (FieldGroupId) Field group identifier string. |
object (FieldGroupAttributes) Field group attributes. |
{- "type": "field_groups",
- "id": 1,
- "attributes": {
- "target_object": "PROJECT",
- "name": "string",
- "position": 0
}
}
List Field Groups
Returns a list of field groups.
Authorizations:
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/fields/v1/field_groups"
Response samples
- 200
{- "data": [
- {
- "id": "1",
- "type": "field_groups",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Group One",
- "position": 1
},
}, - {
- "id": "2",
- "type": "field_groups",
- "attributes": {
- "target_object": "SUPPLIER_COMPANY",
- "name": "Group Two",
- "position": 2
},
}
],
}
Create a Field Group
Create a field group with given parameters.
Authorizations:
Request Body schema: application/vnd.api+json
object (FieldGroupCreate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "field_groups",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Custom Group"
}
}
}
Response samples
- 201
{- "data": {
- "id": "1",
- "type": "field_groups",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Custom Group",
- "position": null
},
}
}
Get a Field Group
Retrieves the details of an existing field group. You need to supply the unique field group identifier that was returned upon group creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique Field identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/fields/v1/field_groups/1"
Response samples
- 200
{- "data": {
- "id": "1",
- "type": "field_groups",
- "attributes": {
- "target_object": "PROJECT",
- "name": "My Field Group",
- "position": null
},
}
}
Update a Field Group
Updates the details of an existing field group. You need to supply the unique identifier that was returned upon field group creation.
Please note, that request body must include an id
attribute with the value of your field
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
id required | integer Example: 1 Unique Field Group identifier. |
Request Body schema: application/vnd.api+json
object (FieldGroupUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "id": "1",
- "type": "field_groups",
- "attributes": {
- "name": "Updated Field Group"
}
}
}
Response samples
- 200
- 409
{- "data": {
- "id": "1",
- "type": "field_groups",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Updated Field Group",
- "position": null
},
}
}
Delete a Field Group
Deletes a field group. You need to supply the unique field group identifier that was returned upon field group creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique Field Group identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ -X DELETE \ "https://api.us.workdayspend.com/services/fields/v1/field_groups/1"
Use the fields API to create, update, and query the custom fields in Workday Strategic Sourcing.
type required | string (FieldType) Object type, should always be |
id required | integer (FieldId) Field identifier string. |
object (FieldAttributes) Field attributes. | |
object (FieldRelationship) Field relationship. | |
object (ResourceLinks) List of related links. |
{- "type": "fields",
- "id": 1,
- "attributes": {
- "name": "string",
- "target_object": "PROJECT",
- "data_type": "string",
- "type_description": "Short Text",
- "position": 0,
- "required": true
}, - "relationships": {
- "group": {
- "data": {
- "type": "field_groups",
- "id": 1
}
}
}, - "links": {
- "self": "string"
}
}
List Fields
Returns a list of custom fields for the specified criteria.
Authorizations:
query Parameters
object (FieldInputFilter) Filter custom fields by multiple criteria. Only one filter per attribute is supported. For best performance, we recommend 5 or less filters. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/fields/v1/fields"
Response samples
- 200
{- "data": [
- {
- "id": "1",
- "type": "fields",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Field One",
- "data_type": "string",
- "type_description": "Short Text",
- "position": null,
- "required": false
}, - "relationships": {
- "group": {
- "data": {
- "id": "1",
- "type": "field_groups"
}
}
},
}, - {
- "id": "2",
- "type": "fields",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Field Two",
- "data_type": "string",
- "type_description": "Single Select",
- "position": null,
- "required": false
}, - "relationships": {
- "group": {
- "data": {
- "id": "1",
- "type": "field_groups"
}
}
},
}
],
}
Create a Field
Create a field with given parameters.
For fields with target_object
set to RFP
, group
relationship should be omitted. It is
required to specify the relationship for all other target objects.
Authorizations:
Request Body schema: application/vnd.api+json
object (FieldCreate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "fields",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Custom Field",
- "type_description": "Short Text",
- "required": false
}, - "relationships": {
- "group": {
- "data": {
- "type": "field_groups",
- "id": "1"
}
}
}
}
}
Response samples
- 201
{- "data": {
- "id": "1",
- "type": "fields",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Custom Field",
- "data_type": "string",
- "type_description": "Short Text",
- "position": null,
- "required": false
}, - "relationships": {
- "group": {
- "data": {
- "id": "1",
- "type": "field_groups"
}
}
},
}
}
Get a Field
Retrieves the details of an existing field. You need to supply the unique field identifier that was returned upon field creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique Field identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/fields/v1/fields/1"
Response samples
- 200
{- "data": {
- "id": "1",
- "type": "fields",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Field One",
- "data_type": "string",
- "type_description": "Short Text",
- "position": null,
- "required": false
}, - "relationships": {
- "group": {
- "data": {
- "id": "1",
- "type": "field_groups"
}
}
},
}
}
Update a Field
Updates the details of an existing field. You need to supply the unique identifier that was returned upon field creation.
For fields with target_object
set to RFP
, group
relationship should be omitted.
Please note, that request body must include an id
attribute with the value of your field
unique identifier (the same one you passed in the URL).
Authorizations:
path Parameters
id required | integer Example: 1 Unique Field identifier. |
Request Body schema: application/vnd.api+json
object (FieldUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "id": "1",
- "type": "fields",
- "attributes": {
- "name": "Updated Custom Field",
- "type_description": "Short Text",
- "required": true
}, - "relationships": {
- "group": {
- "data": {
- "id": "2",
- "type": "field_groups"
}
}
}
}
}
Response samples
- 200
- 409
{- "data": {
- "id": "1",
- "type": "fields",
- "attributes": {
- "target_object": "PROJECT",
- "name": "Updated Custom Field",
- "data_type": "string",
- "type_description": "Short Text",
- "position": null,
- "required": true
}, - "relationships": {
- "group": {
- "data": {
- "id": "2",
- "type": "field_groups"
}
}
},
}
}
Delete a Field
Deletes a field. You need to supply the unique field identifier that was returned upon field creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique Field identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ -X DELETE \ "https://api.us.workdayspend.com/services/fields/v1/fields/1"
Use the fields API to create, update, and query the custom fields options in Workday Strategic Sourcing. Custom field options exist for single select and multiple select field types.
type required | string (FieldOptionType) Object type, should always be |
id required | integer (FieldOptionId) Field identifier string. |
object (FieldOptionAttributes) Field attributes. |
{- "type": "fields",
- "id": 1,
- "attributes": {
- "label": "string",
- "position": 0
}
}
List Field Options
Returns a list of field options for the specified field.
Authorizations:
path Parameters
field_id required | integer Example: 1 Field identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ "https://api.us.workdayspend.com/services/fields/v1/fields/1/field_options"
Response samples
- 200
{- "data": [
- {
- "id": "1",
- "type": "field_options",
- "attributes": {
- "label": "Option One",
- "position": 1
}
}, - {
- "id": "2",
- "type": "field_options",
- "attributes": {
- "label": "Option Two",
- "position": 2
}
}
], - "links": { }
}
Create a Field Option
Create a field options with given parameters.
Authorizations:
Request Body schema: application/vnd.api+json
object (FieldOptionCreate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "type": "field_options",
- "attributes": {
- "label": "Field Option One"
}, - "relationships": {
- "field": {
- "data": {
- "type": "fields",
- "id": "1"
}
}
}
}
}
Response samples
- 201
{- "data": {
- "id": "1",
- "type": "field_options",
- "attributes": {
- "label": "Field Option One",
- "position": null
}
}
}
Update a Field Option
Update a field options with given parameters.
Authorizations:
path Parameters
id required | integer Example: 1 Unique Field Option identifier. |
Request Body schema: application/vnd.api+json
object (FieldOptionUpdate) |
Responses
Request samples
- Payload
- Curl
{- "data": {
- "id": "1",
- "type": "field_options",
- "attributes": {
- "label": "Updated Field Option"
}
}
}
Response samples
- 200
{- "data": {
- "id": "1",
- "type": "field_options",
- "attributes": {
- "label": "Updated Field Option",
- "position": 1
}
}
}
Delete a Field Option
Deletes a field option. You need to supply the unique field option identifier that was returned upon field creation.
Authorizations:
path Parameters
id required | integer Example: 1 Unique Field Option identifier. |
Responses
Request samples
- Curl
curl -H "X-Api-Key: ${COMPANY_KEY}" \ -H "X-User-Token: ${USER_TOKEN}" \ -H "X-User-Email: ${USER_EMAIL}" \ -H "Content-Type: application/vnd.api+json" \ -X DELETE \ "https://api.us.workdayspend.com/services/fields/v1/field_options/1"