Workday Strategic Sourcing Fields API (1.0)

Download OpenAPI specification:

Customer Support

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).

API Specification

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.

Date and Time Fields

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.

Authentication

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 Limiting

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.

Field Groups

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).

Field Group Object

type
required
string (FieldGroupType)

Object type, should always be field_groups.

id
required
integer (FieldGroupId)

Field group identifier string.

object (FieldGroupAttributes)

Field group attributes.

{
  • "type": "field_groups",
  • "id": 1,
  • "attributes": {
    }
}

List Field Groups

Returns a list of field groups.

Authorizations:
(api_keyuser_tokenuser_email)

Responses

Request samples

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

Content type
application/vnd.api+json
{}

Create a Field Group

Create a field group with given parameters.

Authorizations:
(api_keyuser_tokenuser_email)
Request Body schema: application/vnd.api+json
object (FieldGroupCreate)

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{}

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:
(api_keyuser_tokenuser_email)
path Parameters
id
required
integer
Example: 1

Unique Field identifier.

Responses

Request samples

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

Content type
application/vnd.api+json
{}

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:
(api_keyuser_tokenuser_email)
path Parameters
id
required
integer
Example: 1

Unique Field Group identifier.

Request Body schema: application/vnd.api+json
object (FieldGroupUpdate)

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{}

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:
(api_keyuser_tokenuser_email)
path Parameters
id
required
integer
Example: 1

Unique Field Group identifier.

Responses

Request samples

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"

Fields

Use the fields API to create, update, and query the custom fields in Workday Strategic Sourcing.

Field Object

type
required
string (FieldType)

Object type, should always be fields.

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": {
    },
  • "relationships": {
    },
  • "links": {
    }
}

List Fields

Returns a list of custom fields for the specified criteria.

Authorizations:
(api_keyuser_tokenuser_email)
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 -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

Content type
application/vnd.api+json
{}

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:
(api_keyuser_tokenuser_email)
Request Body schema: application/vnd.api+json
object (FieldCreate)

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

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:
(api_keyuser_tokenuser_email)
path Parameters
id
required
integer
Example: 1

Unique Field identifier.

Responses

Request samples

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

Content type
application/vnd.api+json
{
  • "data": {
    }
}

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:
(api_keyuser_tokenuser_email)
path Parameters
id
required
integer
Example: 1

Unique Field identifier.

Request Body schema: application/vnd.api+json
object (FieldUpdate)

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Delete a Field

Deletes a field. You need to supply the unique field identifier that was returned upon field creation.

Authorizations:
(api_keyuser_tokenuser_email)
path Parameters
id
required
integer
Example: 1

Unique Field identifier.

Responses

Request samples

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"

Field Options

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.

Field Option Object

type
required
string (FieldOptionType)

Object type, should always be fields.

id
required
integer (FieldOptionId)

Field identifier string.

object (FieldOptionAttributes)

Field attributes.

{
  • "type": "fields",
  • "id": 1,
  • "attributes": {
    }
}

List Field Options

Returns a list of field options for the specified field.

Authorizations:
(api_keyuser_tokenuser_email)
path Parameters
field_id
required
integer
Example: 1

Field identifier.

Responses

Request samples

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

Content type
application/vnd.api+json
{
  • "data": [
    ],
  • "links": { }
}

Create a Field Option

Create a field options with given parameters.

Authorizations:
(api_keyuser_tokenuser_email)
Request Body schema: application/vnd.api+json
object (FieldOptionCreate)

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Update a Field Option

Update a field options with given parameters.

Authorizations:
(api_keyuser_tokenuser_email)
path Parameters
id
required
integer
Example: 1

Unique Field Option identifier.

Request Body schema: application/vnd.api+json
object (FieldOptionUpdate)

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Delete a Field Option

Deletes a field option. You need to supply the unique field option identifier that was returned upon field creation.

Authorizations:
(api_keyuser_tokenuser_email)
path Parameters
id
required
integer
Example: 1

Unique Field Option identifier.

Responses

Request samples

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"