Scout RFP (Workday Strategic Sourcing) projects API
Use the projects API to create, update, and query the projects in Workday Strategic Sourcing. ## Project Object
Use the projects API to create, update, and query the projects in Workday Strategic Sourcing. ## Project Object
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/scoutrfp-projects-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Workday Strategic Sourcing attachments Projects API
version: '1.0'
description: '<span id="section/Authentication/api_key" data-section-id="section/Authentication/api_key"></span>
<span id="section/Authentication/user_token" data-section-id="section/Authentication/user_token"></span>
<span id="section/Authentication/user_email" data-section-id="section/Authentication/user_email"></span>
'
servers:
- url: https://api.us.workdayspend.com/services/attachments/v1
description: Production Server
- url: https://api.sandbox.us.workdayspend.com/services/attachments/v1
description: Sandbox Server
security:
- api_key: []
user_token: []
user_email: []
tags:
- name: projects
x-displayName: Projects
description: 'Use the projects API to create, update, and query the projects in Workday Strategic Sourcing.
## Project Object
<SchemaDefinition schemaRef="#/components/schemas/Project" exampleRef="#/components/examples/Project" showReadOnly={true} showWriteOnly={true} />
'
paths:
/projects:
get:
tags:
- projects
description: Returns a list of projects for the specified criteria.
operationId: List Projects
summary: List Projects
parameters:
- name: filter
in: query
description: 'Filter projects by multiple criteria. Only one filter per attribute is supported.
For best performance, we recommend 5 or less filters.
'
schema:
$ref: '#/components/schemas/ProjectInputFilter'
- name: page
in: query
description: 'Customize pagination results with `size`.
'
schema:
$ref: '#/components/schemas/PageInput'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
allOf:
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Project'
- $ref: '#/components/schemas/Pagination'
examples:
success:
$ref: '#/components/examples/index_response'
'401':
description: Unauthorized
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects\"\n"
post:
tags:
- projects
description: 'Create a project with given attributes.
'
operationId: Create a Project
summary: Create a Project
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ProjectCreate'
examples:
success:
$ref: '#/components/examples/create_request'
compound document:
$ref: '#/components/examples/create_compound_request'
responses:
'201':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Project'
examples:
success:
$ref: '#/components/examples/create_response'
'401':
description: Unauthorized
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X POST \\\n -d '{\"data\":{\"type\":\"projects\",\"attributes\":{\"title\":\"My Project\"}}}' \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects\"\n"
/projects/{id}:
get:
tags:
- projects
description: 'Retrieves the details of an existing project. You need to supply the unique project
identifier that was returned upon project creation.
'
operationId: Get a Project
summary: Get a Project
parameters:
- name: id
in: path
description: Unique Project identifier.
required: true
schema:
type: integer
example: 1
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Project'
examples:
success:
$ref: '#/components/examples/show_response'
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects/1\"\n"
patch:
tags:
- projects
description: 'Updates the details of an existing project. You need to supply the unique supplier
project that was returned upon project creation.
Please note, that request body must include an `id` attribute with the value of your project
unique identifier (the same one you passed in the URL).
'
operationId: Update a Project
summary: Update a Project
parameters:
- name: id
in: path
description: Unique Project identifier.
required: true
schema:
type: integer
example: 1
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ProjectUpdate'
examples:
success:
$ref: '#/components/examples/update_request'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Project'
examples:
success:
$ref: '#/components/examples/update_response'
'401':
description: Unauthorized
'404':
description: Not Found
'409':
description: Conflict
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
examples:
invalid_type:
summary: Missing or invalid 'type' specified, expected 'projects'
description: 'Returns error due to invalid `type` parameter.
'
value:
errors:
- detail: Missing or invalid 'type' specified, expected 'projects'
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X PATCH \\\n -d '{\"data\":{\"type\":\"projects\",\"id\":\"1\",\"attributes\":{\"segmentation_status\": \"out_of_compliance\"}}}' \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects/1\"\n"
delete:
tags:
- projects
description: 'Deletes a project. You need to supply the unique project
identifier that was returned upon project creation.
'
operationId: Delete a Project
summary: Delete a Project
parameters:
- name: id
in: path
description: Unique Project identifier.
required: true
schema:
type: integer
example: 1
responses:
'204':
description: OK
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X DELETE \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects/1\"\n"
/projects/{external_id}/external_id:
get:
tags:
- projects
description: 'Retrieves the details of an existing project. You need to supply the unique
project external identifier (the one you used when created the project).
'
operationId: Get a Project by External ID
summary: Get a Project by External ID
parameters:
- name: external_id
in: path
description: Project external identifier.
required: true
schema:
type: string
example: 1234-5678-abcd-efgh
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Project'
examples:
success:
$ref: '#/components/examples/external_show_response'
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects/SUP-1234/external_id\"\n"
patch:
tags:
- projects
description: 'Updates the details of an existing project. You need to supply the unique project
external identifier (the one you used when created the project).
Please note, that request body must include an `id` attribute with the value of your project
external identifier (the same one you passed in the URL).
'
operationId: Update a Project by External ID
summary: Update a Project by External ID
parameters:
- name: external_id
in: path
description: Project external identifier.
required: true
schema:
type: string
example: 1234-5678-abcd-efgh
requestBody:
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ProjectUpdate'
examples:
success:
$ref: '#/components/examples/external_update_request'
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Project'
examples:
success:
$ref: '#/components/examples/external_update_response'
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X PATCH \\\n -d '{\"data\":{\"type\":\"projects\",\"id\":\"SUP-1234\",attributes\":{\"segmentation_status\": \"out_of_compliance\"}}}' \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects/SUP-1234/external_id\"\n"
delete:
tags:
- projects
description: 'Deletes a project. You need to supply the unique project
external identifier (the one you used when created the project).
'
operationId: Delete a Project by External ID
summary: Delete a Project by External ID
parameters:
- name: external_id
in: path
description: Project external identifier.
required: true
schema:
type: string
example: 1234-5678-abcd-efgh
responses:
'204':
description: OK
'401':
description: Unauthorized
'404':
description: Not Found
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n -X DELETE \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects/SUP-1234/external_id\"\n"
/projects/describe:
get:
tags:
- projects
description: Returns a list of fields for the project object.
operationId: Describe Project object
summary: Describe Project object
responses:
'200':
description: OK
content:
application/vnd.api+json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProjectFieldModel'
examples:
success:
$ref: '#/components/examples/describe_response'
'401':
description: Unauthorized
x-codeSamples:
- label: Curl
source: "curl -H \"X-Api-Key: ${COMPANY_KEY}\" \\\n -H \"X-User-Token: ${USER_TOKEN}\" \\\n -H \"X-User-Email: ${USER_EMAIL}\" \\\n -H \"Content-Type: application/vnd.api+json\" \\\n \"https://api.us.workdayspend.com/services/projects/v1/projects/describe\"\n"
components:
schemas:
StakeholderMetaEmailLookup:
title: Stakeholder Meta by Email
type: object
required:
- meta
properties:
meta:
type: object
description: Search for a stakeholder by email.
required:
- email
properties:
email:
$ref: '#/components/schemas/StakeholderEmail'
Error:
type: object
properties:
detail:
type: string
description: A human-readable explanation specific to this occurrence of the problem.
PageInput:
type: object
properties:
size:
type: number
format: integer
description: The number of results returned per page. Default is `10` and max is `100`.
example: '25'
Errors:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
CustomFieldDecimal:
title: Decimal
allOf:
- $ref: '#/components/schemas/CustomFieldBase'
- type: object
properties:
value:
type: string
format: decimal
description: A decimal value represented as a number with floating point.
ProjectAttributes:
type: object
description: Project attributes.
required:
- title
properties:
title:
type: string
maxLength: 255
description: Project title.
description:
type: string
description: Project description.
state:
$ref: '#/components/schemas/ProjectState'
state_label:
type: string
description: Customer-specific project state label.
number:
type: integer
readOnly: true
description: Project number, generated sequentially.
external_id:
type: string
description: Customer provided unique project identifier.
target_start_date:
type: string
format: date
description: Target start date.
target_end_date:
type: string
format: date
description: Target end date.
actual_start_date:
type: string
format: date
description: Project start date.
actual_end_date:
type: string
format: date
description: Project end date.
estimated_savings_amount:
type: number
format: double
description: Estimated savings amount.
estimated_spend_amount:
type: number
format: double
description: Estimated spend amount.
actual_spend_amount:
type: number
format: double
description: Actual spend amount.
approved_spend_amount:
type: number
format: double
description: Approved spend amount.
canceled_note:
type: string
description: Cancelation note.
canceled_reason:
type: string
description: Cancelation reason.
marked_as_needs_attention_at:
type: string
format: date-time
description: Date and time when the project was flagged as needs attention.
needs_attention:
type: boolean
description: Identifies whether the project needs attention.
needs_attention_note:
type: string
description: Additional notes on why the project needs attention.
needs_attention_reason:
type: string
description: The reason why the project needs attention.
on_hold_note:
type: string
description: Notes for the on-hold status.
on_hold_reason:
type: string
description: Reasons for the project moved to on-hold.
updated_at:
type: string
format: date-time
readOnly: true
description: Last modification date.
example: '2019-10-29T21:28:46.790Z'
custom_fields:
type: array
items:
$ref: '#/components/schemas/CustomField'
description: 'Custom field values. Note: custom fields of type File can only be accessed through the user interface, they will be only exposed as `null` in the public API.'
approved_at:
type: string
format: date-time
description: Date and time when the project was approved.
readOnly: true
approval_rounds:
type: integer
description: Times project has been sent for approval.
example: 1
first_sent_for_approval_at:
type: string
format: date-time
description: Date and time when project was sent for approval for first time.
readOnly: true
sent_for_approval_at:
type: string
format: date-time
description: Date and time when the project was sent for approval.
AttachmentId:
type: integer
description: Attachment identifier string.
example: 1
DescribeFieldModel:
allOf:
- $ref: '#/components/schemas/DescribeFieldBase'
- type: object
properties:
attributes:
$ref: '#/components/schemas/DescribeFieldAttributes'
DescribeFieldId:
type: string
description: Field identifier string.
example: field_name
StakeholderType:
type: string
description: Object type, should always be `stakeholders`.
example: stakeholders
ProjectTypeBase:
title: ProjectType
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ProjectTypeType'
id:
$ref: '#/components/schemas/ProjectTypeId'
DescribeFieldAttributes:
type: object
description: Describe field attributes.
properties:
name:
type: string
maxLength: 255
description: Describe field name.
example: field_name
data_type:
$ref: '#/components/schemas/OpenApiEnum'
type_description:
$ref: '#/components/schemas/CustomFieldEnum'
custom_field:
type: boolean
description: Flag for determining if this is a user created custom field or an internal system field.
example: false
ProjectRequestRelationship:
type: object
description: Project relationship.
properties:
owner:
$ref: '#/components/schemas/StakeholderLookup'
requester:
$ref: '#/components/schemas/StakeholderLookup'
ProjectRelationship:
type: object
description: Project relationships.
properties:
attachments:
type: array
items:
$ref: '#/components/schemas/AttachmentBase'
creator:
type: object
description: Project creator is set based on API keys.
properties:
data:
$ref: '#/components/schemas/StakeholderBase'
requester:
type: object
description: Project requester.
properties:
data:
$ref: '#/components/schemas/StakeholderBase'
owner:
type: object
description: Project owner.
properties:
data:
$ref: '#/components/schemas/StakeholderBase'
project_type:
type: object
properties:
data:
$ref: '#/components/schemas/ProjectTypeBase'
CustomFieldBase:
type: object
properties:
name:
type: string
description: Custom field name.
example: My Custom Field
CustomFieldRelated:
title: Related
allOf:
- $ref: '#/components/schemas/CustomFieldBase'
- type: object
properties:
value:
type: string
description: A value related to the lookup custom field value, retrieved from the same data source object.
CustomFieldCurrency:
title: Currency
allOf:
- $ref: '#/components/schemas/CustomFieldBase'
- type: object
properties:
value:
format: integer
description: A currency value represented as an integer. The maximum value is 9,007,199,254,740,991.
CustomFieldSingleSelect:
title: Single Select
allOf:
- $ref: '#/components/schemas/CustomFieldBase'
- type: object
properties:
value:
type: string
description: A single value from a predefined list of possible options.
StakeholderMetaIdLookup:
title: Stakeholder Meta by ID
type: object
required:
- meta
properties:
meta:
type: object
description: Search for a stakeholder by ID.
required:
- id
properties:
id:
$ref: '#/components/schemas/StakeholderId'
PrevPageLink:
type: object
properties:
prev:
type:
- string
- 'null'
format: url
description: Link to the previous results page.
deprecated: true
CustomFieldInteger:
title: Integer
allOf:
- $ref: '#/components/schemas/CustomFieldBase'
- type: object
properties:
value:
type: integer
description: An integer value. The maximum value is 9,007,199,254,740,991.
DescribeFieldType:
type: string
description: Object type, should always be `describe_fields`.
example: describe_fields
CustomFieldURL:
title: URL
allOf:
- $ref: '#/components/schemas/CustomFieldBase'
- type: object
properties:
value:
type: string
format: url
description: URL string.
OpenApiEnum:
type: string
enum:
- string
- number
- integer
- boolean
- array
- object
description: OpenAPI data type.
example: string
ResourceLinks:
type: object
description: List of related links.
allOf:
- $ref: '#/components/schemas/SelfLink'
CustomField:
oneOf:
- $ref: '#/components/schemas/CustomFieldCheckbox'
- $ref: '#/components/schemas/CustomFieldShortText'
- $ref: '#/components/schemas/CustomFieldParagraph'
- $ref: '#/components/schemas/CustomFieldDate'
- $ref: '#/components/schemas/CustomFieldInteger'
- $ref: '#/components/schemas/CustomFieldCurrency'
- $ref: '#/components/schemas/CustomFieldDecimal'
- $ref: '#/components/schemas/CustomFieldSingleSelect'
- $ref: '#/components/schemas/CustomFieldMultipleSelect'
- $ref: '#/components/schemas/CustomFieldURL'
- $ref: '#/components/schemas/CustomFieldLookup'
- $ref: '#/components/schemas/CustomFieldRelated'
StakeholderBaseData:
title: Stakeholder Data
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/StakeholderBase'
DescribeFieldBase:
title: DescribeFieldModel
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/DescribeFieldType'
id:
$ref: '#/components/schemas/DescribeFieldId'
ProjectTypeId:
type: integer
description: Project type identifier string.
example: 1
Pagination:
type: object
properties:
meta:
type: object
description: Result set metadata.
properties:
count:
type: integer
description: Number of pages in the result set.
links:
$ref: '#/components/schemas/PaginationLinks'
StakeholderId:
type: integer
description: Stakeholder identifier string.
example: 1
AttachmentType:
type: string
description: Object type, should always be `attachments`.
example: attachments
StakeholderEmail:
type: string
format: email
description: Stakeholder's email.
example: stakeholder.email@example.com
ProjectBase:
title: Project
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ProjectType'
id:
$ref: '#/components/schemas/ProjectId'
ProjectCreate:
type: object
required:
- type
properties:
type:
$ref: '#/components/schemas/ProjectType'
attributes:
$ref: '#/components/schemas/ProjectAttributes'
relationships:
$ref: '#/components/schemas/ProjectRequestRelationship'
CustomFieldParagraph:
title: Paragraph
allOf:
- $ref: '#/components/schemas/CustomFieldBase'
- type: object
properties:
value:
type: string
description: A longer text paragraph.
CustomFieldCheckbox:
title: Checkbox
allOf:
- $ref: '#/components/schemas/CustomFieldBase'
- type: object
properties:
value:
type: boolean
example: true
ProjectType:
type: string
description: Object type, should always be `projects`.
example: projects
ProjectTypeType:
type: string
description: Object type, should always be `project_types`.
example: project_types
ProjectInputFilter:
type: object
properties:
updated_at_from:
type: string
format: date-time
description: Return projects updated on or after the specified timestamp.
example: '2019-10-29T21:28:46.790Z'
updated_at_to:
type: string
format: date-time
description: Return projects updated on or before the specified timestamp.
example: '2019-10-29T21:28:46.790Z'
number_from:
type: string
format: integer
description: Find projects with the number equal or greater than the specified one.
number_to:
type: string
format: integer
description: Find projects with the number equal or smaller than the specified one.
title_contains:
type: string
description: Return projects with title containing the specified string.
title_not_contains:
type: string
description: Return projects with title not containing the specified string.
description_contains:
type: string
description: Return projects with description containing the specified string.
description_not_contains:
type: string
description: Return projects with description not containing the specified string.
external_id_empty:
type: boolean
description: Return projects with `external_id` blank.
example: true
external_id_not_empty:
type: boolean
description: Return projects with non-blank `external_id`.
example: false
external_id_equals:
type: string
description: Find projects by a specific external ID.
example: SUP-123
external_id_not_equals:
type: string
description: Find projects excluding the one with the specified external ID.
example: SUP-123
actual_start_date_from:
type: string
format: date
description: Return projects started on or after the specified date.
actual_start_date_to:
type: string
format: date
description: Return projects started on or before the specified date.
actual_end_date_from:
type: string
format: date
description: Return projects ended on or after the specified date.
actual_end_date_to:
type: string
format: date
description: Return projects ended on or before the specified date.
target_start_date_from:
type: string
format: date
description: Return projects targeted to start on or after the specified date.
target_start_date_to:
type: string
format: date
description: Return projects targeted to start on or before the specified date.
target_end_date_from:
type: string
format: date
description: Return projects targeted to end on or after the specified date.
target_end_date_to:
type: string
format: date
description: Return projects targeted to end on or before the specified date.
actual_spend_amount_from:
type: number
format: double
description: Return projects with actual spend amount equal or greater than the specified amount.
actual_spend_amount_to:
type: number
format: double
description: Return projects with actual spend amount equal or smaller than the specified amount.
approved_spend_amount_from:
type: number
format: double
description: Return projects with approved spend amount equal or greater than the specified amount.
approved_spend_amount_to:
type: number
format: double
description: Return projects with approved spend amount equal or smaller than the specified amount.
estimated_savings_amount_from:
type: number
format: double
description: Return projects with estimated savings amount equal or greater than the specified amount.
estimated_savings_amount_to:
type: number
format: double
description: Return projects with estimated savings amount equal or smaller than the specified amount.
estimated_spend_amount_from:
type: number
format: double
description: Return projects with estimated spend amount equal or greater than the specified amount.
estimated_spend_amount_to:
type: number
format: double
description: Return projects with estimated spend amount equal or smaller than the specified amount.
canceled_note_contains:
type: strin
# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/scoutrfp/refs/heads/main/openapi/scoutrfp-projects-api-openapi.yml