---
schema_version: "1"
id: 629b0a821c64b7d96de92a73d4af0f0cff788be55dfc6b4f363a6e869c42f644
title: Data Catalogs (deprecated)
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/b2c-commerce/references/generated-api-specs/ocapi-data-catalogs.md
canonical_url: https://developer.salesforce.com/docs/commerce/b2c-commerce/references/ocapi-data-catalogs
source_site: developer.salesforce.com
content_type: documentation
content_hash: d365462d0753f1136d5621abbc01b83ee15ab2282aa64fa5708aada9903afcc9
products:
  - B2C Commerce
  - Salesforce APIs
---
Data Catalogs (deprecated)

# Data Catalogs (deprecated)

Data API endpoints enable developers to build applications for merchants: Create, update, delete business objects, like products, customers, pricing and promotions or assignments. They typically provide read and write access and are designed for moderate usage.

**Version:** 25.6

## Servers

*   `https://{host}/s/-/dw/data/v25_6`

Protocols: https.

## Security

*   `oauth2_application` (oauth2) Authentication flow with client ID and password with account manager.
    *   OAuth flow application (tokenUrl: https://account.demandware.com:443/dwsso/oauth2/access\_token)
    *   Scope x-info: Scopes are NOT supported. This is just a dummy, because the 'scopes' field is required.
*   `client_id` (apiKey) Add client ID for application identification. Alternative as 'client\_id' query parameter.
    *   API key in header: x-dw-client-id

## Operations

### GET Get Catalogs

`GET /catalogs`

Operation ID: `Get Catalogs`. Tags: catalogs. Security: oauth2\_application.

Action to get all the catalogs with no filtering.

#### Parameters

*   `start` (query, integer (int32)) Optional start index for retrieving the items from a given index (default 0).
*   `count` (query, integer (int32)) Optional count for retrieving only a subset of the items (default is 25).
*   `select` (query, string) The property selector.
*   `expand` (query, array of string)

#### Responses

*   **default**
    
    Media type: `application/json, text/xml`. Schema: `catalogs`.
    

### GET Get Catalog

`GET /catalogs/{catalog_id}`

Operation ID: `Get Catalog`. Tags: catalogs. Security: oauth2\_application.

Gets catalog information by catalog Id.

Expansion "stats" can be used to retrieved some expensive statistic data, such as assigned\_product\_count and owned\_product\_count. Example: /s/-/dw/data/v99\_9/catalogs/my-catalog?expand=stats

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown in case the catalog does not exist matching the given id or the catalog identified was already in deletion.

#### Parameters

*   `catalog_id` (path, string, required) The id of the requested catalog.  
    Minimum length: 1.
*   `expand` (query, array of string)
*   `select` (query, string) the selector for the get. If not passed, the defaultSelector will be used instead.

#### Responses

*   **404** `CatalogNotFoundException` - Thrown in case the catalog does not exist matching the given id or the catalog identified was already in deletion.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `catalog`.
    

### PATCH Update Catalog

`PATCH /catalogs/{catalog_id}`

Operation ID: `Update Catalog`. Tags: catalogs. Security: oauth2\_application.

Updates the catalog with the specified information.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown in case the catalog id is unknown.

#### Parameters

*   `catalog_id` (path, string, required) The id of the requested catalog.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `catalog`.

#### Responses

*   **404** `CatalogNotFoundException` - Thrown in case the catalog id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `catalog`.
    

### GET Get Categories

`GET /catalogs/{catalog_id}/categories`

Operation ID: `Get Categories`. Tags: catalogs. Security: oauth2\_application.

Action to get all the categories with no filtering.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates that the catalog is not provided in the request.

#### Parameters

*   `catalog_id` (path, string, required)  
    Minimum length: 1.
*   `start` (query, integer (int32)) Optional start index for retrieving the items from a given index (default 0).
*   `count` (query, integer (int32)) Optional count for retrieving only a subset of the items (default is 25).
*   `select` (query, string) The property selector.
*   `expand` (query, array of string)

#### Responses

*   **404** `CatalogNotFoundException` - Indicates that the catalog is not provided in the request.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `categories`.
    

### GET Get category

`GET /catalogs/{catalog_id}/categories/{category_id}`

Operation ID: `Get category`. Tags: catalogs. Security: oauth2\_application.

Action to read an existing category within a catalog. By default, the server also returns the first level of sub-categories, but you can specify another level by setting the levels parameter. Please note, using a large value for levels may cause performance issues in case of a large and deep category tree.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates that the catalog is not provided in the request.
*   404 - CategoryNotFoundException - Indicates that the category does not exist for the catalog provided in the request.

#### Parameters

*   `catalog_id` (path, string, required) the id of the catalog that the category belongs to  
    Minimum length: 1.
*   `category_id` (path, string, required) the id of the category requested  
    Minimum length: 1. Maximum length: 256.
*   `levels` (query, integer (int32)) Specifies how many levels of nested sub-categories you want the server to return. The default value is 1.  
    Minimum: 0.
*   `expand` (query, array of string) the expansion that client can use to specify and retrieve further information about the category (Internal use only for now).

#### Responses

*   **404** `CatalogNotFoundException` - Indicates that the catalog is not provided in the request. or `CategoryNotFoundException` - Indicates that the category does not exist for the catalog provided in the request.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category`.
    

### PUT Create Category

`PUT /catalogs/{catalog_id}/categories/{category_id}`

Operation ID: `Create Category`. Tags: catalogs. Security: oauth2\_application.

Creates a catalog category using the information provided.

This endpoint may return the following faults:

*   400 - CategoryInvalidException - Indicates that the category in the request is not valid (the argument indicates the field that was invalid).
*   400 - IdConflictException - Indicates that the category ID in the request URL does not match the category ID in the request body.
*   404 - CatalogNotFoundException - Indicates that the catalog is not provided in the request.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the category to be created  
    Minimum length: 1. Maximum length: 256.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `category`.

#### Responses

*   **400** `CategoryInvalidException` - Indicates that the category in the request is not valid (the argument indicates the field that was invalid). or `IdConflictException` - Indicates that the category ID in the request URL does not match the category ID in the request body.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CatalogNotFoundException` - Indicates that the catalog is not provided in the request.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category`.
    

### DELETE Delete Category

`DELETE /catalogs/{catalog_id}/categories/{category_id}`

Operation ID: `Delete Category`. Tags: catalogs. Security: oauth2\_application.

Deletes the category by catalog ID and category ID

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates that the catalog is not provided in the request.
*   404 - CategoryNotFoundException - Indicates that the category does not exist for the catalog provided in the request.

#### Parameters

*   `catalog_id` (path, string, required) The site context.  
    Minimum length: 1.
*   `category_id` (path, string, required) The category id to remove  
    Minimum length: 1.

#### Responses

*   **204**
*   **404** `CatalogNotFoundException` - Indicates that the catalog is not provided in the request. or `CategoryNotFoundException` - Indicates that the category does not exist for the catalog provided in the request.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update Category

`PATCH /catalogs/{catalog_id}/categories/{category_id}`

Operation ID: `Update Category`. Tags: catalogs. Security: oauth2\_application.

Updates a catalog category using the information provided.

This endpoint may return the following faults:

*   400 - CategoryInvalidException - Indicates that the category in the request is not valid (the argument indicates the field that was invalid).
*   404 - CatalogNotFoundException - Indicates that the catalog is not provided in the request.
*   404 - CategoryNotFoundException - Indicates that the category does not exist for the catalog provided in the request.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the category  
    Minimum length: 1. Maximum length: 256.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `category`.

#### Responses

*   **400** `CategoryInvalidException` - Indicates that the category in the request is not valid (the argument indicates the field that was invalid).
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CatalogNotFoundException` - Indicates that the catalog is not provided in the request. or `CategoryNotFoundException` - Indicates that the category does not exist for the catalog provided in the request.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category`.
    

### GET Get Category Links

`GET /catalogs/{catalog_id}/categories/{category_id}/category_links`

Operation ID: `Get Category Links`. Tags: catalogs. Security: oauth2\_application.

Action to get a set of outgoing category links in a given catalog category, sorted by position.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown in case the source catalog does not exist
*   404 - CategoryNotFoundException - Thrown in case the source category does not exist

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the source category.  
    Minimum length: 1.
*   `start` (query, integer (int32))
*   `count` (query, integer (int32))
*   `select` (query, string) Optional select clause for getting fields from the returned JSON document.

#### Responses

*   **404** `CatalogNotFoundException` - Thrown in case the source catalog does not exist or `CategoryNotFoundException` - Thrown in case the source category does not exist
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_links`.
    

### GET Get Category Link

`GET /catalogs/{catalog_id}/categories/{category_id}/category_links/{target_catalog_id}/{target_category_id}/{type}`

Operation ID: `Get Category Link`. Tags: catalogs. Security: oauth2\_application.

Action to get category link information.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown in case the source catalog or the target catalog do not exist
*   404 - CategoryLinkNotFoundException - Thrown in case the category link does not exist from the source catalog/category to the destination catalog/category with the given type.
*   404 - CategoryNotFoundException - Thrown in case the source category or the target category do not exist

#### Parameters

*   `catalog_id` (path, string, required) The id of the source catalog.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the source category.  
    Minimum length: 1.
*   `target_catalog_id` (path, string, required) The id of the target catalog.  
    Minimum length: 1.
*   `target_category_id` (path, string, required) The id of the target category.  
    Minimum length: 1.
*   `type` (path, string, required) the link type
*   `select` (query, string) Optional select clause for getting fields from the returned JSON document.

#### Responses

*   **404** `CatalogNotFoundException` - Thrown in case the source catalog or the target catalog do not exist or `CategoryLinkNotFoundException` - Thrown in case the category link does not exist from the source catalog/category to the destination catalog/category with the given type. or `CategoryNotFoundException` - Thrown in case the source category or the target category do not exist
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_link`.
    

### PUT Create Category Link

`PUT /catalogs/{catalog_id}/categories/{category_id}/category_links/{target_catalog_id}/{target_category_id}/{type}`

Operation ID: `Create Category Link`. Tags: catalogs. Security: oauth2\_application.

Creates a category link using the information provided. If a category link with the same unique identifier, it will be updated with the new position.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown in case the source catalog or the target catalog do not exist
*   404 - CategoryNotFoundException - Thrown in case the source category or the target category do not exist

#### Parameters

*   `catalog_id` (path, string, required) The id of the source catalog.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the source category.  
    Minimum length: 1.
*   `target_catalog_id` (path, string, required) The id of the target catalog.  
    Minimum length: 1.
*   `target_category_id` (path, string, required) The id of the target category.  
    Minimum length: 1.
*   `type` (path, string, required) the link type

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `category_link`.

#### Responses

*   **404** `CatalogNotFoundException` - Thrown in case the source catalog or the target catalog do not exist or `CategoryNotFoundException` - Thrown in case the source category or the target category do not exist
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_link`.
    

### DELETE Delete Category Link

`DELETE /catalogs/{catalog_id}/categories/{category_id}/category_links/{target_catalog_id}/{target_category_id}/{type}`

Operation ID: `Delete Category Link`. Tags: catalogs. Security: oauth2\_application.

Deletes the category link by ID

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown in case the source catalog or the target catalog do not exist
*   404 - CategoryLinkNotFoundException - Thrown in case the category link does not exist from the source catalog/category to the destination catalog/category with the given type.
*   404 - CategoryNotFoundException - Thrown in case the source category or the target category do not exist

#### Parameters

*   `catalog_id` (path, string, required) The id of the source catalog.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the source category.  
    Minimum length: 1.
*   `target_catalog_id` (path, string, required) The id of the target catalog.  
    Minimum length: 1.
*   `target_category_id` (path, string, required) The id of the target category.  
    Minimum length: 1.
*   `type` (path, string, required) the link type

#### Responses

*   **204**
*   **404** `CatalogNotFoundException` - Thrown in case the source catalog or the target catalog do not exist or `CategoryLinkNotFoundException` - Thrown in case the category link does not exist from the source catalog/category to the destination catalog/category with the given type. or `CategoryNotFoundException` - Thrown in case the source category or the target category do not exist
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update Category Link

`PATCH /catalogs/{catalog_id}/categories/{category_id}/category_links/{target_catalog_id}/{target_category_id}/{type}`

Operation ID: `Update Category Link`. Tags: catalogs. Security: oauth2\_application.

Updates the category link with the specified information.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown in case the source catalog or the target catalog do not exist
*   404 - CategoryLinkNotFoundException - Thrown in case the category link does not exist from the source catalog/category to the destination catalog/category with the given type.
*   404 - CategoryNotFoundException - Thrown in case the source category or the target category do not exist

#### Parameters

*   `catalog_id` (path, string, required) The id of the source catalog.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the source category.  
    Minimum length: 1.
*   `target_catalog_id` (path, string, required) The id of the target catalog.  
    Minimum length: 1.
*   `target_category_id` (path, string, required) The id of the target category.  
    Minimum length: 1.
*   `type` (path, string, required) the link type

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `category_link`.

#### Responses

*   **404** `CatalogNotFoundException` - Thrown in case the source catalog or the target catalog do not exist or `CategoryLinkNotFoundException` - Thrown in case the category link does not exist from the source catalog/category to the destination catalog/category with the given type. or `CategoryNotFoundException` - Thrown in case the source category or the target category do not exist
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_link`.
    

### POST Search Category Product Assignment

`POST /catalogs/{catalog_id}/categories/{category_id}/category_product_assignment_search`

Operation ID: `Search Category Product Assignment`. Tags: catalogs. Security: oauth2\_application.

Searches for category product assignments.

The query attribute specifies a complex query that can be used to narrow down the search. This is the list of searchable attributes:

*   product\_id - String
    
*   product\_name - String
    
*   online\_flag - Boolean
    
*   searchable - Boolean
    
*   valid\_from - DateTime
    
*   valid\_to - DateTime
    
*   creation\_date - DateTime
    

Sortable Fields:

*   product\_id - String
    
*   product\_name - String
    
*   position - Double
    
*   creation\_date - DateTime
    

Expansions that can be applied for the search request:

*   product\_base - String - This expand will enable retrieval of the following basic **Product** information:
    
*   product\_images - String - to fetch preview image and image groups specified for the given product
    
*   product\_all\_images - String - to fetch preview image and image groups specified for the product plus images for its variants and variation groups
    
*   product\_variations - String to fetch variations related information, version 17.8+
    
*   product\_availability - String to fetch availability related information, version 17.8+
    
*   product\_categories - String to fetch category related information, version 17.8+
    
*   product\_prices - String to fetch prices related information, version 17.8+
    
*   product\_options - String to fetch options related information, version 17.8+
    
*   product\_all - String to fetch all expanded information, version 17.8+
    
    *   brand
        
    *   ean
        
    *   link
        
    *   long\_description
        
    *   manufacturer\_name
        
    *   manufacturer\_sku
        
    *   name
        
    *   page\_description
        
    *   page\_keywords
        
    *   page\_title
        
    *   searchable
        
    *   short\_description
        
    *   type
        
    *   unit
        
    *   upc
        

This endpoint may return the following faults:

*   400 - MalformedSearchParameterException - Thrown if the query is ill-formed.
*   404 - CatalogNotFoundException - Thrown if the catalog does not exist matching the given category\_id.
*   404 - CategoryNotFoundException - Thrown if the category does not exist matching the given catalog\_id.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the category.  
    Minimum length: 1.
*   `site_id` (query, string) The site context.

#### Request body

Media type: `application/json, text/xml`. Schema: `category_product_assignment_search_request`.

#### Responses

*   **400** `MalformedSearchParameterException` - Thrown if the query is ill-formed.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CatalogNotFoundException` - Thrown if the catalog does not exist matching the given category\_id. or `CategoryNotFoundException` - Thrown if the category does not exist matching the given catalog\_id.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_product_assignment_search_result`.
    

### GET Get Category Product Assignment

`GET /catalogs/{catalog_id}/categories/{category_id}/products/{product_id}`

Operation ID: `Get Category Product Assignment`. Tags: catalogs. Security: oauth2\_application.

Retrieves category product assignment information.

Expands that can be applied for the get request

*   product\_base - String
    
*   product\_images - String - to fetch image groups specified for the given product
    
*   product\_all\_images - String - to fetch image groups specified for the given product plus images for its variants and variation groups
    

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown if the catalog does not exist matching the given id.
*   404 - CategoryNotFoundException - Thrown if the category does not exist matching the given id.
*   404 - CategoryProductAssignmentNotFoundException - Thrown if the category product assignment does not exist matching the given ids.
*   404 - ProductNotFoundException - Thrown if the product does not exist matching the given id.

#### Parameters

*   `catalog_id` (path, string, required) The catalog of the assignment.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the requested category.  
    Minimum length: 1.
*   `product_id` (path, string, required) The id (SKU) of the requested assigned product.  
    Minimum length: 1.
*   `site_id` (query, string) The site context.
*   `expand` (query, array of string) The List of expansion values applied to the product associated to the assignment.
*   `select` (query, string) The selector for the get. If not passed, then the defaultSelector will be used instead.

#### Responses

*   **404** `CatalogNotFoundException` - Thrown if the catalog does not exist matching the given id. or `CategoryNotFoundException` - Thrown if the category does not exist matching the given id. or `CategoryProductAssignmentNotFoundException` - Thrown if the category product assignment does not exist matching the given ids. or `ProductNotFoundException` - Thrown if the product does not exist matching the given id.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_product_assignment`.
    

### PUT Create Category Product Assignment

`PUT /catalogs/{catalog_id}/categories/{category_id}/products/{product_id}`

Operation ID: `Create Category Product Assignment`. Tags: catalogs. Security: oauth2\_application.

**Creates** a category product assignment using the information provided;

As the assigned position n is a **normalized target position** , we'll make sure that the product is assigned to a position so that the order of positions are maintained.

For example, product A, B, C at position 1, 2, 3. product D is assigned to position 2, the end result is A, D, B, C with order of positions 1, 2, 3, 4;

If there are n existing positioned assignment, assigning a new product to position >= n+1 will end with new assignment with position n+1.

This endpoint may return the following faults:

*   400 - IdConflictException - if the Id in request is not the same as the ID in document.
*   404 - CatalogNotFoundException - Thrown if the catalog does not exist matching the given id.
*   404 - CategoryNotFoundException - Thrown if the category does not exist matching the given id.
*   404 - ProductNotFoundException - Thrown if the product does not exist matching the given id.

#### Parameters

*   `catalog_id` (path, string, required) The id of the requested catalog to which to assign the product.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the requested category to which to assign the product.  
    Minimum length: 1.
*   `product_id` (path, string, required) The id (SKU) of the requested product to assign.  
    Minimum length: 1.

#### Request body

Media type: `application/json, text/xml`. Schema: `category_product_assignment`.

#### Responses

*   **400** `IdConflictException` - if the Id in request is not the same as the ID in document.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CatalogNotFoundException` - Thrown if the catalog does not exist matching the given id. or `CategoryNotFoundException` - Thrown if the category does not exist matching the given id. or `ProductNotFoundException` - Thrown if the product does not exist matching the given id.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_product_assignment`.
    

### DELETE Delete Category Product Assignment

`DELETE /catalogs/{catalog_id}/categories/{category_id}/products/{product_id}`

Operation ID: `Delete Category Product Assignment`. Tags: catalogs. Security: oauth2\_application.

**Removes** a category product assignment;

For example, if we have products A, B, C at positions 1, 2, 7.5 and delete assignment for product B, this will end up the products A, B, C at positions 1, null, 7.5.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown if the catalog does not exist matching the given id.
*   404 - CategoryNotFoundException - Thrown if the category does not exist matching the given id.

#### Parameters

*   `catalog_id` (path, string, required) The catalog of the assignment.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the requested category.  
    Minimum length: 1.
*   `product_id` (path, string, required) The id of the requested product to un-assign.  
    Minimum length: 1.

#### Responses

*   **204**
*   **404** `CatalogNotFoundException` - Thrown if the catalog does not exist matching the given id. or `CategoryNotFoundException` - Thrown if the category does not exist matching the given id.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update Category Product Assignment

`PATCH /catalogs/{catalog_id}/categories/{category_id}/products/{product_id}`

Operation ID: `Update Category Product Assignment`. Tags: catalogs. Security: oauth2\_application.

**Updates** the category product assignment with the specified information, such as position.

As the assigned position n is a **normalized target position** , we'll make sure that the product is assigned to a position so that the order of positions are maintained.

For example, if we have products A, B, C, D at positions 1, 2, 3, 4 and update product A with new position 3, the end result is B, C, A, D with order of positions 1, 2, 3, 4.

If we then update product C to no position, the end result is B, A, D, C with order of positions 1, 2, 3, null.

If there are n existing positioned assignment, updating product to position > = n will end with new assignment with position such that the order of positions is maintained.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Thrown if the catalog does not exist matching the given id.
*   404 - CategoryNotFoundException - Thrown if the category does not exist matching the given id.
*   404 - CategoryProductAssignmentNotFoundException - Thrown if the category product assignment does not exist.
*   404 - ProductNotFoundException - Thrown if the product does not exist matching the given id.

#### Parameters

*   `catalog_id` (path, string, required) The id of the requested catalog to which the product is assigned.  
    Minimum length: 1.
*   `category_id` (path, string, required) The id of the requested category to which the product is assigned.  
    Minimum length: 1.
*   `product_id` (path, string, required) The id (SKU) of the requested assigned product.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `category_product_assignment`.

#### Responses

*   **404** `CatalogNotFoundException` - Thrown if the catalog does not exist matching the given id. or `CategoryNotFoundException` - Thrown if the category does not exist matching the given id. or `CategoryProductAssignmentNotFoundException` - Thrown if the category product assignment does not exist. or `ProductNotFoundException` - Thrown if the product does not exist matching the given id.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_product_assignment`.
    

### POST Search Categories within a Catalog

`POST /catalogs/{catalog_id}/category_search`

Operation ID: `Search Categories within a Catalog`. Tags: catalogs. Security: oauth2\_application.

Searches for catalog categories in the scope of catalog

By default, the server also returns the first level of subcategories, but you can specify another level by setting the levels parameter. Please note, using a large value for levels may cause performance issues in case of a large and deep category tree.

The query attribute specifies a complex query that can be used to narrow down the search. These are the list of searchable attributes:

*   id - String
    
*   name - String
    
*   description - String
    
*   creation\_date - DateTime
    
*   online - Boolean
    
*   parent\_category\_id - String
    

The output of the query can also be sorted. These are the list of sortable attributes:

*   id - String
    
*   name - String
    
*   description - String
    
*   creation\_date - DateTime
    
*   online - Boolean
    
*   position - Double
    

This endpoint may return the following faults:

*   400 - MalformedSearchParameterException - Thrown if the query is ill-formed.
*   404 - CatalogNotFoundException - Thrown if the specified catalog does not exist.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1. Maximum length: 256.
*   `levels` (query, integer (int32))  
    Minimum: 0.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `search_request`.

#### Responses

*   **400** `MalformedSearchParameterException` - Thrown if the query is ill-formed.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CatalogNotFoundException` - Thrown if the specified catalog does not exist.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `category_search_result`.
    

### GET Get Shared Product Options

`GET /catalogs/{catalog_id}/shared_product_options`

Operation ID: `Get Shared Product Options`. Tags: catalogs. Security: oauth2\_application.

Read shared product options in a catalog.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `start` (query, integer (int32)) Optional start index for retrieving the items from a given index (default 0).
*   `count` (query, integer (int32)) Optional count for retrieving only a subset of the items (default is 25).
*   `select` (query, string) The property selector.
*   `currency` (query, string) The currency mnemonic for retrieving the product option values according to the sorting mode.ex:'USD'

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_options`.
    

### GET Get Product option

`GET /catalogs/{catalog_id}/shared_product_options/{id}`

Operation ID: `Get Product option`. Tags: catalogs. Security: oauth2\_application.

Read a shared product option in a catalog.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - ProductOptionNotFoundException - Indicates the shared product option is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the shared product option.  
    Minimum length: 1.
*   `currency` (query, string) The currency mnemonic for retrieving the product option values according to the sorting mode.ex:'USD'

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `ProductOptionNotFoundException` - Indicates the shared product option is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_option`.
    

### PUT Create Shared Product Option

`PUT /catalogs/{catalog_id}/shared_product_options/{id}`

Operation ID: `Create Shared Product Option`. Tags: catalogs. Security: oauth2\_application.

Creates a shared product option using the information provided.

This endpoint may return the following faults:

*   400 - ProductOptionDuplicateException - Indicates the shared product option is a duplicate.
*   500 - AttributeDefinitionNotFoundException - Indicates the id specified is not a valid attribute definition.
*   404 - CatalogNotFoundException - Indicates the catalog is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the shared product option.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `product_option`.

#### Responses

*   **400** `ProductOptionDuplicateException` - Indicates the shared product option is a duplicate.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CatalogNotFoundException` - Indicates the catalog is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **500** `AttributeDefinitionNotFoundException` - Indicates the id specified is not a valid attribute definition.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_option`.
    

### DELETE Delete Shared Product Option

`DELETE /catalogs/{catalog_id}/shared_product_options/{id}`

Operation ID: `Delete Shared Product Option`. Tags: catalogs. Security: oauth2\_application.

Deletes a shared product option by ID.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - ProductOptionNotFoundException - Indicates the shared product option is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the shared product option.

#### Responses

*   **204**
*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `ProductOptionNotFoundException` - Indicates the shared product option is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update Shared Product Option

`PATCH /catalogs/{catalog_id}/shared_product_options/{id}`

Operation ID: `Update Shared Product Option`. Tags: catalogs. Security: oauth2\_application.

Updates a shared product option with the information provided.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - ProductOptionNotFoundException - Indicates the shared product option is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the shared product option.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `product_option`.

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `ProductOptionNotFoundException` - Indicates the shared product option is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_option`.
    

### GET Get Shared Product Option Values

`GET /catalogs/{catalog_id}/shared_product_options/{option_id}/values`

Operation ID: `Get Shared Product Option Values`. Tags: catalogs. Security: oauth2\_application.

Read shared product option values of a shared product option in a catalog.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - ProductOptionNotFoundException - Indicates the shared product option is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `option_id` (path, string, required) The id of the shared product option.  
    Minimum length: 1.
*   `start` (query, integer (int32)) Optional start index for retrieving the items from a given index (default 0).
*   `count` (query, integer (int32)) Optional count for retrieving only a subset of the items (default is 25).
*   `select` (query, string) The property selector.

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `ProductOptionNotFoundException` - Indicates the shared product option is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_option_values`.
    

### GET Get Shared Product Option Value

`GET /catalogs/{catalog_id}/shared_product_options/{option_id}/values/{id}`

Operation ID: `Get Shared Product Option Value`. Tags: catalogs. Security: oauth2\_application.

Read a shared product option value of a shared product option in a catalog.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - ProductOptionNotFoundException - Indicates the shared product option is not found.
*   404 - ProductOptionValueNotFoundException - Indicates the shared product option value is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `option_id` (path, string, required) The id of the shared product option.  
    Minimum length: 1.
*   `id` (path, string, required) the id of shared product option value.  
    Minimum length: 1.

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `ProductOptionNotFoundException` - Indicates the shared product option is not found. or `ProductOptionValueNotFoundException` - Indicates the shared product option value is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_option_value`.
    

### PUT Create Shared Product Option Value

`PUT /catalogs/{catalog_id}/shared_product_options/{option_id}/values/{id}`

Operation ID: `Create Shared Product Option Value`. Tags: catalogs. Security: oauth2\_application.

Creates a shared product option value using the information provided.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - ProductOptionNotFoundException - Indicates the shared product option is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `option_id` (path, string, required) The id of the shared product option.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the shared product option value.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `product_option_value`.

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `ProductOptionNotFoundException` - Indicates the shared product option is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_option_value`.
    

### DELETE Delete Shared Product Option Value

`DELETE /catalogs/{catalog_id}/shared_product_options/{option_id}/values/{id}`

Operation ID: `Delete Shared Product Option Value`. Tags: catalogs. Security: oauth2\_application.

Deletes a shared product option value by ID.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - ProductOptionNotFoundException - Indicates the shared product option is not found.
*   404 - ProductOptionValueNotFoundException - Indicates the shared product option value is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `option_id` (path, string, required) The id of the shared product option.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the shared product option value.

#### Responses

*   **204**
*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `ProductOptionNotFoundException` - Indicates the shared product option is not found. or `ProductOptionValueNotFoundException` - Indicates the shared product option value is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update Shared Product Option Value

`PATCH /catalogs/{catalog_id}/shared_product_options/{option_id}/values/{id}`

Operation ID: `Update Shared Product Option Value`. Tags: catalogs. Security: oauth2\_application.

Updates a shared product option value with the information provided.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - ProductOptionNotFoundException - Indicates the shared product option is not found.
*   404 - ProductOptionValueNotFoundException - Indicates the shared product option value is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `option_id` (path, string, required) The id of the shared product option.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the shared product option value.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `product_option_value`.

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `ProductOptionNotFoundException` - Indicates the shared product option is not found. or `ProductOptionValueNotFoundException` - Indicates the shared product option value is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_option_value`.
    

### GET Get shared Variation Attributes

`GET /catalogs/{catalog_id}/shared_variation_attributes`

Operation ID: `Get shared Variation Attributes`. Tags: catalogs. Security: oauth2\_application.

Reads variation attributes of a Domain.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.

#### Parameters

*   `catalog_id` (path, string, required) id of the catalog.  
    Minimum length: 1.
*   `start` (query, integer (int32))
*   `count` (query, integer (int32))
*   `select` (query, string)

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `variation_attributes`.
    

### GET Get Shared Variation Attribute Values

`GET /catalogs/{catalog_id}/shared_variation_attributes/{attribute_id}/values`

Operation ID: `Get Shared Variation Attribute Values`. Tags: catalogs. Security: oauth2\_application.

Reads variation attribute values of a variation attribute of a catalog.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - VariationAttributeNotFoundException - Indicate the variation attribute is not found

#### Parameters

*   `catalog_id` (path, string, required) id of the owning catalog.  
    Minimum length: 1.
*   `attribute_id` (path, string, required) The variation attribute ID that contains the values.  
    Minimum length: 1.
*   `start` (query, integer (int32)) the first record to get in the page
*   `count` (query, integer (int32)) the number of records to get
*   `select` (query, string) a string that specifies which fields to return (default is all).

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `VariationAttributeNotFoundException` - Indicate the variation attribute is not found
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `variation_attribute_values`.
    

### GET Get Shared Variation Attribute Value

`GET /catalogs/{catalog_id}/shared_variation_attributes/{attribute_id}/values/{id}`

Operation ID: `Get Shared Variation Attribute Value`. Tags: catalogs. Security: oauth2\_application.

Action to get Shared Variation Attribute value information.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - VariationAttributeNotFoundException - Indicate the variation attribute is not found
*   404 - VariationAttributeValueNotFoundException - Indicate the variation attribute value is not found

#### Parameters

*   `catalog_id` (path, string, required) The owning catalog ID.  
    Minimum length: 1.
*   `attribute_id` (path, string, required) The variation attribute custom ID  
    Minimum length: 1.
*   `id` (path, string, required) The id of the variation attribute value  
    Minimum length: 1.

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `VariationAttributeNotFoundException` - Indicate the variation attribute is not found or `VariationAttributeValueNotFoundException` - Indicate the variation attribute value is not found
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `variation_attribute_value`.
    

### PUT Put Shared Variation Attribute Value

`PUT /catalogs/{catalog_id}/shared_variation_attributes/{attribute_id}/values/{id}`

Operation ID: `Put Shared Variation Attribute Value`. Tags: catalogs. Security: oauth2\_application.

Action to create a Shared Variation Attribute value.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - VariationAttributeNotFoundException - Indicate the variation attribute is not found
*   404 - VariationAttributeValueNotFoundException - Indicate the variation attribute value is not found

#### Parameters

*   `catalog_id` (path, string, required) The owning catalog ID.  
    Minimum length: 1.
*   `attribute_id` (path, string, required) The variation attribute ID  
    Minimum length: 1.
*   `id` (path, string, required) The id of the variation attribute value  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `variation_attribute_value`.

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `VariationAttributeNotFoundException` - Indicate the variation attribute is not found or `VariationAttributeValueNotFoundException` - Indicate the variation attribute value is not found
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `variation_attribute_value`.
    

### DELETE Delete Shared Variation Attribute Value

`DELETE /catalogs/{catalog_id}/shared_variation_attributes/{attribute_id}/values/{id}`

Operation ID: `Delete Shared Variation Attribute Value`. Tags: catalogs. Security: oauth2\_application.

Deletes the variation attribute value of a variation attribute bound to a catalog

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - if the catalog id specified cannot be found
*   404 - VariationAttributeNotFoundException - if the attribute id specified is not a valid variation attribute
*   404 - VariationAttributeValueNotFoundException - if the value id specified does not a valid value id

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `attribute_id` (path, string, required) The id of the variation attribute that contains the value.  
    Minimum length: 1.
*   `id` (path, string, required) The id of one value to remove

#### Responses

*   **204**
*   **404** `CatalogNotFoundException` - if the catalog id specified cannot be found or `VariationAttributeNotFoundException` - if the attribute id specified is not a valid variation attribute or `VariationAttributeValueNotFoundException` - if the value id specified does not a valid value id
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update Shared Variation Attribute Value

`PATCH /catalogs/{catalog_id}/shared_variation_attributes/{attribute_id}/values/{id}`

Operation ID: `Update Shared Variation Attribute Value`. Tags: catalogs. Security: oauth2\_application.

Updates the variation attribute value of a variation attribute of a catalog.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - if the catalog id specified cannot be found
*   404 - VariationAttributeNotFoundException - if the attribute id specified is not a valid variation attribute
*   404 - VariationAttributeValueNotFoundException - if the value id specified does not a valid value id

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `attribute_id` (path, string, required) The id of the requested variation attribute.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the variation value.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `variation_attribute_value`.

#### Responses

*   **404** `CatalogNotFoundException` - if the catalog id specified cannot be found or `VariationAttributeNotFoundException` - if the attribute id specified is not a valid variation attribute or `VariationAttributeValueNotFoundException` - if the value id specified does not a valid value id
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `variation_attribute_value`.
    

### GET Get shared Variation Attribute

`GET /catalogs/{catalog_id}/shared_variation_attributes/{id}`

Operation ID: `Get shared Variation Attribute`. Tags: catalogs. Security: oauth2\_application.

Action to get shared variation attribute information only for master Catalog.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - VariationAttributeNotFoundException - Thrown if the variation attribute matching the given id does not exist.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the requested variation attribute.  
    Minimum length: 1.

#### Responses

*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `VariationAttributeNotFoundException` - Thrown if the variation attribute matching the given id does not exist.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `variation_attribute`.
    

### PUT Create shared Variation Attribute

`PUT /catalogs/{catalog_id}/shared_variation_attributes/{id}`

Operation ID: `Create shared Variation Attribute`. Tags: catalogs. Security: oauth2\_application.

Creates a shared variation attribute using the information provided. To create a variation attribute specific to a product, use the products resource.

This endpoint may return the following faults:

*   400 - SharedVariationAttributeIDNotUniqueException - if the specified id isn't unique.
*   500 - AttributeDefinitionNotFoundException - if attribute definition supplied is not a product attribute.
*   404 - CatalogNotFoundException - Indicates the catalog is not found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the variation attribute to create.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `variation_attribute`.

#### Responses

*   **400** `SharedVariationAttributeIDNotUniqueException` - if the specified id isn't unique.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CatalogNotFoundException` - Indicates the catalog is not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **500** `AttributeDefinitionNotFoundException` - if attribute definition supplied is not a product attribute.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `variation_attribute`.
    

### DELETE Delete shared Variation Attribute

`DELETE /catalogs/{catalog_id}/shared_variation_attributes/{id}`

Operation ID: `Delete shared Variation Attribute`. Tags: catalogs. Security: oauth2\_application.

Deletes the shared variation attribute by ID.

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - Indicates the catalog is not found.
*   404 - VariationAttributeNotFoundException - Thrown if the variation attribute does not exist.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `id` (path, string, required) One variation attribute id to remove.

#### Responses

*   **204**
*   **404** `CatalogNotFoundException` - Indicates the catalog is not found. or `VariationAttributeNotFoundException` - Thrown if the variation attribute does not exist.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update shared Variation Attribute

`PATCH /catalogs/{catalog_id}/shared_variation_attributes/{id}`

Operation ID: `Update shared Variation Attribute`. Tags: catalogs. Security: oauth2\_application.

Updates the shared variation attribute with the specified information.

*   name
    
*   slicing
    

This endpoint may return the following faults:

*   404 - CatalogNotFoundException - if the specified catalog id cannot be found.

#### Parameters

*   `catalog_id` (path, string, required) The id of the catalog.  
    Minimum length: 1.
*   `id` (path, string, required) The id of the requested variation attribute.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `variation_attribute`.

#### Responses

*   **404** `CatalogNotFoundException` - if the specified catalog id cannot be found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `variation_attribute`.
    

## Schemas

### catalogs

Document representing an unfiltered list of catalogs.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of catalog_) The collection of catalogs.
*   `expand` (_array of string_) The list of expands set for the search request. Expands are optional.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 2,
  "data": [
    {
      "assigned_product_count": 22,
      "assigned_sites": [
        {
          "customer_list_link": {
            "customer_list_id": "list1"
          },
          "description": "Site's site used for test.",
          "display_name": "Test site 1",
          "id": "site-1"
        },
        {
          "customer_list_link": {
            "customer_list_id": "list2"
          },
          "description": "Site's site used for test 2.",
          "display_name": "Test site 2",
          "id": "site-2"
        }
      ],
      "category_count": 14,
      "creation_date": "2015-11-18T05:00:00.000Z",
      "description": {
        "de": "A German my-description",
        "default": "my-description",
        "en": "An English my-description"
      },
      "end_maintenance": "2015-9-20T05:00:00.000Z",
      "id": "my-catalog1",
      "is_master_catalog": false,
      "is_storefront_catalog": false,
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog1",
      "name": {
        "de": "A German my-name",
        "default": "my-name",
        "en": "An English my-name"
      },
      "online": true,
      "owned_product_count": 19,
      "recommendation_count": 20,
      "root_category": "my-root_category",
      "start_maintenance": "2015-7-22T05:00:00.000Z"
    },
    {
      "assigned_product_count": 22,
      "assigned_sites": [],
      "category_count": 14,
      "creation_date": "2015-11-18T05:00:00.000Z",
      "description": {
        "de": "A German my-description",
        "default": "my-description",
        "en": "An English my-description"
      },
      "end_maintenance": "2015-9-20T05:00:00.000Z",
      "id": "my-catalog2",
      "is_master_catalog": false,
      "is_storefront_catalog": false,
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog1",
      "name": {
        "de": "A German my-name",
        "default": "my-name",
        "en": "An English my-name"
      },
      "online": true,
      "owned_product_count": 19,
      "recommendation_count": 20,
      "root_category": "my-root_category",
      "start_maintenance": "2015-7-22T05:00:00.000Z"
    }
  ],
  "select": "**",
  "start": 0,
  "total": 2
}
```

### fault

Document representing a fault message that is returned whenever the HTTP status code is greater than or equal to 400 (which indicates an error).

*   `arguments` (_object_)
    
    A map that provides fault arguments.
    
    Data can be used to provide error messages on the client side.
    
    Additional properties: `object`.
    
*   `cause` (_cause_)
*   `display_message_pattern` (_string_) The localized display message pattern, if the request parameter display\_locale was given
*   `message` (_string_) The message text of the java exception.
*   `stack_trace` (_string_)
*   `type` (_string_) The name of the java exception.

### catalog

Document representing a catalog

*   `assigned_product_count` (_integer (int32)_) The count of products assigned to the catalog. It is read only.
*   `assigned_sites` (_array of site_) The sites assigned to the catalog. It is read only.
*   `category_count` (_integer (int32)_) The category count of catalog. It is read only.
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `description` (_object (localized)_) The description of catalog
    
    Additional properties: `string`.
    
*   `id` (_string_) The catalog Id
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `link` (_string_) URL that is used to get this instance. It is read only.
*   `name` (_object (localized)_) The catalog name
    
    Additional properties: `string`.
    
*   `online` (_boolean_) The online status of catalog
*   `owned_product_count` (_integer (int32)_) The count of products owned by the catalog. It is read only.
*   `recommendation_count` (_integer (int32)_) The recommendation count of the catalog. It is read only.
*   `root_category` (_string_) The root category of the catalog. It is read only

_Example_

```
{
  "assigned_product_count": 96,
  "assigned_sites": [
    {
      "customer_list_link": {
        "customer_list_id": "list1"
      },
      "description": "Site's site used for test.",
      "display_name": "Test site 1",
      "id": "site-1"
    },
    {
      "customer_list_link": {
        "customer_list_id": "list2"
      },
      "description": "Site's site used for test 2.",
      "display_name": "Test site 2",
      "id": "site-2"
    }
  ],
  "category_count": 37,
  "creation_date": "2015-10-02T14:16:08.000Z",
  "description": "My catalog.",
  "id": "my-catalog",
  "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog",
  "name": "My Catalog",
  "online": true,
  "owned_product_count": 148,
  "recommendation_count": 5,
  "root_category": "root"
}
```

### categories

Document representing an unfiltered list of categories.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of category_)
*   `expand` (_array of string_) The list of expands set for the search request. Expands are optional.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 1,
  "data": [
    {
      "categories": [
        {
          "creation_date": "2015-11-30T18:48:37.333Z",
          "description": {
            "default": "sub-category 1 for main catalog"
          },
          "id": "sub-category-1",
          "image": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20image",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/main-catalog/categories/sub-category-1",
          "name": {
            "default": "Sub-category 1"
          },
          "online": true,
          "parent_category_id": "root",
          "paths": [
            {
              "id": "sub-category-1",
              "name": {
                "default": "Sub-category 1"
              }
            }
          ],
          "position": 1,
          "thumbnail": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20thumbnail"
        }
      ],
      "creation_date": "2015-11-29T18:48:37.333Z",
      "description": {
        "default": "root category for main catalog"
      },
      "id": "root",
      "image": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20image",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/main-catalog/categories/root",
      "name": {
        "default": "Root Category"
      },
      "online": true,
      "paths": [
        {
          "id": "root",
          "name": {
            "default": "root"
          }
        }
      ],
      "position": 1,
      "sorting_rules": [
        {
          "creation_date": "2015-11-19T20:46:37.000Z",
          "description": "Sorts by price ascending",
          "id": "price-low-to-high",
          "product_sorting_rule_steps": [
            {
              "direction": "Ascending",
              "is_system": false,
              "position": 0,
              "text_relevance_included": false,
              "type_id": "price"
            }
          ],
          "site": "main-site"
        }
      ],
      "thumbnail": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20thumbnail"
    }
  ],
  "select": "**",
  "start": 0,
  "total": 1
}
```

### category

Document representing a category.

*   `catalog_id` (_string_) The id of the catalog that contains it.
*   `categories` (_array of category_) The array of sub categories for the category.
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `description` (_object (localized)_) The localized description of the category.
    
    Additional properties: `string`.
    
*   `id` (_string_) The id of the category.  
    Minimum length: 1. Maximum length: 256.
*   `image` (_string_) The name of the category image. The URL to the image is computed.  
    Minimum length: 1. Maximum length: 256.
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `link` (_string_) The URL to get the category. This is a computed attribute and cannot be modified.
*   `name` (_object (localized)_) The localized name of the category.
    
    Additional properties: `string`.
    
*   `online` (_boolean_) The online status of the category determines if it is visible in the storefront. Defaults to false if not specified on create.
*   `page_description` (_object (localized)_) The localized page description of the category.
    
    Additional properties: `string`.
    
*   `page_keywords` (_object (localized)_) The localized page keywords for the category.
    
    Additional properties: `string`.
    
*   `page_title` (_object (localized)_) The localized page title of the category.
    
    Additional properties: `string`.
    
*   `parent_category_id` (_string_) The id of the parent category. Defaults to root if not specified on create.  
    Minimum length: 1. Maximum length: 256.
*   `paths` (_array of path\_record_)
*   `position` (_number (double)_) The position of the category determines the display order in the storefront.
*   `sorting_rules` (_array of sorting\_rule_)
*   `thumbnail` (_string_) The name of the category thumbnail. The URL to the thumbnail is computed.  
    Minimum length: 1. Maximum length: 256.

_Example_

```
{
  "categories": [
    {
      "creation_date": "2015-11-30T18:48:37.333Z",
      "description": {
        "default": "sub-category 1 for main catalog"
      },
      "id": "sub-category-1",
      "image": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20image",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/main-catalog/categories/sub-category-1",
      "name": {
        "default": "Sub-category 1"
      },
      "online": true,
      "parent_category_id": "root",
      "paths": [
        {
          "id": "main-catalog",
          "name": {
            "default": "Main Catalog"
          }
        },
        {
          "id": "root",
          "name": {
            "default": "root category"
          }
        },
        {
          "id": "sub-category-1",
          "name": {
            "default": "Sub-category 1"
          }
        }
      ],
      "position": 1,
      "thumbnail": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20thumbnail"
    },
    {
      "creation_date": "2015-12-02T18:48:37.333Z",
      "description": {
        "default": "sub-category 2 for main catalog"
      },
      "id": "sub-category-2",
      "image": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20image",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/main-catalog/categories/sub-category-2",
      "name": {
        "default": "Sub-category 2"
      },
      "online": true,
      "parent_category_id": "root",
      "paths": [
        {
          "id": "main-catalog",
          "name": {
            "default": "Main Catalog"
          }
        },
        {
          "id": "root",
          "name": {
            "default": "root category"
          }
        },
        {
          "id": "sub-category-2",
          "name": {
            "default": "Sub-category 2"
          }
        }
      ],
      "position": 2,
      "thumbnail": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20thumbnail"
    }
  ],
  "creation_date": "2015-11-29T18:48:37.333Z",
  "description": {
    "default": "root category for main catalog"
  },
  "id": "root",
  "image": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20image",
  "link": "https://example.com/s/-/dw/data/{version}/catalogs/main-catalog/categories/root",
  "name": {
    "default": "Root Category"
  },
  "online": true,
  "paths": [
    {
      "id": "main-catalog",
      "name": {
        "default": "Main Catalog"
      }
    },
    {
      "id": "root",
      "name": {
        "default": "root"
      }
    }
  ],
  "position": 1,
  "sorting_rules": [
    {
      "creation_date": "2015-11-19T20:46:37.000Z",
      "description": "Sorts by price ascending",
      "id": "price-low-to-high",
      "product_sorting_rule_steps": [
        {
          "direction": "Ascending",
          "is_system": false,
          "position": 0,
          "text_relevance_included": false,
          "type_id": "price"
        }
      ],
      "site": "main-site"
    },
    {
      "creation_date": "2015-11-19T20:46:37.000Z",
      "description": "Sorts by price ascending",
      "id": "price-low-to-high",
      "product_sorting_rule_steps": [
        {
          "direction": "Ascending",
          "is_system": false,
          "position": 0,
          "text_relevance_included": false,
          "type_id": "price"
        }
      ],
      "site": "main-site"
    }
  ],
  "thumbnail": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20thumbnail"
}
```

### category\_links

Document representing an unfiltered list of category links.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of category\_link_)
*   `expand` (_array of string_) The list of expands set for the search request. Expands are optional.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 2,
  "data": [
    {
      "last_modified": "2015-11-18.75:15:24.827Z",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/MyCatalog/categories/MyCategory1/category_links/OtherCatalog/Category1/other",
      "position": 1,
      "source_catalog_id": "MyCatalog",
      "source_catalog_name": {
        "default": "My Catalog"
      },
      "source_category_id": "MyCategory1",
      "source_category_name": {
        "default": "My Awesome Category"
      },
      "target_catalog_id": "OtherCatalog",
      "target_catalog_name": {
        "default": "That Other Catalog"
      },
      "target_category_id": "Category1",
      "target_category_name": {
        "default": "Category 1"
      },
      "type": "other"
    },
    {
      "last_modified": "2015-11-19T15:15:24.000Z",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/MyCatalog/categories/MyCategory1/category_links/OtherCatalog/Category2/other",
      "position": 2,
      "source_catalog_id": "MyCatalog",
      "source_catalog_name": {
        "default": "My Catalog"
      },
      "source_category_id": "MyCategory1",
      "source_category_name": {
        "default": "My Awesome Category"
      },
      "target_catalog_id": "OtherCatalog",
      "target_catalog_name": {
        "default": "That Other Catalog"
      },
      "target_category_id": "Category2",
      "target_category_name": {
        "default": "Category 2"
      },
      "type": "other"
    }
  ],
  "select": "(**)",
  "start": 0,
  "total": 2
}
```

### category\_link

Document representing a category link

*   `last_modified` (_string (date-time)_) The date the link was last modified
*   `link` (_string_) URL that is used to get this instance
*   `position` (_number (double)_) The position in the source catalog / category for this link relative to the other links in the same category.  
    Minimum: 0.
*   `source_catalog_id` (_string_) The source catalog for the link
*   `source_catalog_name` (_object (localized)_) The name of the source catalog
    
    Additional properties: `string`.
    
*   `source_category_id` (_string_) The source category for the link
*   `source_category_name` (_object (localized)_) The name of the source category
    
    Additional properties: `string`.
    
*   `target_catalog_id` (_string_) The target category for the link
*   `target_catalog_name` (_object (localized)_) The name of the target catalog
    
    Additional properties: `string`.
    
*   `target_category_id` (_string_) The target category for the link
*   `target_category_name` (_object (localized)_) The name of the target category
    
    Additional properties: `string`.
    
*   `type` (_string_) The link type  
    Allowed values: `other`, `accessories`, `cross_selling`, `up_selling`, `spare_parts`.

_Example_

```
{
  "last_modified": "2015-11-18.75:15:24.827Z",
  "link": "https://example.com/s/-/dw/data/{version}/catalogs/MyCatalog/categories/MyCategory1/category_links/OtherCatalog/Category1/other",
  "position": 2,
  "source_catalog_id": "MyCatalog",
  "source_catalog_name": {
    "default": "My Catalog"
  },
  "source_category_id": "MyCategory1",
  "source_category_name": {
    "default": "My Awesome Category"
  },
  "target_catalog_id": "OtherCatalog",
  "target_catalog_name": {
    "default": "That Other Catalog"
  },
  "target_category_id": "Category1",
  "target_category_name": {
    "default": "Category 1"
  },
  "type": "other"
}
```

### category\_product\_assignment\_search\_request

Document representing product\_search\_request

*   `count` (_integer (int32)_) The number of returned documents  
    Minimum: 1. Maximum: 200.
*   `db_start_record_` (_integer (int32)_) The zero-based index of the record that we want to start with, used to optimize special handling  
    Minimum: 0.
*   `expand` (_array of string_)
    
    The list of expansions that can be applied:
    
    *   product\_base - String - This expand will enable retrieval of the following basic **Product** information:
        
        *   brand
            
        *   ean
            
        *   link
            
        *   long\_description
            
        *   manufacturer\_name
            
        *   manufacturer\_sku
            
        *   name
            
        *   page\_description
            
        *   page\_keywords
            
        *   page\_title
            
        *   searchable
            
        *   short\_description
            
        *   type
            
        *   unit
            
        *   upc
            
*   `query` (_query_, required) The query passed into the search
*   `select` (_string_) The field to be selected.
*   `sorts` (_array of sort_) The list of sort clauses configured for the search request. Sort clauses are optional.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.

_Example_

```
{
  "expand": [
    "product_base"
  ],
  "query": {
    "text_query": {
      "fields": [
        "product_id"
      ],
      "search_phrase": "sample_product"
    }
  },
  "select": "(**)"
}
```

### category\_product\_assignment\_search\_result

Document representing a product search result.

*   `count` (_integer (int32)_) The number of returned documents
*   `data` (_array of object_)
*   `db_start_record_` (_integer (int32)_) The zero-based index of the record that we want to start with, used to optimize special handling  
    Minimum: 0.
*   `expand` (_array of string_) List of expansions to be applied to each search results. Expands are optional
*   `hits` (_array of category\_product\_assignment_) The sorted array of search hits. This array can be empty.
*   `next` (_result\_page_) The data that can be used (as parameters on the search request) to retrieve the next result page.
*   `previous` (_result\_page_) The data that can be used (as parameters on the search request) to retrieve the previous result page.
*   `query` (_query_) The query passed into the search
*   `select` (_string_) The field to be selected.
*   `sorts` (_array of sort_) The list of sort clauses configured for the search request. Sort clauses are optional.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The number of returned documents

_Example_

```
{
  "count": 2,
  "hits": [
    {
      "catalog_id": "SampleCatalog",
      "category_id": "SampleCategory",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/SampleCatalog/category_product_assignments/SampleCategory/sample_product1",
      "owning_catalog_name": {
        "default": "Apparel Main Catalog"
      },
      "position": 1,
      "product": {
        "id": "sample_product",
        "link": "https://example.com/s/-/dw/data/{version}/products/sample_product1",
        "long_description": {
          "default": "We took this classic crew neck and updated it with jewels and embroidery."
        },
        "name": {
          "default": "Long Sleeve Appliqued Crew Neck"
        },
        "online": true,
        "page_description": {
          "default": "We took this classic crew neck and updated it with jewels and embroidery."
        },
        "page_title": {
          "default": "Long Sleeve Appliqued Crew Neck"
        },
        "searchable": true,
        "short_description": {
          "default": "We took this classic crew neck and updated it with jewels and embroidery."
        },
        "type": {
          "variant": true
        },
        "upc": "701642824237"
      },
      "product_id": "sample_product1"
    },
    {
      "catalog_id": "SampleCatalog",
      "category_id": "SampleCategory",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/SampleCatalog/category_product_assignments/SampleCategory/sample_product2",
      "owning_catalog_name": {
        "default": "Apparel Main Catalog"
      },
      "position": 2,
      "product": {
        "id": "008884304023",
        "link": "https://example.com/s/-/dw/data/{version}/products/sample_product2",
        "long_description": {
          "default": "Love our easy care solid shirting? Then give our stripes a try! This subtle blue stripe is a nice option to have in your closet for workplace wear and it even has a bit of stretch for extra comfort."
        },
        "name": {
          "default": "Platinum Blue Stripes Easy Care Fitted Shirt "
        },
        "online": true,
        "page_description": {
          "default": "Love our easy care solid shirting? Then give our stripes a try! This subtle blue stripe is a nice option to have in your closet for workplace wear and it even has a bit of stretch for extra comfort."
        },
        "page_title": {
          "default": "Platinum Blue Stripes Easy Care Fitted Shirt "
        },
        "searchable": true,
        "short_description": {
          "default": "Love our easy care solid shirting? Then give our stripes a try! This subtle blue stripe is a nice option to have in your closet for workplace wear and it even has a bit of stretch for extra comfort."
        },
        "type": {
          "variant": true
        },
        "upc": "008884304023"
      },
      "product_id": "sample_product2"
    }
  ],
  "query": {
    "text_query": {
      "fields": [
        "id"
      ],
      "search_phrase": "sample_product"
    }
  },
  "select": "**",
  "start": 0,
  "total": 2
}
```

### category\_product\_assignment

Document representing a category product assignment.

*   `catalog_id` (_string_) The id of the catalog.  
    Minimum length: 1. Maximum length: 256.
*   `category_id` (_string_) The id of the category.  
    Minimum length: 1. Maximum length: 256.
*   `creation_date` (_string (date-time)_)
*   `last_modified` (_string (date-time)_)
*   `link` (_string_) The URL used to get the product category assignment.
*   `owning_catalog_name` (_object (localized)_) The name of the catalog that owns the product.
    
    Additional properties: `string`.
    
*   `position` (_number (double)_) The position of product category assignment.
*   `product` (_product_) The product that is assigned to the category.
*   `product_id` (_string_) The id of the Product.  
    Minimum length: 1. Maximum length: 256.
*   `product_name` (_object (localized)_) The name of the product.
    
    Additional properties: `string`.
    

_Example_

```
{
  "catalog_id": "SampleCatalog",
  "category_id": "SampleCategory",
  "link": "https://example.com/s/-/dw/data/{version}/catalogs/SampleCatalog/category_product_assignments/SampleCategory/sample_product1",
  "owning_catalog_name": {
    "default": "Apparel Main Catalog"
  },
  "position": 1,
  "product": {
    "id": "sample_product",
    "link": "https://example.com/s/-/dw/data/{version}/products/sample_product1",
    "long_description": {
      "default": "We took this classic crew neck and updated it with jewels and embroidery."
    },
    "name": {
      "default": "Long Sleeve Appliqued Crew Neck"
    },
    "online": true,
    "page_description": {
      "default": "We took this classic crew neck and updated it with jewels and embroidery."
    },
    "page_title": {
      "default": "Long Sleeve Appliqued Crew Neck"
    },
    "searchable": true,
    "short_description": {
      "default": "We took this classic crew neck and updated it with jewels and embroidery."
    },
    "type": {
      "variant": true
    },
    "upc": "701642824237"
  },
  "product_id": "sample_product1"
}
```

### search\_request

Document representing a search request for retrieving items within the Data API. The query is a potentially complex set of expressions. The fields that each query supports are defined within the search resource.

*   `count` (_integer (int32)_) The number of returned documents  
    Minimum: 1. Maximum: 200.
*   `db_start_record_` (_integer (int32)_) The zero-based index of the record that we want to start with, used to optimize special handling  
    Minimum: 0.
*   `expand` (_array of string_) List of expansions to be applied to each search results. Expands are optional
*   `query` (_query_, required) The query to apply
*   `select` (_string_) The field to be selected.
*   `sorts` (_array of sort_) The list of sort clauses configured for the search request. Sort clauses are optional.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.

### category\_search\_result

Document representing a catalog search result.

*   `count` (_integer (int32)_) The number of returned documents
*   `data` (_array of object_)
*   `db_start_record_` (_integer (int32)_) The zero-based index of the record that we want to start with, used to optimize special handling  
    Minimum: 0.
*   `expand` (_array of string_) List of expansions to be applied to each search results. Expands are optional
*   `hits` (_array of category_) The sorted array of search hits. Can be empty.
*   `next` (_result\_page_) The data that can be used (as parameters on the search request) to retrieve the next result page.
*   `previous` (_result\_page_) The data that can be used (as parameters on the search request) to retrieve the previous result page.
*   `query` (_query_) The query passed into the search
*   `select` (_string_) The field to be selected.
*   `sorts` (_array of sort_) The list of sort clauses configured for the search request. Sort clauses are optional.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The number of returned documents

_Example_

```
{
  "count": 1,
  "data": [
    {
      "categories": [
        {
          "creation_date": "2015-11-30T18:48:37.333Z",
          "description": {
            "default": "sub-category 1 for main catalog"
          },
          "id": "sub-category-1",
          "image": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20image",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/main-catalog/categories/sub-category-1",
          "name": {
            "default": "Sub-category 1"
          },
          "online": true,
          "parent_category_id": "root",
          "paths": [
            {
              "id": "sub-category-1",
              "name": {
                "default": "Sub-category 1"
              }
            }
          ],
          "position": 1,
          "thumbnail": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20thumbnail"
        }
      ],
      "creation_date": "2015-11-29T18:48:37.333Z",
      "description": {
        "default": "root category for main catalog"
      },
      "id": "root",
      "image": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20image",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/main-catalog/categories/root",
      "name": {
        "default": "Root Category"
      },
      "online": true,
      "paths": [
        {
          "id": "root",
          "name": {
            "default": "root"
          }
        }
      ],
      "position": 1,
      "sorting_rules": [
        {
          "creation_date": "2015-11-19T20:46:37.000Z",
          "description": "Sorts by price ascending",
          "id": "price-low-to-high",
          "product_sorting_rule_steps": [
            {
              "direction": "Ascending",
              "is_system": false,
              "position": 0,
              "text_relevance_included": false,
              "type_id": "price"
            }
          ],
          "site": "main-site"
        }
      ],
      "thumbnail": "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20thumbnail"
    }
  ],
  "select": "**",
  "start": 0,
  "total": 1
}
```

### product\_options

Document representing an unfiltered list of product options.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of product\_option_)
*   `expand` (_array of string_) The list of expands set for the search request. Expands are optional.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 2,
  "data": [
    {
      "custom_name": {
        "default": "Shared Service"
      },
      "default_product_option_value": "S00",
      "description": {
        "default": "Service description"
      },
      "id": "service",
      "image": {
        "abs_url": "https://example.com/on/demandware.static/-/Sites-my-catalog/default/vc8f08a6edba0d7c8e1dec6c535661e44154b54b4/Desert.jpg",
        "dis_base_url": "https://example.com/dw/image/v2/zzzz_s01/on/demandware.static/-/Sites-my-catalog/default/vc8f08a6edba0d7c8e1dec6c535661e44154b54b4/Desert.jpg",
        "path": "Desert.jpg"
      },
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/service",
      "name": "Shared Service",
      "shared": true,
      "sorting_mode": "byexplicitorder",
      "values": [
        {
          "id": "S00",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/service/Values/S00",
          "sku_extension": "S00",
          "value": {
            "default": "None"
          }
        },
        {
          "id": "S01",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/service/Values/S01",
          "option_price": {
            "USD": "9.99"
          },
          "sku_extension": "S01",
          "value": {
            "default": "1-year"
          }
        },
        {
          "id": "S02",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/service/Values/S02",
          "option_price": {
            "USD": "19.99"
          },
          "sku_extension": "S02",
          "value": {
            "default": "2-year"
          }
        }
      ]
    },
    {
      "custom_name": {
        "default": "Extended Warranty"
      },
      "default_product_option_value": "000",
      "id": "warranty",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/warranty",
      "name": "Extended Warranty",
      "shared": true,
      "sorting_mode": "byoptionprice",
      "values": [
        {
          "id": "001",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/warranty/Values/001",
          "option_price": {
            "USD": "9.99"
          },
          "value": {
            "default": "1 Year Warranty"
          }
        },
        {
          "id": "003",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/warranty/Values/003",
          "option_price": {
            "USD": "29.99"
          },
          "value": {
            "default": "5 Year Warranty"
          }
        },
        {
          "id": "000",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/warranty/Values/000",
          "option_price": {
            "USD": "39.99"
          },
          "value": {
            "default": "None"
          }
        },
        {
          "id": "002",
          "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/warranty/Values/002",
          "option_price": {
            "USD": "49.99"
          },
          "value": {
            "default": "3 Year Warranty"
          }
        }
      ]
    }
  ],
  "select": "(**)",
  "start": 0,
  "total": 2
}
```

### product\_option

Document representing a product option

*   `custom_name` (_object (localized)_) The localized custom name of the product option.
    
    Additional properties: `string`.
    
*   `default_product_option_value` (_string_) The default product option value.
*   `description` (_object (localized)_) The localized description of the product option.
    
    Additional properties: `string`.
    
*   `id` (_string_) The object attribute definition id which is also the identifier for the product option.  
    Minimum length: 1.
*   `image` (_media\_file_) The image assigned to the product option.
*   `link` (_string_) The URL link to the product option.
*   `name` (_string_) The name of the object attribute definition.
*   `selected_option_value` (_string_) The selected option value of the product option.
*   `shared` (_boolean_) The flag that indicates if the product option is shared or local.
*   `sorting_mode` (_string_) The sorting mode for the product option values.  
    Allowed values: `byexplicitorder`, `byoptionprice`.
*   `values` (_array of product\_option\_value_) The sorted array of values of the product option.

_Example_

```
{
  "custom_name": {
    "default": "Option 15"
  },
  "description": {
    "default": "Description for Option 15"
  },
  "id": "option15",
  "image": {
    "abs_url": "https://example.com/on/demandware.static/-/Sites-my-catalog/default/vc8f08a6edba0d7c8e1dec6c535661e44154b54b4/Desert.jpg",
    "dis_base_url": "https://example.com/dw/image/v2/zzzz_s01/on/demandware.static/-/Sites-my-catalog/default/vc8f08a6edba0d7c8e1dec6c535661e44154b54b4/Desert.jpg",
    "path": "Desert.jpg"
  },
  "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/option15",
  "name": "15",
  "shared": true,
  "sorting_mode": "byoptionprice",
  "values": [
    {
      "id": "10",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/option15/Values/10",
      "option_price": {
        "USD": "9.99"
      },
      "sku_extension": "12",
      "value": {
        "default": "12"
      }
    },
    {
      "id": "121",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/option15/Values/121",
      "option_price": {
        "USD": "19.99"
      },
      "sku_extension": "12",
      "value": {
        "default": "12"
      }
    }
  ]
}
```

### product\_option\_values

Document representing an unfiltered list of product option values.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of product\_option\_value_)
*   `expand` (_array of string_) The list of expands set for the search request. Expands are optional.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 3,
  "data": [
    {
      "default_product_option_value": true,
      "id": "value1",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/my-option/values/S00",
      "sku_extension": "S00",
      "value": {
        "default": "None",
        "en": "None (en)"
      }
    },
    {
      "default_product_option_value": false,
      "id": "value2",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/my-option/values/S01",
      "option_prices": [
        {
          "currency_mnemonic": "USD",
          "value": 9.99
        }
      ],
      "sku_extension": "S01",
      "value": {
        "default": "1-year",
        "en": "1-year (en)"
      }
    },
    {
      "default_product_option_value": false,
      "id": "value3",
      "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/my-option/values/S02",
      "option_prices": [
        {
          "currency_mnemonic": "USD",
          "value": 19.99
        }
      ],
      "sku_extension": "S02",
      "value": {
        "default": "2-year",
        "en": "2-year (en)"
      }
    }
  ],
  "select": "(**)",
  "start": 0,
  "total": 3
}
```

### product\_option\_value

Document representing a product option Value

*   `default_product_option_value` (_boolean_) Flag indicating if the product option value is the default value for the product option.
*   `id` (_string_) The id of the product option value.  
    Minimum length: 1.
*   `link` (_string_) The URL link to the product option value.
*   `option_prices` (_array of money_) The list of prices in the product option value.
*   `sku_extension` (_string_) The sku extension of the product option value.
*   `value` (_object (localized)_) The localized value of the product option.
    
    Additional properties: `string`.
    

_Example_

```
{
  "default_product_option_value": false,
  "id": "value3",
  "link": "https://example.com/s/-/dw/data/{version}/catalogs/my-catalog/shared_product_options/my-option/values/S02",
  "option_prices": [
    {
      "currency_mnemonic": "USD",
      "value": 19.99
    }
  ],
  "sku_extension": "S02",
  "value": {
    "default": "2-year",
    "en": "2-year (en)"
  }
}
```

### variation\_attributes

Document representing an unfiltered list of variation attributes.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of variation\_attribute_)
*   `expand` (_array of string_) The list of expands set for the search request. Expands are optional.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 3,
  "data": [
    {
      "id": "fabric",
      "name": {
        "default": "Fabric"
      },
      "values": [
        {
          "name": {
            "default": "Leather"
          },
          "value": "leather"
        },
        {
          "name": {
            "default": "Linen"
          },
          "value": "linen"
        },
        {
          "name": {
            "default": "Plastic"
          },
          "value": "plastic"
        },
        {
          "name": {
            "default": "Metal"
          },
          "value": "metal"
        }
      ]
    },
    {
      "id": "color",
      "name": {
        "default": "Color"
      },
      "values": [
        {
          "name": {
            "default": "Red"
          },
          "value": "red"
        },
        {
          "name": {
            "default": "Blue"
          },
          "value": "blue"
        },
        {
          "name": {
            "default": "Black"
          },
          "value": "black"
        }
      ]
    },
    {
      "id": "size",
      "name": {
        "default": "Size"
      },
      "values": [
        {
          "description": {
            "default": "Small"
          },
          "name": {
            "default": "Small"
          },
          "value": "S"
        },
        {
          "description": {
            "default": "Medium"
          },
          "name": {
            "default": "Medium"
          },
          "value": "M"
        },
        {
          "description": {
            "default": "Large"
          },
          "name": {
            "default": "Large"
          },
          "value": "L"
        }
      ]
    }
  ],
  "start": 0,
  "total": 3
}
```

### variation\_attribute\_values

Document representing an unfiltered list of variation attribute values.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of variation\_attribute\_value_)
*   `expand` (_array of string_) The list of expands set for the search request. Expands are optional.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 3,
  "data": [
    {
      "link": "https://example.com/s/-/dw/data/{version}/products/master_product_1/variation_attributes/color/values/red",
      "value": "red"
    },
    {
      "link": "https://example.com/s/-/dw/data/{version}/products/master_product_1/variation_attributes/color/values/blue",
      "value": "blue"
    },
    {
      "link": "https://example.com/s/-/dw/data/{version}/products/master_product_1/variation_attributes/color/values/black",
      "value": "black"
    }
  ],
  "select": "(*,data.(value,link))",
  "start": 0,
  "total": 3
}
```

### variation\_attribute\_value

Document representing a variation attribute value.

*   `description` (_object (localized)_) The localized description of the variation value.
    
    Additional properties: `string`.
    
*   `image` (_media\_file_) The first product image for the configured viewtype and this variation value.
*   `image_swatch` (_media\_file_) The first product image for the configured viewtype and this variation value. (typically the swatch image)
*   `link` (_string_)
*   `name` (_object (localized)_) The localized display name of the variation value.
    
    Additional properties: `string`.
    
*   `orderable` (_boolean_) A flag indicating whether at least one variant with this variation attribute value is available to sell.
*   `position` (_number (double)_) The position of the value among all values of a variation attribute.
*   `value` (_string_, required) The actual variation value.  
    Minimum length: 1.

_Example_

```
{
  "name": {
    "default": "Leather"
  },
  "value": "leather"
}
```

### variation\_attribute

Document representing a variation attribute.

*   `attribute_definition_id` (_string_, required) The id of the requested attribute definition.
*   `attribute_definition_name` (_object (localized)_) The localized display name of the variation attribute definition.
    
    Additional properties: `string`.
    
*   `default_value` (_string_) default variation attribute value
*   `id` (_string_) The id of the variation attribute.  
    Minimum length: 1.
*   `link` (_string_) URL that is used to get this instance
*   `name` (_object (localized)_) The localized display name of the variation attribute.
    
    Additional properties: `string`.
    
*   `shared` (_boolean_) Returns the value of attribute 'shared' if attribute is local or shared
*   `slicing` (_boolean_) Returns the value of attribute 'slicing'.
*   `values` (_array of variation\_attribute\_value_) The sorted array of variation values. This array can be empty.
*   `variation_attribute_type` (_string_) variation attribute type  
    Allowed values: `string`, `int`, `unknown`.

_Example_

```
{
  "id": "fabric",
  "name": {
    "default": "Fabric"
  },
  "values": [
    {
      "name": {
        "default": "Leather"
      },
      "value": "leather"
    },
    {
      "name": {
        "default": "Linen"
      },
      "value": "linen"
    },
    {
      "name": {
        "default": "Plastic"
      },
      "value": "plastic"
    },
    {
      "name": {
        "default": "Metal"
      },
      "value": "metal"
    }
  ]
}
```

### cause

*   `cause` (_cause_)
*   `message` (_string_)
*   `type` (_string_)

### site

Document representing a site.

*   `cartridges` (_string_) The cartridge Path of the site
*   `creation_date` (_string (date-time)_)
*   `customer_list_link` (_customer\_list\_link_) The link to the customer list.
*   `description` (_object (localized)_) The description of this site.
    
    Additional properties: `string`.
    
*   `display_name` (_object (localized)_) The display name entered by the user.
    
    Additional properties: `string`.
    
*   `id` (_string_, required) The id of this site.  
    Minimum length: 1.
*   `in_deletion` (_boolean_) The deletion status of this site, true if in deletion
*   `last_modified` (_string (date-time)_)
*   `link` (_string_) A link directly to the site
*   `storefront_status` (_string_)  
    Allowed values: `online`, `maintenance`, `to_be_deleted`, `protected`.

_Example_

```
{
  "customer_list_link": {
    "customer_list_id": "SiteGenesis",
    "link": "https://example.com/s/-/dw/data/{version}/customer_lists/SiteGenesis"
  },
  "description": {
    "default": "Prototypical site used for starting point"
  },
  "display_name": {
    "default": "Site Genesis"
  },
  "id": "SiteGenesis",
  "in_deletion": false,
  "link": "https://example.com/s/-/dw/data/{version}/sites/SiteGenesis",
  "storefront_status": "online"
}
```

### path\_record

Document representing most basic info (id and name) of a category or catalog.

*   `id` (_string_) The id of the category path.
*   `name` (_object (localized)_) The name of the category path.
    
    Additional properties: `string`.
    

### sorting\_rule

Document representing a product sorting rule

*   `creation_date` (_string (date-time)_)
*   `description` (_string_) The description of the product sorting rule.  
    Maximum length: 4000.
*   `id` (_string_) the id of product sorting rule.
*   `last_modified` (_string (date-time)_)
*   `product_sorting_rule_steps` (_array of sorting\_rule\_step_) the steps involved in sorting by this rule.
*   `rule_context` (_string_) The context of the rule, either site or global
*   `site` (_string_)

_Example_

```
{
  "creation_date": "21.2-03-11T20:04:25.000Z",
  "id": "my-sorting-rule",
  "product_sorting_rule_steps": [
    {
      "attribute_id": "ID",
      "direction": "asc",
      "is_system": true,
      "position": 0,
      "text_relevance_included": false,
      "type_id": "product-attribute"
    }
  ],
  "rule-context": "site",
  "site": "SiteGenesis"
}
```

### query

Document representing a query. A query contains a set of objects that define criteria used to select records. A query can contain one of the following:

*   match\_all\_query - returns all records.
    
*   term\_query - matches records where a field (or fields) exactly match some simple value (including null).
    
*   text\_query - matches records where a field (or fields) contain a search phrase.
    
*   boolean\_query - formulates a complex boolean expression using query objects as criteria.
    
*   filtered\_query - allows for filtering of records based on both a query and a filter.
    

Type: `any`.

### sort

Document representing a sort request.

*   `field` (_string_, required) The name of the field to sort on.
*   `sort_order` (_string_) The sort order to be applied when sorting. When omitted, the default sort order (ASC) is used.  
    Allowed values: `asc`, `desc`.

_Example_

```
{
  "field": "id",
  "sort_order": "asc"
}
```

### result\_page

Data that can be used to get the next and previous page of a Data API results object.

*   `count` (_integer (int32)_) The number of returned documents.
*   `db_start_record_` (_integer (int32)_) The zero-based index of the record that we want to start with, used to optimize special handling
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.

### product

Document representing a product

*   `assigned_categories` (_array of catalog\_category\_id_) The catalog categories that the product is assigned to
*   `ats` (_number (double)_) The ATS(Available To Sell) inventory value of the product. This is a calculated value.
*   `brand` (_string_) The brand of the product.
*   `bundled_products` (_array of product_) The array of bundled products which the product includes.
*   `classification_category` (_catalog\_category\_id_) The classification category (default category) of the product
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `default_variant_id` (_string_) The ID of the product's default variant.
*   `ean` (_string_) The European Article Number of the product.
*   `id` (_string_) The ID (SKU) of the product.  
    Minimum length: 1. Maximum length: 100.
*   `image` (_media\_file_) The image(s) assigned to the product.
*   `image_groups` (_array of image\_group_) The array of product image groups.
*   `in_stock` (_boolean_) The flag that indicates if the product is in stock, or not. This is a calculated value.
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `link` (_string_) A link to the product.
*   `localized_tax_class_id` (_object (localized)_)
    
    Additional properties: `string`.
    
*   `long_description` (_object (localized)_) The localized long description of the product.
    
    Additional properties: `markup_text`.
    
*   `manufacturer_name` (_string_) The name of the product's manufacturer.
*   `manufacturer_sku` (_string_) The SKU of the product's manufacturer.
*   `master` (_master_) The master of the product. This is applicable for product types "variation\_group" and "variant" only.
*   `name` (_object (localized)_) The localized name of the product.
    
    Additional properties: `string`.
    
*   `online` (_boolean_) The flag that indicates if the product is online, or not. This is a calculated value.
*   `online_flag` (_object (site-specific)_) The site specific online status of the product.
    
    Additional properties: `boolean`.
    
*   `owning_catalog_id` (_string_) The ID of the catalog that owns the product.
*   `owning_catalog_name` (_object (localized)_) The localized name of the catalog that owns the product.
    
    Additional properties: `string`.
    
*   `page_description` (_object (localized)_) The localized page description of the product.
    
    Additional properties: `string`.
    
*   `page_keywords` (_object (localized)_) The localized page keywords of the product.
    
    Additional properties: `string`.
    
*   `page_title` (_object (localized)_) The localized page title of the product.
    
    Additional properties: `string`.
    
*   `price` (_number (double)_) The price of the product.
*   `price_currency` (_string_) The currency code for product's price.
*   `price_per_unit` (_number (double)_) The price per unit of the product
*   `primary_categories` (_array of catalog\_category\_id_) The catalog categories that are primary for the product
*   `primary_category_id` (_string_) The id of the products primary category.
*   `product_bundles` (_array of product_) The array of product bundles which the product belongs to.
*   `product_options` (_array of product\_option_) The array of product options. This is applicable for products of type "option".
*   `product_sets` (_array of product_) The array of product sets which the product belongs to.
*   `searchable` (_object (site-specific)_) The site specific searchable status of the product.
    
    Additional properties: `boolean`.
    
*   `set_products` (_array of product_) The array of set products which the product includes.
*   `short_description` (_object (localized)_) The localized short description of the product.
    
    Additional properties: `markup_text`.
    
*   `tax_class_id` (_string_) The catalog categories that the product is assigned to
*   `type` (_product\_type_) The type of the product. It can have one or more of the values "item", "master", "variation\_group", "variant", "bundle", and "set".
*   `unit` (_string_) The sales unit of the product.
*   `unit_measure` (_string_) The unitMeasure of the product.
*   `unit_quantity` (_number (double)_) The unitQuantity of the product.
*   `upc` (_string_) The Universal Product Code of the product.
*   `valid_from` (_object (site-specific)_) The time when product is valid from.
    
    Additional properties: `string (date-time)`.
    
*   `valid_to` (_object (site-specific)_) The time when product is valid to.
    
    Additional properties: `string (date-time)`.
    
*   `variants` (_array of variant_) The array of variants of the product. This is applicable for product types "master" and "variation\_group" only.
*   `variation_attributes` (_array of variation\_attribute_) The sorted array of variation attributes assigned to the product. This is applicable for product types "master", "variation\_group" and "variant" only.
*   `variation_groups` (_array of variation\_group_) The array of variation groups in the product. This is applicable for product type "master" only.
*   `variation_values` (_object_)
    
    The variation values selected for the product in variation attribute id and value pairs. This is applicable for product types "variant" and "variation\_group" only.
    
    ```
         Only for type variant and variation group.
    ```
    
    Additional properties: `string`.
    

_Example_

```
{
  "ats": 500,
  "brand": "Brand",
  "ean": "EAN",
  "id": "my-product",
  "in_stock": true,
  "link": "https://example.com/s/-/dw/data/{version}/products/my-product",
  "long_description": {
    "default": "Long Description"
  },
  "manufacturer_name": "Manufacturer",
  "manufacturer_sku": "Manufacturer ID",
  "name": {
    "default": "My Product"
  },
  "online": true,
  "online_flag": {
    "default": true
  },
  "owning_catalog_id": "my-catalog",
  "owning_catalog_name": {
    "default": "My Catalog"
  },
  "page_description": {
    "default": "Page description"
  },
  "page_keywords": {
    "default": "Page Keyword"
  },
  "page_title": {
    "default": "Page title"
  },
  "price": 100,
  "price_currency": "USD",
  "price_per_unit": 100,
  "searchable": {
    "default": true
  },
  "short_description": {
    "default": "Short Description"
  },
  "type": {
    "bundle": true,
    "bundled": true,
    "part_of_product_set": true
  },
  "unit": "bnd",
  "unit_measure": "each",
  "unit_quantity": 1,
  "upc": "UPC"
}
```

### media\_file

*   `abs_url` (_string_) The absolute URL with request protocol (read only)
*   `alt` (_object (localized)_) The alternative image text
    
    Additional properties: `string`.
    
*   `dis_base_url` (_string_) The DIS base URL only for product images
*   `path` (_string_) The raw media file path (only this needs to be provided in update request)
*   `title` (_object (localized)_) The image title
    
    Additional properties: `string`.
    

_Example_

```
{
  "path": "option.jpg"
}
```

### money

*   `currency_mnemonic` (_string_) The mnemonic for the money.
*   `value` (_number (double)_) The value for the money.

_Example_

```
{
  "currency_mnemonic": "USD",
  "value": 100
}
```

### customer\_list\_link

Document representing a link to a customer list.

*   `customer_list_id` (_string_) The customerlist id.
*   `link` (_string_) The target of the link.
*   `title` (_object (localized)_) The link title.
    
    Additional properties: `string`.
    

_Example_

```
{
  "customer_list_id": "SiteGenesis",
  "link": "https://example.com/s/-/dw/data/{version}/customer_lists/SiteGenesis"
}
```

### sorting\_rule\_step

Document representing a product sorting rule step

*   `attribute_id` (_string_) the id for sorting attribute.
*   `direction` (_string_) the direction of the sorting attribute  
    Allowed values: `asc`, `desc`.
*   `is_system` (_boolean_) whether or not the attribute is a system attribute.
*   `position` (_integer (int32)_) the position of product sorting rule step.
*   `text_relevance_included` (_boolean_) The text relevance included.
*   `type_id` (_string_) the sorting type for sorting attribute.

_Example_

```
{
  "attribute_id": "ID",
  "direction": "asc",
  "is_system": true,
  "position": 0,
  "text_relevance_included": false,
  "type_id": "product-attribute"
}
```

### catalog\_category\_id

Document representing a catalog category id.

*   `catalog_id` (_string_) The id of the catalog that owns the category.  
    Minimum length: 1. Maximum length: 256.
*   `category_id` (_string_) The id of the category.  
    Minimum length: 1. Maximum length: 256.

### image\_group

Document representing an image group containing a list of images for a particular view type and an optional variation value.

*   `images` (_array of media\_file_) The images of the image group.
*   `variation_attributes` (_array of variation\_attribute_) Returns a list of variation attributes applying to this image group.
*   `view_type` (_string_) The image view type.

### markup\_text

*   `markup` (_string_) The rendered HTML (read only)
*   `source` (_string_) The raw markup text (only this needs to be provided in update request)

### master

Document representing a variation master.

*   `link` (_string_) The URL addressing the master product.
*   `master_id` (_string_, required) The id (SKU) of the master product.  
    Minimum length: 1. Maximum length: 100.
*   `orderable` (_boolean_) A flag indicating whether at least one of the variants is orderable.
*   `price` (_number (double)_) The minimum sales price of the related variants.
*   `price_max` (_number (double)_) The maximum sales of related variants.
*   `price_per_unit` (_number (double)_) The minimum sales price per unit of the related variants.
*   `price_per_unit_max` (_number (double)_) The maximum sales price per unit of the related variants.
*   `prices` (_object_)
    
    Additional properties: `number (double)`.
    

### product\_type

Document representing a product type.

*   `bundle` (_boolean_) A flag indicating whether the product is a bundle.
*   `bundled` (_boolean_) A flag indicating whether the product is bundled.
*   `item` (_boolean_) A flag indicating whether the product is a standard item.
*   `master` (_boolean_) A flag indicating whether the product is a master.
*   `option` (_boolean_) A flag indicating whether the product is an option.
*   `part_of_product_set` (_boolean_) A flag indicating whether the product is part of product set.
*   `part_of_retail_set` (_boolean_) A flag indicating whether the product is part of retail set.
*   `retail_set` (_boolean_) A flag indicating whether the product is a retail set.
*   `set` (_boolean_) A flag indicating whether the product is a set.
*   `variant` (_boolean_) A flag indicating whether the product is a variant.
*   `variation_group` (_boolean_) A flag indicating whether the product is a variation group.

_Example_

```
{
  "bundled": true,
  "master": true,
  "part_of_product_set": true
}
```

### variant

Document representing a product variation.

*   `ats` (_number (double)_) Inventory "Available to Sell" of the product.
*   `default_product_variation` (_boolean_)
*   `image` (_media\_file_) URL to the preview image.
*   `in_stock` (_boolean_) `true` if the product is in stock, or `false` if not.
*   `link` (_string_) The URL addressing the product.
*   `online` (_boolean_) If the product is currently online. `true` if online `false` if not
*   `orderable` (_boolean_) A flag indicating whether the variant is orderable.
*   `price` (_number (double)_) The sales price of the variant.
*   `price_currency` (_string_) Currency code for the price of the product.
*   `price_per_unit` (_number (double)_) The sales price of the variant.
*   `product_id` (_string_, required) The id (SKU) of the variant.  
    Minimum length: 1. Maximum length: 100.
*   `searchable` (_object (site-specific)_)
    
    Additional properties: `boolean`.
    
*   `variation_attributes` (_array of variation\_attribute_) variation attributes
*   `variation_values` (_object_) The actual variation attribute id - value pairs.
    
    Additional properties: `string`.
    

_Example_

```
{
  "link": "https://ocapi-mon.example.com/s/-/dw/data/{version}/products/dress-spring-red",
  "product_id": "dress-spring-red",
  "variation_values": {
    "color": "red"
  }
}
```

### variation\_group

Document representing a variation group.

*   `link` (_string_) The URL addressing the product.
*   `orderable` (_boolean_) A flag indicating whether the variation group is orderable.
*   `price` (_number (double)_) The sales price of the variation group.
*   `price_per_unit` (_number (double)_) The sales price per unit of the variation group.
*   `product_id` (_string_) The id (SKU) of the variation group.  
    Minimum length: 1. Maximum length: 100.
*   `variation_values` (_object_) The actual variation attribute id - value pairs.
    
    Additional properties: `string`.
    

_Example_

```
{
  "link": "https://example.com/s/-/dw/data/{version}/products/my-product-5",
  "product_id": "my-product-5",
  "variation_values": {
    "color": "red"
  }
}
```

### bool\_filter

Document representing a boolean filter.

A boolean filter allows you to combine other filters into (possibly recursive) logical expression trees. A boolean filter is configured with a boolean operator (AND, OR, NOT) and a list of filters the operator relates to. If multiple filters are given to a boolean NOT operator, this is interpreted as a NOT upon a boolean OR of the given filters.

**Example:** (id="myId" AND coupon\_id="couponOne")

query: {
filtered\_query: {
query: { match\_all\_query: {} },
filter: {
bool\_filter: {
operator: "and",
filters: \[
{ term\_filter: { field: "id", operator: "is", values: \["myId"\] } },
{ term\_filter: { field: "coupon\_id", operator: "is", values: \["couponOne"\] } }
\]
}
}
}
}

**Example:** (id="holidaySale" OR redemption\_count BETWEEN(1, 20)

query: {
filtered\_query: {
query: { match\_all\_query: {} },
filter: {
bool\_filter: {
operator: "or",
filters: \[
{ term\_filter: { field: "id", operator: "is", values: \["holidaySale"\] } },
{ range\_filter: { field: "redemption\_count", from: 1, to: 20 } }
\]
}
}
}
}

**Example:** NOT(enabled=false OR coupon\_id="special")

query: {
filtered\_query: {
query: { match\_all\_query: {} },
filter: {
bool\_filter: {
operator: "not",
filters: \[
{ term\_filter: { field: "enabled", operator: "is", values: \[false\] } },
{ term\_filter: { field: "coupon\_id", operator: "is", values: \["special"\] } }
\]
}
}
}
}

*   `filters` (_array of filter_) A list of filters, which are logically combined by an operator.
*   `operator` (_string_, required) The logical operator the filters are combined with.  
    Allowed values: `and`, `or`, `not`.

### bool\_query

A boolean query allows construction of full logical expression trees consisting of other queries (usually term and text queries). A boolean query basically has 3 sets of clauses that 'must', 'should' and / or 'must not' match. If 'must', 'must\_not', or 'should' appear in the same boolean query, they are combined logically using the AND operator. The difference between must and should operators is that the must operator requires all subqueries to match whereas the should operator only requires one match

**Example:** (id = 'foo' AND description LIKE 'bar')

query: {
bool\_query: {
must: \[
{ term\_query: { fields: \["id"\], operator: "is", values: \["foo"\] } },
{ text\_query: { fields: \["description"\], search\_phrase: "bar" } }
\]
}
}

**Example:** (id = 'foo' OR description LIKE 'bar')

query: {
bool\_query: {
should: \[
{ term\_query: { fields: \["id"\], operator: "is", values: \["foo"\] } },
{ text\_query: { fields: \["description"\], search\_phrase: "bar" } }
\]
}
}

**Example:** (NOT (id = 'foo' AND description LIKE 'bar'))

query: {
bool\_query: {
must\_not: \[
{ term\_query: { fields: \["id"\], operator: "is", values: \["foo"\] } },
{ text\_query: { fields: \["description"\], search\_phrase: "bar" } }
\]
}
}

**Example:** ((coupon\_id LIKE "limit" AND description LIKE "limit per customer") AND NOT (enabled=false))

query: {
bool\_query: {
must: \[
{ text\_query: { fields: \[ "coupon\_id" \], search\_phrase: "limit" } },
{ text\_query: { fields: \[ "description" \], search\_phrase: "limit per customer" } }
\],
must\_not: \[
{ term\_query: { fields: \[ "enabled" \], operator: "is", values: \[false\] } }
\]
}
}

*   `must` (_array of query_) List of queries that must match.
*   `must_not` (_array of query_) List of queries that must not match.
*   `should` (_array of query_) List of queries that should match (i.e., at least one query must match).

### filter

Document representing a filter.

A filter contains a set of objects that define criteria used to select records. A filter can contain one of the following:

*   term\_filter - matches records where a field (or fields) exactly match some simple value (including null).
    
*   range\_filter - matches records where a field value lies in a specified range.
    
*   query\_filter - provides filtering based on a query.
    
*   bool\_filter - provides filtering of records using a set of filters combined with a specified operator.
    

Type: `any`.

### filtered\_query

A filtered query allows to filter the result of a (possibly complex) query using a (possibly complex) filter.

**Example:**

query : {
filtered\_query: {
query: {
text\_query: { fields: \["coupon\_id"\], search\_phrase: "disabled" }
},
filter: {
term\_filter: {
field: "enabled", operator: "is", values: \[ false \]
}
}
}
}

*   `filter` (_filter_, required) The (possibly complex) filter object.
*   `query` (_query_, required) The query object.

### match\_all\_query

A match all query simply matches all documents (namespace and document type). This query comes in handy if you just want to filter a search result or really do not have any constraints.

**Example:**

query: {
match\_all\_query: {}
}

Type: `any`.

### nested\_query

A nested query queries nested documents that are part of a larger document. The classical example is a product master with variants (in one big document) where you want to constrain a search to masters that have variants that match multiple constraints (like color = blue AND size = M). This query is not compatible with some search types. **Example:** finds all the documents that has firstname = "John" and lastname = "Doe"

{
"query": {
"bool\_query": {
"must": \[
{
"nested\_query": {
"path": "order.shipping\_addresses",
"query": {
"bool\_query": {
"must": \[
{
"bool\_query": {
"must": \[
{
"term\_query": {
"fields": \[ "order.shipping\_addresses.first\_name" \],
"operator": "is",
"values": \[ "John" \]
}
}
\]
}
},
{
"bool\_query": {
"must": \[
{
"term\_query": {
"fields": \[ "order.shipping\_addresses.last\_name" \],
"operator": "is",
"values": \[ "Doe" \]
}
}
\]
}
}
\]
}
},
"score\_mode": "avg"
}
}
\]
}
}
}

*   `path` (_string_, required)
*   `query` (_query_, required)
*   `score_mode` (_string_)  
    Allowed values: `avg`, `total`, `max`, `none`.

### query\_filter

Document representing a query filter. A query filter wraps any query and allows it to be used as a filter.

**Example:** (coupon\_id contains "disabled" AND (enabled=false OR active=false))

query : {
filtered\_query: {
query: { text\_query: { fields: \["coupon\_id"\], search\_phrase: "disabled" } },
filter: {
query\_filter: {
query: {
term\_query: { fields: \["enabled","active"\], operator: "is", values: \[ false \] }
}
}
}
}
}

*   `query` (_query_, required) The query to use as a filter.

### range2\_filter

Document representing a range comparison with a range filter, named Range2Filter.

A Range2Filter allows you to restrict a search result to hits where a range defined by specified attributes has a certain relationship to a specified range.

The first range (R1) is defined by a pair of attributes ("from\_field" and "to\_field") that specify the extent of a range, such as the attributes "valid\_from" and "valid\_to".

The second range (R2) is defined by "from\_value" and "to\_value".

The filter mode specifies the method used to compare the two ranges:

*   overlap: R1 overlaps fully or partially with R2
    
*   containing: R1 contains R2
    
*   contained: R1 is contained in R2
    

The range filter supports several value types, and relies on the natural sorting of the value type for range interpretation. Value ranges can be open-ended (at one end only). You can configure whether the lower and upper bounds are inclusive or exclusive.

A range 2 filter is useful for general restrictions that can be shared between searches (like a static date range) because the filter result is cached in memory. Range filters are not appropriate if the range is expected to be different for every query (for example, if the user controls the date range down to the hour via a UI control). Range filters are inclusive by default.

**Example:** (valid dates overlap with the range January 1, 2007 through January 1, 2017)

"query" : {
"filtered\_query": {
"filter": {
"range2\_filter": {
"from\_field": "valid\_from",
"to\_field": "valid\_to",
"filter\_mode":"overlap",
"from\_value": "2007-01-01T00:00:00.000Z",
"to\_value": "2017-01-01T00:00:00.000Z"
}
},
"query": { "match\_all\_query": {} }
}
}

*   `filter_mode` (_string_) Compare mode: overlap, containing, or contained. If not specified, the default is overlap.  
    Allowed values: `overlap`, `containing`, `contained`.
*   `from_field` (_string_, required) The field name of the field that starts the first range.
*   `from_inclusive` (_boolean_) Indicates whether the lower bound of the second range is inclusive. If not specified, the default is true. Set to false to make the lower bound exclusive.
*   `from_value` (_object_) The lower bound of the second range. If not specified, the range is open-ended with respect to the lower bound. You can't leave both the lower and upper bounds open-ended.
*   `to_field` (_string_, required) The field name of the field that ends the first range.
*   `to_inclusive` (_boolean_) Indicates whether the upper bound of the second range is inclusive. If not specified, the default is true. Set to false to make the lower bound exclusive.
*   `to_value` (_object_) The upper bound of the second range. If not specified, the range is open-ended with respect to the upper bound. You can't leave both the upper and lower bounds open-ended.

### range\_filter

Document representing a range filter.

A range filter allows you to restrict a search result to hits that have values for a given attribute that fall into a given value range. The range filter supports several value types, and relies on the natural sorting of the value type for range interpretation. Value ranges can be open-ended (at one end only). You can configure whether the lower and upper bounds are inclusive or exclusive.

A range filter is useful for general restrictions that can be shared between searches (like a static date range) because the filter result is cached in memory. Range filters are not appropriate if the range is expected to be different for every query (for example, if the user controls the date range down to the hour via a UI control). Range filters are inclusive by default.

**Example:** ( redemption\_count BETWEEN (0,10\] )

query: {
filtered\_query: {
query: { match\_all\_query: {} },
filter: {
range\_filter: {
field: "redemption\_count",
from: 0,
to: 10,
from\_inclusive: false
}
}
}
}

*   `field` (_string_, required) The search field.
*   `from` (_object_) The lower bound of the filter range. If not specified, the range is open-ended with respect to the lower bound. You can't leave both the lower and upper bounds open-ended.
*   `from_inclusive` (_boolean_) Indicates whether the lower bound of the range is inclusive. If not specified, the default is true. Set to false to make the lower bound exclusive.
*   `to` (_object_) The upper bound of the filter range. If not specified, the range is open-ended with respect to the upper bound. You can't leave both the upper and lower bounds open-ended.
*   `to_inclusive` (_boolean_) Indicates whether the upper bound of the range is inclusive. If not specified, the default is true. Set to false to made the upper bound exclusive.

### term\_filter

Document representing a term filter.

A term filter allows you to restrict a search result to hits that match (exactly) one of the values configured for the filter. A term filter is useful for general restrictions that can be shared between searches. Use term filters whenever the criterion you filter on is a shared property of multiple searches (for example, like filtering by an order status). Use term filters for fields that have a discrete and small set of values only.

**Example:** (id="my\_id")

query: {
filtered\_query: {
query: { match\_all\_query: {} },
filter: {
term\_filter: {
field: "id",
operator: "is",
values: \["my\_id"\]
}
}
}
}

**Example:** (id IN ("my\_id","other\_id"))

query: {
filtered\_query: {
query: { match\_all\_query: {} },
filter: {
term\_filter: {
field: "id",
operator: "one\_of",
values: \["my\_id","other\_id"\]
}
}
}
}

**Example:** (description=NULL)

query: {
filtered\_query: {
query: { match\_all\_query: {} },
filter: {
term\_filter: {
field: "description",
operator: "is\_null"
}
}
}
}

*   `field` (_string_, required) The filter field.
*   `operator` (_string_, required) The operator to compare the field's values with the given ones.  
    Allowed values: `is`, `one_of`, `is_null`, `is_not_null`, `less`, `greater`, `not_in`, `neq`.
*   `values` (_array of object_) The filter values.

### term\_query

A term query matches one (or more) value(s) against one (or more) document field(s). A document is considered a hit if one of the values matches (exactly) with at least one of the given fields. The operator "is" can only take one value, while "one\_of" can take multiple values. If multiple fields are specified, they are combined using the OR operator. The `less` and `greater` operators are not compatible with some search types. To query based on numeric bounds in those cases, you can use a range filter on a filtered query .

**Elastic only** : If used with multiple fields, the query is internally handled as a boolean OR of DisjointMaxQueries (with the dismax matching a value against all fields). The dismax makes sure that a document carrying a single term in multiple fields does not get higher scores than a document matching multiple terms in multiple fields.

**Example:** (id="my\_id")

query: {
term\_query: {
fields: \["id"\],
operator: "is",
values: \["my\_id"\]
}
}

**Example:** (id IN ("my\_id","other\_id"))

query: {
term\_query: {
fields: \["id"\],
operator: "one\_of",
values: \["my\_id","other\_id"\]
}
}

**Example:** (id=null)

query: {
term\_query: {
fields: \["description"\],
operator: "is\_null"
}
}

**Example:** ((id IN ('generic', 'keyword')) OR (description IN ('generic', 'keyword'))

query: {
term\_query: {
fields: \["id", "description"\],
operator: "one\_of",
values: \["generic","keyword"\]
}
}

*   `fields` (_array of string_, required) The document field(s) the value(s) are matched against, combined with the operator.  
    Minimum items: 1.
*   `operator` (_string_, required) Returns the operator to use for the term query.  
    Allowed values: `is`, `one_of`, `is_null`, `is_not_null`, `less`, `greater`, `not_in`, `neq`.
*   `values` (_array of object_) The values the field(s) are compared against, combined with the operator.

### text\_query

A text query is used to match some text (i.e. a search phrase possibly consisting of multiple terms) against one or multiple fields. In case multiple fields are provided, the phrase conceptually forms a logical OR over the fields. In this case, the terms of the phrase basically have to match the text that would result from concatenating all given fields.

**Example:** (coupon\_id contains "xmas" )

query: {
text\_query: {
fields: \["coupon\_id"\],
search\_phrase: "xmas"
}
}

**Example:** (coupon\_id contains "xmas" OR description contains "xmas")

query: {
text\_query: {
fields: \["description", "coupon\_id"\],
search\_phrase: "xmas"
}
}

**Example:** (description contains "holiday" AND description contains "bojo")

query: {
text\_query: {
fields: \["description"\],
search\_phrase: "holiday bogo"
}
}

*   `fields` (_array of string_, required) The document fields the search phrase has to match.  
    Minimum items: 1.
*   `search_phrase` (_string_, required) A search phrase which may consist of multiple terms.