> For the complete documentation index, see [llms.txt](https://docs.platform.softwareone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.platform.softwareone.com/developer-resources/rest-api/catalog-api.md).

# Catalog API

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

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.

## Before you start

Review the shared API docs before you work with catalog resources.

* [Authentication](/developer-resources/rest-api.md)
* [URL structure](/developer-resources/api-usage-and-reference/url-structure.md)
* [Error handling](/developer-resources/api-usage-and-reference/errors-handling.md)

## Core resources

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.
* **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.
* **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.
* **Pricing policy** – Defines client-specific markup and pricing rules based on negotiated terms and special agreements.

## Browse 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.

Use the following links to jump to the collection you need:

* [Authorization](#authorization)
* [Documents](#documents)
* [Items](#items)
* [Item Groups](#item-group)
* [Listings](#listings)
* [Media](#media)
* [Parameters](#parameters)
* [Parameter Groups](#parameters-groups)
* [Price Lists](#price-lists)
* [Pricing Policies](#pricing-policy)
* [Products](#product)
* [Product Templates](#product-templates)
* [Terms](#terms)
* [Unit of Measure](#unit-of-measure)
* [Variants](#variants)

### Authorization

<details>

<summary>View Authorization operations</summary>

<table><thead><tr><th width="236">Operation</th><th width="102">Method</th><th>Description</th><th>Access</th></tr></thead><tbody><tr><td><a href="/pages/SoTKHLmgY4yvwLQ4nMaA">Create authorization</a></td><td>POST</td><td>Creates a new authorization in the catalog.</td><td>ops</td></tr><tr><td><a href="/pages/lcSZUyGSMnMWoNMo72Er">List authorizations</a></td><td>GET</td><td>Gets a list of authorizations.</td><td>vendor, client, ops</td></tr><tr><td><a href="/pages/SwFHfKxgJ2Qg3ainGnnl">Get authorization by id</a></td><td>GET</td><td>Retrieves an authorization by its id.</td><td>vendor, client, ops</td></tr><tr><td><a href="/pages/vEAd9HqAXDW5nujvVSds">Update authorization</a></td><td>PUT</td><td>Updates an existing authorization.</td><td>ops</td></tr><tr><td><a href="/pages/0vq30crawajFAPMT2Ptv">Delete authorization</a></td><td>DELETE</td><td>Deletes an authorization (used by vendors).</td><td>ops</td></tr></tbody></table>

</details>

### Documents

<details>

<summary>View Documents operations</summary>

| Operation                                                                                                       | Method | Description                                   | Access              |
| --------------------------------------------------------------------------------------------------------------- | ------ | --------------------------------------------- | ------------------- |
| [Create document](/developer-resources/rest-api/catalog-api/documentation/create-document.md)                   | POST   | Creates a new document in catalog management. | vendor              |
| [List documents](/developer-resources/rest-api/catalog-api/documentation/list-documents.md)                     | GET    | Lists all documents based on filter criteria. | vendor, client, ops |
| [Get document by id](/developer-resources/rest-api/catalog-api/documentation/get-document.md)                   | GET    | Gets a document by id.                        | vendor, client, ops |
| [Update document](/developer-resources/rest-api/catalog-api/documentation/update-document.md)                   | PUT    | Updates a document.                           | vendor, ops         |
| [Delete document](/developer-resources/rest-api/catalog-api/documentation/delete-document.md)                   | DELETE | Removes a document.                           | vendor, ops         |
| [Publish document](/developer-resources/rest-api/catalog-api/documentation/publish-document.md)                 | POST   | Publishes a document.                         | ops                 |
| [Mark document for review](/developer-resources/rest-api/catalog-api/documentation/mark-document-for-review.md) | POST   | Marks a document for review.                  | vendor              |
| [Unpublish document](/developer-resources/rest-api/catalog-api/documentation/unpublish-document.md)             | POST   | Unpublishes a document.                       | vendor, ops         |

</details>

### Items

<details>

<summary>View Items operations</summary>

| Operation                                                                                       | Method | Description                                                   | Access              |
| ----------------------------------------------------------------------------------------------- | ------ | ------------------------------------------------------------- | ------------------- |
| [Create item](/developer-resources/rest-api/catalog-api/items/create-item.md)                   | POST   | Creates a product item in the catalog.                        | vendor              |
| [List items](/developer-resources/rest-api/catalog-api/items/list-items.md)                     | GET    | Gets a list of items in the catalog based on filter criteria. | vendor, client, ops |
| [Get item by id](/developer-resources/rest-api/catalog-api/items/get-item.md)                   | GET    | Gets a product item by id.                                    | vendor, client, ops |
| [Update item](/developer-resources/rest-api/catalog-api/items/update-item.md)                   | PUT    | Updates a product item.                                       | vendor              |
| [Delete item](/developer-resources/rest-api/catalog-api/items/delete-item.md)                   | DELETE | Deletes a product item.                                       | vendor, ops         |
| [Mark item for review](/developer-resources/rest-api/catalog-api/items/mark-item-for-review.md) | POST   | Marks a product item as ready for review.                     | vendor              |
| [Publish item](/developer-resources/rest-api/catalog-api/items/publish-item.md)                 | POST   | Publishes a product item.                                     | ops                 |
| [Unpublish item](/developer-resources/rest-api/catalog-api/items/unpublish-item.md)             | POST   | Unpublishes a product item.                                   | vendor, ops         |
| List items by product                                                                           | GET    | Gets a list of items in the catalog based on filter criteria. | vendor, client, ops |
| Get item by product id                                                                          | GET    | Gets a product item by id.                                    | vendor, client, ops |

</details>

### Item Groups

<details>

<summary>View Item Groups operations</summary>

| Operation                                                                                      | Method | Description                                                         | Access              |
| ---------------------------------------------------------------------------------------------- | ------ | ------------------------------------------------------------------- | ------------------- |
| [Create item group](/developer-resources/rest-api/catalog-api/item-group/create-item-group.md) | POST   | Creates a new item group for a given product in the catalog.        | vendor              |
| [List item groups](/developer-resources/rest-api/catalog-api/item-group/list-item-groups.md)   | GET    | Lists all item groups for a given product based on filter criteria. | vendor, client, ops |
| [Get item group by id](/developer-resources/rest-api/catalog-api/item-group/get-item-group.md) | GET    | Gets an item group by id for a given product.                       | vendor, client, ops |
| [Update item group](/developer-resources/rest-api/catalog-api/item-group/update-item-group.md) | PUT    | Updates an item group for a given product.                          | vendor              |
| [Delete item group](/developer-resources/rest-api/catalog-api/item-group/delete-item-group.md) | DELETE | Deletes an item group from a given product.                         | vendor              |

</details>

### Listings

<details>

<summary>View Listings operations</summary>

| Operation                                                                             | Method | Description                             | Access              |
| ------------------------------------------------------------------------------------- | ------ | --------------------------------------- | ------------------- |
| [Create listing](/developer-resources/rest-api/catalog-api/listing/create-listing.md) | POST   | Creates a new listing in the catalog.   | ops                 |
| [List listings](/developer-resources/rest-api/catalog-api/listing/get-listings.md)    | GET    | Gets a list of listings in the catalog. | vendor, client, ops |
| [Get listing by id](/developer-resources/rest-api/catalog-api/listing/get-listing.md) | GET    | Gets a listing by id.                   | vendor, client, ops |
| [Update listing](/developer-resources/rest-api/catalog-api/listing/update-listing.md) | PUT    | Updates a listing in the catalog.       | ops                 |
| [Delete listing](/developer-resources/rest-api/catalog-api/listing/delete-listing.md) | DELETE | Deletes a listing.                      | ops                 |

</details>

### Media

<details>

<summary>View Media operations</summary>

| Operation                                                                                         | Method | Description                                      | Access              |
| ------------------------------------------------------------------------------------------------- | ------ | ------------------------------------------------ | ------------------- |
| [Create product media](/developer-resources/rest-api/catalog-api/media/create-product-media.md)   | POST   | Creates new media for a product.                 | vendor              |
| [List product media](/developer-resources/rest-api/catalog-api/media/list-product-media.md)       | GET    | Gets a list of media for a product.              | vendor, client, ops |
| [Get product media by id](/developer-resources/rest-api/catalog-api/media/get-product-media.md)   | GET    | Gets an item of media for a product.             | vendor, client, ops |
| [Update product media](/developer-resources/rest-api/catalog-api/media/update-media.md)           | PUT    | Updates an item of media for a product.          | vendor              |
| [Mark media for review](/developer-resources/rest-api/catalog-api/media/mark-media-for-review.md) | POST   | Marks an item of media for a product for review. | vendor              |
| [Publish media](/developer-resources/rest-api/catalog-api/media/publish-media.md)                 | POST   | Publishes an item of media for a product.        | ops                 |
| [Unpublish media](/developer-resources/rest-api/catalog-api/media/unpublish-media.md)             | POST   | Unpublishes an item of media for a product.      | vendor, ops         |
| [Delete product media](/developer-resources/rest-api/catalog-api/media/delete-media.md)           | DELETE | Deletes an item of media for a product.          | vendor, ops         |

</details>

### Parameters

<details>

<summary>View Parameters operations</summary>

| Operation                                                                                           | Method | Description                              | Access              |
| --------------------------------------------------------------------------------------------------- | ------ | ---------------------------------------- | ------------------- |
| [Create parameter](/developer-resources/rest-api/catalog-api/parameter/create-product-parameter.md) | POST   | Creates a product parameter.             | vendor              |
| [List parameters](/developer-resources/rest-api/catalog-api/parameter/list-product-parameters.md)   | GET    | Gets a list of parameters for a product. | vendor, client, ops |
| [Get parameter by id](/developer-resources/rest-api/catalog-api/parameter/get-product-parameter.md) | GET    | Gets a product parameter definition.     | vendor, client, ops |
| [Update parameter](/developer-resources/rest-api/catalog-api/parameter/update-product-parameter.md) | PUT    | Updates a product parameter definition.  | vendor              |
| [Delete parameter](/developer-resources/rest-api/catalog-api/parameter/delete-product-parameter.md) | DELETE | Deletes a product parameter definition.  | vendor              |

</details>

### Parameter Groups

<details>

<summary>View Parameter Groups operations</summary>

| Operation                                                                                                     | Method | Description                                                              | Access              |
| ------------------------------------------------------------------------------------------------------------- | ------ | ------------------------------------------------------------------------ | ------------------- |
| [Create parameter group](/developer-resources/rest-api/catalog-api/parameter-group/create-parameter-group.md) | POST   | Creates a new parameter group for a given product in the catalog.        | vendor              |
| [List parameter groups](/developer-resources/rest-api/catalog-api/parameter-group/list-parameter-groups.md)   | GET    | Lists all parameter groups for a given product based on filter criteria. | vendor, client, ops |
| [Get parameter group by id](/developer-resources/rest-api/catalog-api/parameter-group/get-parameter-group.md) | GET    | Gets a parameter group by id for a given product.                        | vendor, client, ops |
| [Update parameter group](/developer-resources/rest-api/catalog-api/parameter-group/update-parameter-group.md) | PUT    | Updates a parameter group for a given product.                           | vendor              |
| [Delete parameter group](/developer-resources/rest-api/catalog-api/parameter-group/delete-parameter-group.md) | DELETE | Deletes a parameter group from a given product.                          | vendor              |

</details>

### Price Lists

<details>

<summary>View Price Lists operations</summary>

| Operation                                                                                                   | Method | Description                               | Access              |
| ----------------------------------------------------------------------------------------------------------- | ------ | ----------------------------------------- | ------------------- |
| [Create price list](/developer-resources/rest-api/catalog-api/pricelists/create-pricelist.md)               | POST   | Creates a price list.                     | ops, vendor         |
| [List price lists](/developer-resources/rest-api/catalog-api/pricelists/list-pricelists.md)                 | GET    | Gets a list of price lists.               | vendor, client, ops |
| [Get price list by id](/developer-resources/rest-api/catalog-api/pricelists/get-pricelist.md)               | GET    | Gets a price list.                        | vendor, client, ops |
| [Update price list](/developer-resources/rest-api/catalog-api/pricelists/update-pricelist.md)               | PUT    | Updates a price list.                     | ops, vendor         |
| [Delete price list](/developer-resources/rest-api/catalog-api/pricelists/delete-pricelist.md)               | DELETE | Deletes a price list.                     | ops, vendor         |
| [List price list items](/developer-resources/rest-api/catalog-api/pricelist-item/list-pricelist-items.md)   | GET    | Gets a list of items in a price list.     | vendor, client, ops |
| [Get price list item by id](/developer-resources/rest-api/catalog-api/pricelist-item/get-pricelist-item.md) | GET    | Gets a price item within a price list.    | vendor, client, ops |
| [Update price list item](/developer-resources/rest-api/catalog-api/pricelist-item/update-pricelist-item.md) | PUT    | Updates a price item within a price list. | ops, vendor         |

</details>

### Pricing Policies

<details>

<summary>View Pricing Policies operations</summary>

| Operation                                                                                                                          | Method | Description                                    | Access      |
| ---------------------------------------------------------------------------------------------------------------------------------- | ------ | ---------------------------------------------- | ----------- |
| [Create pricing policy](/developer-resources/rest-api/catalog-api/pricing-policies/create-pricing-policy.md)                       | POST   | Creates a new pricing policy.                  | ops         |
| [List pricing policies](/developer-resources/rest-api/catalog-api/pricing-policies/list-pricing-policies.md)                       | GET    | Gets a list of pricing policies.               | ops, client |
| [Get pricing policy by id](/developer-resources/rest-api/catalog-api/pricing-policies/get-pricing-policy.md)                       | GET    | Gets a pricing policy by id.                   | ops, client |
| [Update pricing policy](/developer-resources/rest-api/catalog-api/pricing-policies/update-pricing-policy.md)                       | PUT    | Updates an existing pricing policy.            | ops         |
| [Delete pricing policy](/developer-resources/rest-api/catalog-api/pricing-policies/delete-pricing-policy.md)                       | DELETE | Deletes an existing pricing policy.            | ops         |
| [Activate pricing policy](/developer-resources/rest-api/catalog-api/pricing-policies/activate-pricing-policy.md)                   | POST   | Activates an existing pricing policy.          | ops         |
| [Deactivate pricing policy](/developer-resources/rest-api/catalog-api/pricing-policies/deactivate-pricing-policy.md)               | POST   | Disables an existing pricing policy.           | ops         |
| [List pricing policy attachments](/developer-resources/rest-api/catalog-api/pricing-policies/list-pricing-policy-attachments.md)   | GET    | Gets a list of pricing policy attachments.     | ops         |
| [Get pricing policy attachment by id](/developer-resources/rest-api/catalog-api/pricing-policies/get-pricing-policy-attachment.md) | GET    | Gets a pricing policy attachment by id.        | ops         |
| [Create pricing policy attachment](/developer-resources/rest-api/catalog-api/pricing-policies/create-pricing-policy-attachment.md) | POST   | Creates a new pricing policy attachment.       | ops         |
| [Update pricing policy attachment](/developer-resources/rest-api/catalog-api/pricing-policies/update-pricing-policy-attachment.md) | PUT    | Updates an existing pricing policy attachment. | ops         |
| [Delete pricing policy attachment](/developer-resources/rest-api/catalog-api/pricing-policies/delete-pricing-policy-attachment.md) | DELETE | Deletes an existing pricing policy attachment. | ops         |

</details>

### Products

<details>

<summary>View Products operations</summary>

<table><thead><tr><th width="221">Operation</th><th width="110">Method</th><th width="239">Description</th><th>Access</th></tr></thead><tbody><tr><td><a href="/pages/QvlNRoQt6Ez7siIitLcR">Create product</a></td><td>POST</td><td>Creates a new product.</td><td>vendor</td></tr><tr><td><a href="/pages/jzzdh49KoErPprPTGYX5">List products</a></td><td>GET</td><td>Fetches a list of products.</td><td>vendor, client, ops</td></tr><tr><td><a href="/pages/Wkve5TB3xSVYG1kmgX1m">Get product by id</a></td><td>GET</td><td>Gets a product by id.</td><td>vendor, client, ops</td></tr><tr><td><a href="/pages/esWRVoRYqlag7LsBLyKw">Update product</a></td><td>PUT</td><td>Updates some properties of a product.</td><td>vendor</td></tr><tr><td><a href="/pages/MuuC9m37fFWHudP3QH2g">Delete product</a></td><td>DELETE</td><td>Deletes a product.</td><td>vendor, ops</td></tr><tr><td><a href="/pages/tuSmNc3Njfid9wXH83GG">Mark product for review</a></td><td>POST</td><td>Marks a product for review by operations.</td><td>vendor</td></tr><tr><td><a href="/pages/xIhlzKHsN7Vb5S3MqP4r">Publish product</a></td><td>POST</td><td>Publishes a product.</td><td>ops</td></tr><tr><td><a href="/pages/8u1U4tq7lkkKZD9yfirY">Unpublish product</a></td><td>POST</td><td>Unpublishes a product.</td><td>vendor, ops</td></tr><tr><td><a href="/pages/s0zjn3vm306Df1RLjucd">Update product settings</a></td><td>PUT</td><td>Updates a product’s settings.</td><td>vendor</td></tr></tbody></table>

</details>

### Templates

<details>

<summary>View Templates operations</summary>

| Operation                                                                                         | Method | Description                             | Access              |
| ------------------------------------------------------------------------------------------------- | ------ | --------------------------------------- | ------------------- |
| [Create product template](/developer-resources/rest-api/catalog-api/templates/create-template.md) | POST   | Creates a template for a product.       | vendor              |
| [List product templates](/developer-resources/rest-api/catalog-api/templates/list-templates.md)   | GET    | Gets a list of templates for a product. | vendor, client, ops |
| [Get product template by id](/developer-resources/rest-api/catalog-api/templates/get-template.md) | GET    | Gets a template for a product.          | vendor, client, ops |
| [Update product template](/developer-resources/rest-api/catalog-api/templates/update-template.md) | PUT    | Updates a template for a product.       | vendor              |
| [Delete product template](/developer-resources/rest-api/catalog-api/templates/delete-template.md) | DELETE | Deletes a template for a product.       | vendor              |

</details>

### Terms

<details>

<summary>View Terms operations</summary>

| Operation                                                                                                        | Method | Description                             | Access              |
| ---------------------------------------------------------------------------------------------------------------- | ------ | --------------------------------------- | ------------------- |
| [Create terms](/developer-resources/rest-api/catalog-api/terms-and-conditions/create-terms.md)                   | POST   | Creates terms for a product.            | vendor, ops         |
| [List terms](/developer-resources/rest-api/catalog-api/terms-and-conditions/list-terms.md)                       | GET    | Gets a list of all terms for a product. | vendor, client, ops |
| [Get terms by id](/developer-resources/rest-api/catalog-api/terms-and-conditions/get-terms.md)                   | GET    | Gets terms for a product.               | vendor, client, ops |
| [Update terms](/developer-resources/rest-api/catalog-api/terms-and-conditions/update-terms.md)                   | PUT    | Updates terms for a product.            | vendor, ops         |
| Delete terms                                                                                                     | DELETE | Deletes terms for a product.            | vendor, ops         |
| [Mark terms for review](/developer-resources/rest-api/catalog-api/terms-and-conditions/mark-terms-for-review.md) | POST   | Marks terms for a product for review.   | vendor              |
| [Publish terms](/developer-resources/rest-api/catalog-api/terms-and-conditions/publish-terms.md)                 | POST   | Publishes terms for a product.          | ops                 |
| [Unpublish terms](/developer-resources/rest-api/catalog-api/terms-and-conditions/unpublish-terms.md)             | POST   | Unpublishes terms for a product.        | vendor, ops         |

</details>

### Unit of Measure

<details>

<summary>View Unit of Measure operations</summary>

| Operation                                                                                                      | Method | Description                      | Access      |
| -------------------------------------------------------------------------------------------------------------- | ------ | -------------------------------- | ----------- |
| [Create unit of measure](/developer-resources/rest-api/catalog-api/units-of-measure/create-unit-of-measure.md) | POST   | Creates a new unit of measure.   | ops         |
| [List units of measure](/developer-resources/rest-api/catalog-api/units-of-measure/list-unit-of-measure.md)    | GET    | Gets a list of units of measure. | vendor, ops |
| [Get unit of measure by id](/developer-resources/rest-api/catalog-api/units-of-measure/get-unit-of-measure.md) | GET    | Gets a unit of measure by id.    | vendor, ops |
| [Update unit of measure](/developer-resources/rest-api/catalog-api/units-of-measure/update-unit-of-measure.md) | PUT    | Updates a unit of measure by id. | ops         |

</details>

### Variants

<details>

<summary>View Variants operations</summary>

| Operation                                                                                                | Method | Description                                | Access              |
| -------------------------------------------------------------------------------------------------------- | ------ | ------------------------------------------ | ------------------- |
| [Create variant](/developer-resources/rest-api/catalog-api/variants/create-variant.md)                   | POST   | Creates a variant for terms.               | vendor, ops         |
| [List variants](/developer-resources/rest-api/catalog-api/variants/list-variants.md)                     | GET    | Gets a list of all variants for terms.     | vendor, client, ops |
| [Get variant by id](/developer-resources/rest-api/catalog-api/variants/get-variant-for-terms.md)         | GET    | Gets a variant for terms.                  | vendor, client, ops |
| [Update variant](/developer-resources/rest-api/extensions-api/variant/update-variant.md)                 | PUT    | Updates a variant for terms for a product. | vendor, ops         |
| [Delete variant](/developer-resources/rest-api/catalog-api/variants/delete-variant.md)                   | DELETE | Deletes a variant for terms.               | vendor, ops         |
| [Mark variant for review](/developer-resources/rest-api/catalog-api/variants/mark-variant-for-review.md) | POST   | Marks a variant for terms for review.      | vendor              |
| [Publish variant](/developer-resources/rest-api/catalog-api/variants/publish-variant.md)                 | POST   | Publishes a variant for terms.             | ops                 |
| [Unpublish variant](/developer-resources/rest-api/catalog-api/variants/unpublish-variant.md)             | POST   | Unpublishes a variant for terms.           | vendor, ops         |

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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