# Catalog API

The **Catalog API** enables you to create, retrieve, and manage products. You can also configure individual items as well as item groups through the API.&#x20;

Additionally, you can define parameters and parameter groups, and manage pricing with price lists. You can also create custom templates and product variants. The API also includes endpoints for managing product media, documents, listings, and terms and conditions.

### Core Concepts

The Catalog API is built around the following core resources:

* **Authorization** - Represents the permissions and credentials that are required for interactions between sellers and vendors in the scope of a product.&#x20;
* **Document** - Used to upload product documentation (via an online link or file) to the `product` object.
* **Item** - Represents the individual stock-keeping units (SKUs) or transactable element of a product. Items are shown as a line item in an order.
* **Item group** - Represents a group of items.
* **Listing** - Represents a business entity that aligns a product with a specific SoftwareOne `seller`.
* **Media** - Enables vendors to add, view, or delete media from the `product` object.&#x20;
* **Product** - Represents a collection of `items` and their associated parameters organized into a unified group.
* **Parameter** - Allows vendors to define additional information that must be collected from and shared with the client, enabling the client to self-serve within the SoftwareOne Marketplace.
* **Parameter group** - Represents a group of `parameters`.
* **Pricelist** - Includes key pricing details such as sales and purchase prices, enabling vendors and operations to effectively manage and apply different price points for product items.&#x20;
* **Pricing policy** - Defines client-specific markup and pricing rules based on negotiated terms and special agreements.

## Collections

The API is organized into collections, each containing a set of operations. Access to these operations varies by role, depending on whether you are a `client`, `vendor`, or `operations` user.&#x20;

Refer to the following capability matrix to see which roles are authorized to perform specific operations within each collection:

### Authorization

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List authorizations</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get authorization</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create authorization</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Update authorization</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Delete authorization</td><td>❌</td><td>❌</td><td>✅</td></tr></tbody></table>

### Documents

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List documents</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get document</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create document</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Update document</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Delete document</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Mark document for review</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Publish document</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Unpublish document</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>

### Items

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List items</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get item</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create item</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Update item by ID</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Delete item</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Mark item for review</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Publish item</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Unpublish item</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>

### Item Group

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List item groups</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get item group</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create item group</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Update item group</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Delete item group</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>

### Listings

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List all listings</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get listing</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create listing</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Update listing</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Delete listing</td><td>❌</td><td>❌</td><td>✅</td></tr></tbody></table>

### Media

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List product media</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get product media</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create product media</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Update product media</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Delete product media</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Mark a media for review</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Publish a media for product</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Unpublish a media for product</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>

### Parameters

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List parameters for a product</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get parameter</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create parameter</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Update parameter</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Delete parameter</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>

### Parameters Groups

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List parameter groups</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get parameter group</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create parameter group</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Update parameter group</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Delete parameter group</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>

### Price Lists

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List price lists</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get price list</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create price list</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Update price list</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Delete price list</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>List price list items</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get price list items</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Update price list items</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>

### Pricing Policy

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List pricing policies</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Get pricing policy</td><td>✅</td><td>❌</td><td>✅</td></tr><tr><td>Create pricing policy</td><td>✅</td><td>❌</td><td>✅</td></tr><tr><td>Update pricing policy</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Delete pricing policy</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Activate pricing policy</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Disable pricing policy</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>List of pricing policy attachments</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Get pricing policy attachment</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Create pricing policy attachment</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Update pricing policy attachment </td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Delete pricing policy attachment </td><td>❌</td><td>❌</td><td>✅</td></tr></tbody></table>

### Product

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List products</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get product</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create product</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Update product by ID</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Delete product</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Mark product for review</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Publish product</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Unpublish product</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Update product settings</td><td>❌</td><td>✅</td><td>❌</td></tr></tbody></table>

### Product Templates

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List product templates</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get product template</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create product template</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Update product template</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Delete product templates</td><td>❌</td><td>✅</td><td>❌</td></tr></tbody></table>

### Terms

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List terms</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get terms</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create terms</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Update terms</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Delete terms</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Mark terms for review</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Publish terms</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Unpublish terms</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>

### Units of Measure

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List units of measure</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Get units of measure</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Create units of measure</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Update units of measure</td><td>❌</td><td>❌</td><td>✅</td></tr></tbody></table>

### Variant

<table><thead><tr><th width="328">Capability</th><th width="155">Client</th><th width="130">Vendor</th><th>Operations</th></tr></thead><tbody><tr><td>List variant</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Get variant</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td>Create variant</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Update variant</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Delete variant</td><td>❌</td><td>✅</td><td>✅</td></tr><tr><td>Mark variant for review</td><td>❌</td><td>✅</td><td>❌</td></tr><tr><td>Publish variant</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>Unpublish variant</td><td>❌</td><td>✅</td><td>✅</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.platform.softwareone.com/developer-resources/rest-api/catalog-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
