> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Request product list

> Retrieve a list of products from the Kameleoon Product Recommendation API with optional filtering and categorization.

This endpoint retrieves a list of products.

<Note>
  Kameleoon does not include the `filters` object in the response if you do not use the `categories` or `filters` query parameters.
</Note>

### Request

```
GET https://api.products.kameleoon.com/products
```

### Query parameters

| Parameter           | Type            | Required | Description                                                                                                                                                                                                                                                                                    |
| :------------------ | :-------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `did`               | String          | True     | Device ID. Get this ID from the `KameleoonProducts_device_id` cookie. Retrieve it from the backend before calling this endpoint. Only provide `did` when using filters or algorithms that rely on historical device data, such as "Recently Viewed" or "Recommended for You."                  |
| `sid`               | String          | True     | Temporary user session ID. Get this ID from the `KameleoonProducts_session_code` cookie. Retrieve it from the backend before calling this endpoint. Only provide `sid` when using filters or algorithms that rely on historical user data, such as "Recently Viewed" or "Recommended for You." |
| `shop_id`           | String          | True     | Store Key. Find this in **Recommendations** > **Settings** > **Store settings** in the Kameleoon app. Contact your Customer Success Manager for the key if necessary.                                                                                                                          |
| `limit`             | Integer         | False    | Maximum number of results the API returns.                                                                                                                                                                                                                                                     |
| `page`              | Integer         | False    | Maximum number of pages the API returns.                                                                                                                                                                                                                                                       |
| `locations`         | Array           | False    | Comma-separated list of location IDs.                                                                                                                                                                                                                                                          |
| `brands`            | Array           | False    | Comma-separated list of brands for filtering.                                                                                                                                                                                                                                                  |
| `merchants`         | List of strings | False    | Comma-separated list of merchants for filtering.                                                                                                                                                                                                                                               |
| `categories`        | List of strings | False    | Comma-separated list of categories for filtering.                                                                                                                                                                                                                                              |
| `filters`           | JSON string     | False    | Optional escaped JSON string with filter parameters. Example: `{"bluetooth":["yes"],"offers":["15% cashback"],"weight":["1.6"]}`                                                                                                                                                               |
| `filters_search_by` | JSON string     | False    | Filter search options: `name`, `quantity`, `popularity`.                                                                                                                                                                                                                                       |

### Response

| Name             | Type             | Description                                                                                                                           |
| :--------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------ |
| `brands`         | Array            | Brand information. Each object contains [these properties](#brand-properties).                                                        |
| `categories`     | Array of objects | Category information. Each object contains [these fields](#category-fields).                                                          |
| `filters`        | Array            | Filter information. Each object contains [these properties](#filter-properties).                                                      |
| `price_range`    | Object           | Minimum and maximum product prices. Contains [these properties](#price-range-fields).                                                 |
| `products`       | Array of objects | Product information. Each object contains [these properties](#product-fields).                                                        |
| `products_total` | Integer          | Total count of products.                                                                                                              |
| `price_ranges`   | Array of objects | Objects containing `to` and `count` fields, representing the upper limit of the price range and the number of products in that range. |
| `price_median`   | Integer          | Median product price.                                                                                                                 |

### Brand properties

| Name      | Type    | Description        |
| :-------- | :------ | :----------------- |
| `name`    | String  | Brand name.        |
| `picture` | String  | Brand picture URL. |
| `count`   | Integer | Number of matches. |

### Category fields

| Name         | Type   | Description                         |
| :----------- | :----- | :---------------------------------- |
| `id`         | String | Category ID.                        |
| `name`       | String | Category name.                      |
| `url`        | String | Category URL.                       |
| `url_handle` | String | Path to the category.               |
| `count`      | Number | Number of products in the category. |
| `parent`     | String | Parent category ID.                 |
| `alias`      | String | Alternate category name.            |

### Filter properties

| Name     | Type   | Description                                        |
| :------- | :----- | :------------------------------------------------- |
| `filter` | Object | Contains [these properties](#filter-value-fields). |

### Filter value fields

| Name       | Type             | Description                                                  |
| :--------- | :--------------- | :----------------------------------------------------------- |
| `count`    | Integer          | Total count of products matching the selected filters.       |
| `priority` | Integer          | Filter priority.                                             |
| `ranges`   | Integer          | Aggregation result ranges.                                   |
| `values`   | Array of objects | Value objects containing [these properties](#value-details). |

### Value details

| Name    | Type    | Description                             |
| :------ | :------ | :-------------------------------------- |
| `value` | String  | Value label.                            |
| `count` | Integer | Number of products with this parameter. |

### Price range fields

| Name  | Type    | Description    |
| :---- | :------ | :------------- |
| `min` | Integer | Minimum price. |
| `max` | Integer | Maximum price. |

### Product fields

| Name                   | Type             | Description                                                                                |
| :--------------------- | :--------------- | :----------------------------------------------------------------------------------------- |
| `brand`                | String           | Product brand.                                                                             |
| `currency`             | String           | Product currency. Matches the currency in shop settings.                                   |
| `id`                   | String           | Product ID.                                                                                |
| `is_new`               | Boolean          | Product property (NULL by default).                                                        |
| `name`                 | String           | Product name.                                                                              |
| `old_price`            | String           | Product old price (0 by default).                                                          |
| `price`                | Integer          | Product price.                                                                             |
| `price_formatted`      | String           | Product price with currency.                                                               |
| `price_full_formatted` | String           | Formatted product price (for example, "547.67 \$").                                        |
| `picture`              | String           | Product picture URL in Kameleoon storage.                                                  |
| `url`                  | String           | Product URL.                                                                               |
| `description`          | String           | Product description.                                                                       |
| `category_ids`         | Array of strings | IDs of categories for the product.                                                         |
| `fashion_feature`      | String           | Fashion category feature (for example, "for kids" or "adult").                             |
| `fashion_gender`       | String           | Product gender designation.                                                                |
| `sales_rate`           | Integer          | Number of products sold.                                                                   |
| `relative_sales_rate`  | Integer          | Share of sales as a percentage.                                                            |
| `image_URL`            | String           | URL to the original product image.                                                         |
| `image_URL_handle`     | String           | Path to the product image.                                                                 |
| `image_URL_resized`    | Object           | Image sizes and their corresponding paths.                                                 |
| `_id`                  | String           | Internal ID.                                                                               |
| `group_id`             | String           | Identifier for grouped products.                                                           |
| `barcode`              | String           | Product barcode.                                                                           |
| `categories`           | Array            | Product categories. Each object contains [these properties](#product-category-properties). |

### Product category properties

| Name     | Type   | Description                                                             |
| :------- | :----- | :---------------------------------------------------------------------- |
| `id`     | String | Category ID.                                                            |
| `name`   | String | Category name.                                                          |
| `parent` | String | Parent category ID.                                                     |
| `params` | Array  | Parameter objects containing [these properties](#parameter-properties). |

### Parameter properties

| Name     | Type   | Description     |
| :------- | :----- | :-------------- |
| `key`    | String | Parameter name. |
| `values` | Array  | List of values. |
