All pages
Powered by GitBook
1 of 11

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Delete product

Delete a product.

Update product settings

Update a product’s setting.

Get product

Get a single product by ID.

Publish product

Publish a product.

List products

Get a list of products.

Create product

Create a new product.

Update product

Update some properties of a product.

Unpublish product

Unpublish a product.

Product

The Product object represents a collection of items and their relevant parameters curated into a cohesive group for business purposes. Defined by vendors, products are accessible through listings, providing a structured framework for transactional activities.

This object contains the following attributes:

Field
Type
Description

id

This object contains the following attributes:

Field
Type
Description

This object contains the following attributes:

Field
Type
Description

This object contains the following attributes:

Field
Type
Description

This object contains the following attributes:

Field
Type
Description

This object contains the following attributes:

Field
Type
Description

This object contains the following attributes:

Field
Type
Description

orderQueueChanges

boolean

Enables notifications of changes in the order queue.

sendCostToErp

boolean

Allows cost price values to pass through to final billing.

productRequests

object

(Optional) Represents the object, which defines the settings for the product requests page.

preValidation

object

Represents the object, which contains settings used during the pre‑validation phase of the purchase process.

splitBilling

object

Represents the object.

subscriptionCessation

object

Represents the object, which contains settings related to product cessation.

label

string

The label on the product listing card.

agreements

integer

(Read-only) Number of agreements signed with the product.

subscriptions

integer

(Read-only) Number of existing subscriptions to the product.

requests

integer

(Read-only) Number of requests related to the product.

changeOrderDraft

boolean

Validates change order during the creation and before the order is submitted.

terminationOrder

boolean

Validates termination orders during the creation and before the order is submitted.

productRequest

boolean

Validates the product request form while the client is filling in information and before the form is submitted.

string, core

(Read-only) The identifier for the product.

name

string, core

The name of the product.

shortDescription

string

A short description of the product.

longDescription

string

A long description of the product.

website

string

The URL for the product website.

icon

string, core

A logo of the product.

externalIds

object, core

Represents the externalIds object.

vendor

object

Represents the vendor account object.

status

string, core

Represents the product status. Allowed values are:

  • Draft

  • Pending

  • Published

  • Unpublished

settings

object

Represents the productSettings object.

Activate item selection validation:

Used in the “Purchase wizard” to validate vendor-specific compatibility of selected items, before the order is submitted.

Activate validation of change orders in a draft state

Used to validate vendor-specific rules on a change order within the Purchase wizard (via existing agreement) and the Subscription edit screen

Activate validation of product requests in a draft state

Used to perform vendor-specific validation on the product’s request form before form submission.

Activate validation of purchase orders in a draft state

Used to perform vendor-specific validation of purchase order within the “Purchase wizard”

Activate validation of purchase orders in a querying state

Used to perform vendor-specific validation when client is responding to a purchase order where vendor has requested additional information from the client.

Activate validation of termination order in a draft state

Used to perform vendor-specific validation when client initiates termination order on an agreement or subscription.

Example:

statistics

object

(Read-only) Represents the productStatistics object.

audit

object

(Read-only) Represents the audit object.

productOrdering

boolean

Displays the Buy button, enabling clients to place an order.

itemSelection

boolean

enabled

boolean

Displays a request button on the product card, enabling clients to request more information about a product.

name

string

items

integer

(Read-only) Number of items assigned to the product.

orders

integer

enabled

boolean

Displays the split‑billing button in the dropdown, allowing clients and operations teams to enable split billing for this product.

type

string

enabled

boolean

Specifies whether the product cessation functionality is enabled for this product.

mode

string

purchaseOrderDraft

boolean

Validates purchase order during the creation and before the order is submitted.

purchaseOrderQuerying

boolean

PRODUCT OBJECT
{
  "id": "PRD-1234-1234",  
  "name": "Microsoft 365 online services for commercial",
  "shortDescription": "Microsoft 365 and Office 365 are cloud-based productivity suites that offer a range of applications and services to help businesses of all sizes work more efficiently. These plans combine the familiar Microsoft Office desktop suite with cloud-based versions of Microsoft’s next-generation communications and collaboration services to help users be productive from virtually anywhere through the Internet.",
  "longDescription": "<p>Microsoft 365 and Office 365 are cloud-based productivity suites that offer a range of applications and services to help businesses of all sizes work more efficiently. These plans combine the familiar Microsoft Office desktop suite with cloud-based versions of Microsoft's next-generation communications and collaboration services (including Office for the web, Microsoft Exchange Online, Microsoft Teams, and Microsoft SharePoint Online) to help users be productive from virtually anywhere through the Internet. Microsoft 365 and Office 365 are available in a variety of plans to best meet the needs of your organization. For detailed plan information on subscriptions that enable users for the Microsoft 365 and Office 365 platforms, see the full subscription comparison table.</p>",
  "website": "https://www.microsoft.com",
  "icon": "/static/PRD-1234-1234/logo.png"
  "vendor": {
      "id": "ACC-1234-1234"
  },
  "state": "Published",
  "settings":{
    "productOrdering": true,
    "productRequests": {
      "enabled": true,
      "name": "Contact us about Microsoft 365 Online Services",
      "label": "Contact us."
    },
    "itemSelection": false,
    "orderQueueChanges": false,
    "preValidation": {
      "purchaseOrderDraft": false,
      "purchaseOrderQuerying": false,
      "changeOrderDraft": false,
      "terminationOrder": false,
      "productRequest": false
    }
  },
  "statistics": {
    "item": 100,
    "orders": 123,
    "agreement": 1,
    "subscription": 20
  }
}

Product Settings object

Product Request Settings object

Product Statistics object

Split Billing Settings object

Subscription Cessation Settings object

Pre-Validation Settings object

Example

Validates the compatibility of selected product items within the purchase order.

The product name, which appears as a title within the request wizard.

(Read-only) Number of orders placed for the product.

Defines the type of split billing. Allowed values are orderBased or percentageBased.

Specifies the cessation mode. Allowed values are:

  • Termination

  • Auto-renewal

  • Termination or Auto-renewal

Validates purchase orders when the client is requested to provide more information to the vendor on that order.

productRequestSettings
productStatistics
splitBillingSettings
subscriptionCessationSettings
{
  "productOrdering": true,
  "productRequests": {
    "enabled": true,
    "title": "Contact us about Microsoft 365 Online Services",
    "label": "Contact us"
  },
  "itemSelection": false,
  "orderQueueChanges": false,
  "preValidation": {
    "purchaseOrderDraft": false,
    "purchaseOrderQuerying": false,
    "changeOrderDraft": false,
    "terminationOrder": false,
    "productRequest": false
  }
} 

State diagram

The following diagram shows the possible states of a product and the transitions between those states in the Marketplace Platform:

The state transition diagram of a product.
State
Definition

Draft

The product is being created by the vendor. It is not yet available in the marketplace for ordering.

Deleted

The draft product has been deleted.

Published

The product is available for buying through the marketplace.

Unpublished

The product is no longer available in the marketplace.

delete
Path parameters
idstringRequired
Responses
204

No Content

No content

403

Forbidden

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
404

Not Found

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
500

Internal Server Error

No content

delete/public/v1/catalog/products/{id}
DELETE /public/v1/catalog/products/{id} HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*

No content

put
Path parameters
idstringRequired
Body
productOrderingboolean · nullableOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionboolean · nullableOptional
orderQueueChangesboolean · nullableOptional
purchaseOrderDraftboolean · nullableOptional
purchaseOrderQueryingboolean · nullableOptional
changeOrderDraftboolean · nullableOptional
configurationOrderDraftboolean · nullableOptional
terminationOrderboolean · nullableOptional
enabledbooleanOptional
typestring · enum · nullableOptionalPossible values:
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
Responses
200

OK

application/json
idstringOptional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
omittedstring[]Optional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
statusstringOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
productOrderingbooleanOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionbooleanOptional
orderQueueChangesbooleanOptional
purchaseOrderDraftbooleanOptional
purchaseOrderQueryingbooleanOptional
changeOrderDraftbooleanOptional
configurationOrderDraftbooleanOptional
terminationOrderbooleanOptional
enabledbooleanOptional
typestring · nullableOptional
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
itemCountinteger · int32Optional
ordersPlacedCountinteger · int32Optional
agreementCountinteger · int32Optional
subscriptionCountinteger · int32Optional
400

Bad Request

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
403

Forbidden

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
500

Internal Server Error

No content

put/public/v1/catalog/products/{id}/settings
PUT /public/v1/catalog/products/{id}/settings HTTP/1.1
Host: api.platform.softwareone.com
Content-Type: application/json
Accept: */*
Content-Length: 421

{
  "productOrdering": true,
  "productRequests": {
    "enabled": true,
    "name": "text",
    "label": "text"
  },
  "itemSelection": true,
  "orderQueueChanges": true,
  "preValidation": {
    "purchaseOrderDraft": true,
    "purchaseOrderQuerying": true,
    "changeOrderDraft": true,
    "configurationOrderDraft": true,
    "terminationOrder": true
  },
  "splitBilling": {
    "enabled": true,
    "type": "OrderBased"
  },
  "sendCostToErp": true,
  "subscriptionCessation": {
    "enabled": true,
    "mode": "Termination"
  }
}
{
  "id": "text",
  "audit": {
    "created": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "updated": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "published": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "pending": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "unpublished": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    }
  },
  "$meta": {
    "omitted": [
      "text"
    ]
  },
  "name": "text",
  "icon": "text",
  "revision": 1,
  "shortDescription": "text",
  "longDescription": "text",
  "externalIds": {
    "operations": "text",
    "defaultErpItem": "text"
  },
  "website": "text",
  "status": "text",
  "vendor": {
    "id": "text",
    "name": "text",
    "icon": "text",
    "revision": 1,
    "type": "Client",
    "status": "Active"
  },
  "settings": {
    "productOrdering": true,
    "productRequests": {
      "enabled": true,
      "name": "text",
      "label": "text"
    },
    "itemSelection": true,
    "orderQueueChanges": true,
    "preValidation": {
      "purchaseOrderDraft": true,
      "purchaseOrderQuerying": true,
      "changeOrderDraft": true,
      "configurationOrderDraft": true,
      "terminationOrder": true
    },
    "splitBilling": {
      "enabled": true,
      "type": "text"
    },
    "sendCostToErp": true,
    "subscriptionCessation": {
      "enabled": true,
      "mode": "Termination"
    }
  },
  "statistics": {
    "itemCount": 1,
    "ordersPlacedCount": 1,
    "agreementCount": 1,
    "subscriptionCount": 1
  }
}
get
Path parameters
idstringRequired
Query parameters
selectstringOptional
Responses
200

OK

application/json
idstringOptional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
omittedstring[]Optional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
statusstringOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
productOrderingbooleanOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionbooleanOptional
orderQueueChangesbooleanOptional
purchaseOrderDraftbooleanOptional
purchaseOrderQueryingbooleanOptional
changeOrderDraftbooleanOptional
configurationOrderDraftbooleanOptional
terminationOrderbooleanOptional
enabledbooleanOptional
typestring · nullableOptional
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
itemCountinteger · int32Optional
ordersPlacedCountinteger · int32Optional
agreementCountinteger · int32Optional
subscriptionCountinteger · int32Optional
404

Not Found

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
get/public/v1/catalog/products/{id}
GET /public/v1/catalog/products/{id} HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
{
  "id": "text",
  "audit": {
    "created": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "updated": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "published": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "pending": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "unpublished": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    }
  },
  "$meta": {
    "omitted": [
      "text"
    ]
  },
  "name": "text",
  "icon": "text",
  "revision": 1,
  "shortDescription": "text",
  "longDescription": "text",
  "externalIds": {
    "operations": "text",
    "defaultErpItem": "text"
  },
  "website": "text",
  "status": "text",
  "vendor": {
    "id": "text",
    "name": "text",
    "icon": "text",
    "revision": 1,
    "type": "Client",
    "status": "Active"
  },
  "settings": {
    "productOrdering": true,
    "productRequests": {
      "enabled": true,
      "name": "text",
      "label": "text"
    },
    "itemSelection": true,
    "orderQueueChanges": true,
    "preValidation": {
      "purchaseOrderDraft": true,
      "purchaseOrderQuerying": true,
      "changeOrderDraft": true,
      "configurationOrderDraft": true,
      "terminationOrder": true
    },
    "splitBilling": {
      "enabled": true,
      "type": "text"
    },
    "sendCostToErp": true,
    "subscriptionCessation": {
      "enabled": true,
      "mode": "Termination"
    }
  },
  "statistics": {
    "itemCount": 1,
    "ordersPlacedCount": 1,
    "agreementCount": 1,
    "subscriptionCount": 1
  }
}
post
Path parameters
idstringRequired
Responses
200

OK

application/json
idstringOptional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
omittedstring[]Optional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
statusstringOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
productOrderingbooleanOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionbooleanOptional
orderQueueChangesbooleanOptional
purchaseOrderDraftbooleanOptional
purchaseOrderQueryingbooleanOptional
changeOrderDraftbooleanOptional
configurationOrderDraftbooleanOptional
terminationOrderbooleanOptional
enabledbooleanOptional
typestring · nullableOptional
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
itemCountinteger · int32Optional
ordersPlacedCountinteger · int32Optional
agreementCountinteger · int32Optional
subscriptionCountinteger · int32Optional
400

Bad Request

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
403

Forbidden

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
404

Not Found

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
500

Internal Server Error

No content

post/public/v1/catalog/products/{id}/publish
POST /public/v1/catalog/products/{id}/publish HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
{
  "id": "text",
  "audit": {
    "created": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "updated": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "published": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "pending": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "unpublished": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    }
  },
  "$meta": {
    "omitted": [
      "text"
    ]
  },
  "name": "text",
  "icon": "text",
  "revision": 1,
  "shortDescription": "text",
  "longDescription": "text",
  "externalIds": {
    "operations": "text",
    "defaultErpItem": "text"
  },
  "website": "text",
  "status": "text",
  "vendor": {
    "id": "text",
    "name": "text",
    "icon": "text",
    "revision": 1,
    "type": "Client",
    "status": "Active"
  },
  "settings": {
    "productOrdering": true,
    "productRequests": {
      "enabled": true,
      "name": "text",
      "label": "text"
    },
    "itemSelection": true,
    "orderQueueChanges": true,
    "preValidation": {
      "purchaseOrderDraft": true,
      "purchaseOrderQuerying": true,
      "changeOrderDraft": true,
      "configurationOrderDraft": true,
      "terminationOrder": true
    },
    "splitBilling": {
      "enabled": true,
      "type": "text"
    },
    "sendCostToErp": true,
    "subscriptionCessation": {
      "enabled": true,
      "mode": "Termination"
    }
  },
  "statistics": {
    "itemCount": 1,
    "ordersPlacedCount": 1,
    "agreementCount": 1,
    "subscriptionCount": 1
  }
}
get
Responses
200

OK

application/json
offsetinteger · int32Optional
limitinteger · int32Optional
totalinteger · int32 · nullableOptional
omittedstring[]Optional
idstringOptional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
omittedstring[]Optional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
statusstringOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
productOrderingbooleanOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionbooleanOptional
orderQueueChangesbooleanOptional
purchaseOrderDraftbooleanOptional
purchaseOrderQueryingbooleanOptional
changeOrderDraftbooleanOptional
configurationOrderDraftbooleanOptional
terminationOrderbooleanOptional
enabledbooleanOptional
typestring · nullableOptional
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
itemCountinteger · int32Optional
ordersPlacedCountinteger · int32Optional
agreementCountinteger · int32Optional
subscriptionCountinteger · int32Optional
get/public/v1/catalog/products
GET /public/v1/catalog/products HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
200

OK

{
  "$meta": {
    "pagination": {
      "offset": 1,
      "limit": 1,
      "total": 1
    },
    "omitted": [
      "text"
    ]
  },
  "data": [
    {
      "id": "text",
      "audit": {
        "created": {
          "at": "2026-01-01T00:00:00.000Z",
          "by": {
            "id": "text",
            "name": "text",
            "icon": "text",
            "revision": 1
          }
        },
        "updated": {
          "at": "2026-01-01T00:00:00.000Z",
          "by": {
            "id": "text",
            "name": "text",
            "icon": "text",
            "revision": 1
          }
        },
        "published": {
          "at": "2026-01-01T00:00:00.000Z",
          "by": {
            "id": "text",
            "name": "text",
            "icon": "text",
            "revision": 1
          }
        },
        "pending": {
          "at": "2026-01-01T00:00:00.000Z",
          "by": {
            "id": "text",
            "name": "text",
            "icon": "text",
            "revision": 1
          }
        },
        "unpublished": {
          "at": "2026-01-01T00:00:00.000Z",
          "by": {
            "id": "text",
            "name": "text",
            "icon": "text",
            "revision": 1
          }
        }
      },
      "$meta": {
        "omitted": [
          "text"
        ]
      },
      "name": "text",
      "icon": "text",
      "revision": 1,
      "shortDescription": "text",
      "longDescription": "text",
      "externalIds": {
        "operations": "text",
        "defaultErpItem": "text"
      },
      "website": "text",
      "status": "text",
      "vendor": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1,
        "type": "Client",
        "status": "Active"
      },
      "settings": {
        "productOrdering": true,
        "productRequests": {
          "enabled": true,
          "name": "text",
          "label": "text"
        },
        "itemSelection": true,
        "orderQueueChanges": true,
        "preValidation": {
          "purchaseOrderDraft": true,
          "purchaseOrderQuerying": true,
          "changeOrderDraft": true,
          "configurationOrderDraft": true,
          "terminationOrder": true
        },
        "splitBilling": {
          "enabled": true,
          "type": "text"
        },
        "sendCostToErp": true,
        "subscriptionCessation": {
          "enabled": true,
          "mode": "Termination"
        }
      },
      "statistics": {
        "itemCount": 1,
        "ordersPlacedCount": 1,
        "agreementCount": 1,
        "subscriptionCount": 1
      }
    }
  ]
}
post
Body
namestring · nullableOptional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
websitestring · nullableOptional
iconstring · binaryOptional
iconstring · binaryOptional
Responses
201

Created

application/json
idstringOptional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
omittedstring[]Optional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
statusstringOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
productOrderingbooleanOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionbooleanOptional
orderQueueChangesbooleanOptional
purchaseOrderDraftbooleanOptional
purchaseOrderQueryingbooleanOptional
changeOrderDraftbooleanOptional
configurationOrderDraftbooleanOptional
terminationOrderbooleanOptional
enabledbooleanOptional
typestring · nullableOptional
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
itemCountinteger · int32Optional
ordersPlacedCountinteger · int32Optional
agreementCountinteger · int32Optional
subscriptionCountinteger · int32Optional
400

Bad Request

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
403

Forbidden

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
500

Internal Server Error

No content

post/public/v1/catalog/products
POST /public/v1/catalog/products HTTP/1.1
Host: api.platform.softwareone.com
Content-Type: multipart/form-data
Accept: */*
Content-Length: 127

{
  "product": {
    "name": "text",
    "shortDescription": "text",
    "longDescription": "text",
    "website": "text",
    "icon": "binary"
  },
  "icon": "binary"
}
{
  "id": "text",
  "audit": {
    "created": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "updated": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "published": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "pending": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "unpublished": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    }
  },
  "$meta": {
    "omitted": [
      "text"
    ]
  },
  "name": "text",
  "icon": "text",
  "revision": 1,
  "shortDescription": "text",
  "longDescription": "text",
  "externalIds": {
    "operations": "text",
    "defaultErpItem": "text"
  },
  "website": "text",
  "status": "text",
  "vendor": {
    "id": "text",
    "name": "text",
    "icon": "text",
    "revision": 1,
    "type": "Client",
    "status": "Active"
  },
  "settings": {
    "productOrdering": true,
    "productRequests": {
      "enabled": true,
      "name": "text",
      "label": "text"
    },
    "itemSelection": true,
    "orderQueueChanges": true,
    "preValidation": {
      "purchaseOrderDraft": true,
      "purchaseOrderQuerying": true,
      "changeOrderDraft": true,
      "configurationOrderDraft": true,
      "terminationOrder": true
    },
    "splitBilling": {
      "enabled": true,
      "type": "text"
    },
    "sendCostToErp": true,
    "subscriptionCessation": {
      "enabled": true,
      "mode": "Termination"
    }
  },
  "statistics": {
    "itemCount": 1,
    "ordersPlacedCount": 1,
    "agreementCount": 1,
    "subscriptionCount": 1
  }
}
put
Path parameters
idstringRequired
Body
namestringOptional
shortDescriptionstringOptional
longDescriptionstringOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
iconstring · binaryOptional
Responses
200

OK

application/json
idstringOptional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
omittedstring[]Optional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
statusstringOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
productOrderingbooleanOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionbooleanOptional
orderQueueChangesbooleanOptional
purchaseOrderDraftbooleanOptional
purchaseOrderQueryingbooleanOptional
changeOrderDraftbooleanOptional
configurationOrderDraftbooleanOptional
terminationOrderbooleanOptional
enabledbooleanOptional
typestring · nullableOptional
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
itemCountinteger · int32Optional
ordersPlacedCountinteger · int32Optional
agreementCountinteger · int32Optional
subscriptionCountinteger · int32Optional
400

Bad Request

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
403

Forbidden

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
500

Internal Server Error

No content

put/public/v1/catalog/products/{id}
PUT /public/v1/catalog/products/{id} HTTP/1.1
Host: api.platform.softwareone.com
Content-Type: multipart/form-data
Accept: */*
Content-Length: 171

{
  "product": {
    "name": "text",
    "shortDescription": "text",
    "longDescription": "text",
    "externalIds": {
      "operations": "text",
      "defaultErpItem": "text"
    },
    "website": "text"
  },
  "icon": "binary"
}
{
  "id": "text",
  "audit": {
    "created": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "updated": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "published": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "pending": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "unpublished": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    }
  },
  "$meta": {
    "omitted": [
      "text"
    ]
  },
  "name": "text",
  "icon": "text",
  "revision": 1,
  "shortDescription": "text",
  "longDescription": "text",
  "externalIds": {
    "operations": "text",
    "defaultErpItem": "text"
  },
  "website": "text",
  "status": "text",
  "vendor": {
    "id": "text",
    "name": "text",
    "icon": "text",
    "revision": 1,
    "type": "Client",
    "status": "Active"
  },
  "settings": {
    "productOrdering": true,
    "productRequests": {
      "enabled": true,
      "name": "text",
      "label": "text"
    },
    "itemSelection": true,
    "orderQueueChanges": true,
    "preValidation": {
      "purchaseOrderDraft": true,
      "purchaseOrderQuerying": true,
      "changeOrderDraft": true,
      "configurationOrderDraft": true,
      "terminationOrder": true
    },
    "splitBilling": {
      "enabled": true,
      "type": "text"
    },
    "sendCostToErp": true,
    "subscriptionCessation": {
      "enabled": true,
      "mode": "Termination"
    }
  },
  "statistics": {
    "itemCount": 1,
    "ordersPlacedCount": 1,
    "agreementCount": 1,
    "subscriptionCount": 1
  }
}
post
Path parameters
idstringRequired
Responses
200

OK

application/json
idstringOptional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
omittedstring[]Optional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
statusstringOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
productOrderingbooleanOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionbooleanOptional
orderQueueChangesbooleanOptional
purchaseOrderDraftbooleanOptional
purchaseOrderQueryingbooleanOptional
changeOrderDraftbooleanOptional
configurationOrderDraftbooleanOptional
terminationOrderbooleanOptional
enabledbooleanOptional
typestring · nullableOptional
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
itemCountinteger · int32Optional
ordersPlacedCountinteger · int32Optional
agreementCountinteger · int32Optional
subscriptionCountinteger · int32Optional
400

Bad Request

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
403

Forbidden

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
404

Not Found

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
500

Internal Server Error

No content

post/public/v1/catalog/products/{id}/unpublish
POST /public/v1/catalog/products/{id}/unpublish HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
{
  "id": "text",
  "audit": {
    "created": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "updated": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "published": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "pending": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "unpublished": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    }
  },
  "$meta": {
    "omitted": [
      "text"
    ]
  },
  "name": "text",
  "icon": "text",
  "revision": 1,
  "shortDescription": "text",
  "longDescription": "text",
  "externalIds": {
    "operations": "text",
    "defaultErpItem": "text"
  },
  "website": "text",
  "status": "text",
  "vendor": {
    "id": "text",
    "name": "text",
    "icon": "text",
    "revision": 1,
    "type": "Client",
    "status": "Active"
  },
  "settings": {
    "productOrdering": true,
    "productRequests": {
      "enabled": true,
      "name": "text",
      "label": "text"
    },
    "itemSelection": true,
    "orderQueueChanges": true,
    "preValidation": {
      "purchaseOrderDraft": true,
      "purchaseOrderQuerying": true,
      "changeOrderDraft": true,
      "configurationOrderDraft": true,
      "terminationOrder": true
    },
    "splitBilling": {
      "enabled": true,
      "type": "text"
    },
    "sendCostToErp": true,
    "subscriptionCessation": {
      "enabled": true,
      "mode": "Termination"
    }
  },
  "statistics": {
    "itemCount": 1,
    "ordersPlacedCount": 1,
    "agreementCount": 1,
    "subscriptionCount": 1
  }
}

Mark product for review

Mark a product for review by the SoftwareOne Operations team.

post
Path parameters
idstringRequired
Responses
200

OK

application/json
idstringOptional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
atstring · date-time · nullableOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
omittedstring[]Optional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
shortDescriptionstring · nullableOptional
longDescriptionstring · nullableOptional
operationsstring · nullableOptional
defaultErpItemstring · nullableOptional
websitestringOptional
statusstringOptional
idstringOptional
namestringOptional
iconstring · nullableOptional
revisioninteger · int32Optional
typestring · enumOptionalPossible values:
statusstring · enumOptionalPossible values:
productOrderingbooleanOptional
enabledbooleanOptional
namestring · nullableOptional
labelstring · nullableOptional
itemSelectionbooleanOptional
orderQueueChangesbooleanOptional
purchaseOrderDraftbooleanOptional
purchaseOrderQueryingbooleanOptional
changeOrderDraftbooleanOptional
configurationOrderDraftbooleanOptional
terminationOrderbooleanOptional
enabledbooleanOptional
typestring · nullableOptional
sendCostToErpboolean · nullableOptional
enabledbooleanOptional
modestring · enum · nullableOptionalPossible values:
itemCountinteger · int32Optional
ordersPlacedCountinteger · int32Optional
agreementCountinteger · int32Optional
subscriptionCountinteger · int32Optional
400

Bad Request

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
403

Forbidden

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
404

Not Found

application/json
typestring · nullableOptional
titlestring · nullableOptional
statusinteger · int32 · nullableOptional
detailstring · nullableOptional
instancestring · nullableOptional
Other propertiesanyOptional
500

Internal Server Error

No content

post/public/v1/catalog/products/{id}/review
POST /public/v1/catalog/products/{id}/review HTTP/1.1
Host: api.platform.softwareone.com
Accept: */*
{
  "id": "text",
  "audit": {
    "created": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "updated": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "published": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "pending": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    },
    "unpublished": {
      "at": "2026-01-01T00:00:00.000Z",
      "by": {
        "id": "text",
        "name": "text",
        "icon": "text",
        "revision": 1
      }
    }
  },
  "$meta": {
    "omitted": [
      "text"
    ]
  },
  "name": "text",
  "icon": "text",
  "revision": 1,
  "shortDescription": "text",
  "longDescription": "text",
  "externalIds": {
    "operations": "text",
    "defaultErpItem": "text"
  },
  "website": "text",
  "status": "text",
  "vendor": {
    "id": "text",
    "name": "text",
    "icon": "text",
    "revision": 1,
    "type": "Client",
    "status": "Active"
  },
  "settings": {
    "productOrdering": true,
    "productRequests": {
      "enabled": true,
      "name": "text",
      "label": "text"
    },
    "itemSelection": true,
    "orderQueueChanges": true,
    "preValidation": {
      "purchaseOrderDraft": true,
      "purchaseOrderQuerying": true,
      "changeOrderDraft": true,
      "configurationOrderDraft": true,
      "terminationOrder": true
    },
    "splitBilling": {
      "enabled": true,
      "type": "text"
    },
    "sendCostToErp": true,
    "subscriptionCessation": {
      "enabled": true,
      "mode": "Termination"
    }
  },
  "statistics": {
    "itemCount": 1,
    "ordersPlacedCount": 1,
    "agreementCount": 1,
    "subscriptionCount": 1
  }
}