> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.brevo.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.brevo.com/_mcp/server.

After [importing your product categories](/reference/create-update-category), manage your product inventory using the steps below.

## Requirements

To create and manage products in your eCommerce store, you need access to the Brevo eCommerce app. If you haven't activated the eCommerce platform on your account, see [eCommerce > Add the eCommerce App.](/reference/activate-the-e-commerce-app)

## Create a product

To integrate your store with Brevo, create products. See the API endpoint reference at [eCommerce > Create/Update a product.](/reference/create-update-product)

The cURL request is:

```curl
curl --request POST \
     --url https://api.brevo.com/v3/products \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
     "categories": [
          "CAT123"
     ],
     "metaInfo": {
          "description": "A smartphone"
     },
     "id": "P11",
     "name": "Iphone 11",
     "url": "http://mydomain.com/product/electronics/product1",
     "imageUrl": "http://mydomain.com/product-absolute-url/img.jpeg",
     "sku": "P1",
     "price": 500,
     "alternativePrice": 449.99,
     "parentId": "P3",
     "updateEnabled": true
}'
```

Use the cURL request above to create a product. Parameters used to create a product:

| Attribute          | Datatype         | Description                                                                                                                                                    | Value                 |
| :----------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- |
| `id`               | String           | Product ID for which you requested the details                                                                                                                 | `P11`                 |
| `name`             | String           | Product name                                                                                                                                                   | `iPhone 11`           |
| `url`              | String           | Url to the product                                                                                                                                             | `http://mydomain.com` |
| `imageUrl`         | String           | Url to the cover image of the product                                                                                                                          | `http://mydomain.com` |
| `sku`              | String           | Product identifier from the shop                                                                                                                               | `P22`                 |
| `price`            | Float            | Price of the product                                                                                                                                           | `300.80`              |
| `alternativePrice` | Float            | Alternative price of the product. A secondary price displayed alongside `price` — typically a discounted or sale price, a member price, or a compare-at price. | `250.00`              |
| `categories`       | Array of strings | Category IDs of the product. A product can belong to multiple categories.                                                                                      | `CAT123`              |
| `parentId`         | String           | Parent product ID of the product                                                                                                                               | `P200`                |
| `brand`            | String           | Brand of the product (max 128 characters)                                                                                                                      | `Adidas`              |
| `description`      | String           | Description of the product (max 3000 characters)                                                                                                               | `Shoes for sports`    |
| `metaInfo`         | Object           | Product metadata such as vendor, producer, stock level. Total length must not exceed **20000 characters**.                                                     | `{"vendor": "Nike"}`  |
| `updateEnabled`    | Boolean          | Allows updating the existing product in the same request.                                                                                                      | `false/true`          |

## Create products in a batch

When you have multiple products to create, use the endpoint [eCommerce > Creates the products in a batch.](/reference/create-update-batch-products) Instead of calling the single-product endpoint multiple times, create them all in one batch. The cURL request for batch product creation is:

```curl
curl --request POST \
     --url https://api.brevo.com/v3/products/batch \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data
```

#### Batch limits

You can create up to **100 products in a single batch**. Sample JSON to create products in batches is below.

```json
{
     "products": [
          {
               "categories": [
                    "CAT123"
               ],
               "metaInfo": {
                    "Vendor": "Samsung"
               },
               "id": "P12",
               "name": "Samsung S22",
               "url": "http://mydomain.com/product/electronics/product1",
               "imageUrl": "http://mydomain.com/product-absoulte-url/img.jpeg",
               "sku": "P2",
               "price": 600,
               "alternativePrice": 549.99,
               "parentId": "P01"
          },
          {
               "categories": [
                    "CAT123"
               ],
               "metaInfo": {
                    "vendor": "Samsung"
               },
               "id": "P3",
               "name": "Samsung S21",
               "url": "http://mydomain.com/product/electronics/product1",
               "imageUrl": "http://mydomain.com/product-absoulte-url/img.jpeg",
               "sku": "P33",
               "price": 300,
               "alternativePrice": 279.99,
               "parentId": "P4"
          }
     ],
     "updateEnabled": true
}
```

The parameters match those in `Create a product`, but products are sent in batches. Parameters for creating products in batches:

| Attributes         | Datatype                  | Description                                                                                                                                                    | Value                                               |
| :----------------- | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------- |
| `products`         | Array of products objects | All products in an array of product objects                                                                                                                    | `All attributes of the product`                     |
| `id`               | String                    | Product ID for which you requested the details                                                                                                                 | `P11`                                               |
| `name`             | String                    | Name of the product                                                                                                                                            | `iPhone 11`                                         |
| `url`              | String                    | URL to the product                                                                                                                                             | `http://mydomain.com/product/electronics/product1`  |
| `imageUrl`         | String                    | URL to the cover image of the product                                                                                                                          | `http://mydomain.com/product-absoulte-url/img.jpeg` |
| `sku`              | String                    | Product identifier from the shop                                                                                                                               | `P22`                                               |
| `price`            | Float                     | Price of the product                                                                                                                                           | `300.80`                                            |
| `alternativePrice` | Float                     | Alternative price of the product. A secondary price displayed alongside `price` — typically a discounted or sale price, a member price, or a compare-at price. | `250.00`                                            |
| `categories`       | Array of Strings          | Category IDs of the product. A product can belong to multiple categories.                                                                                      | `CAT123`                                            |
| `parentId`         | String                    | Parent product ID of the product                                                                                                                               | `P200`                                              |
| `brand`            | String                    | Brand of the product (max 128 characters)                                                                                                                      | `Adidas`                                            |
| `description`      | String                    | Description of the product (max 3000 characters)                                                                                                               | `Shoes for sports`                                  |
| `metaInfo`         | Object                    | Product metadata such as vendor, producer, stock level. Total length must not exceed **20000 characters**.                                                     | `{"vendor": "Samsung"}`                             |
| `updateEnabled`    | Boolean                   | Allows updating the existing product in the same request.                                                                                                      | `true/false`                                        |

## Update a product

To update an existing product, set `updateEnabled` to `true`. The field accepts `true` or `false`. Products cannot be updated when this field is `false`.

```json
"updateEnabled": true
```

| Attribute       | Datatype | Description                                               | Value  |
| :-------------- | :------- | :-------------------------------------------------------- | :----- |
| `updateEnabled` | Boolean  | Allows updating the existing product in the same request. | `True` |

To allow later updates, set this field to `true` when creating the product.

## Responses you should expect

| Response code | Message         | Description                                                                                                                                                                                      |
| :------------ | :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `201`         | Product created | Response includes a message with the product ID, indicating the product has been created.                                                                                                        |
| `204`         | Product updated | No response body — indicates the product has been updated.                                                                                                                                       |
| `401`         | Bad request     | - Your `api-key` may be incorrect.  - You haven't activated access to the API. [See this article for details.](/docs/add-the-ecommerce-app)  - The format for `name` and `url` may be incorrect. |

See the [list of errors here.](/docs/how-it-works#http-response-codes)

## Retrieving all products

Test the API to get all products at [eCommerce > Return all your products.](/reference/get-products) The cURL request is below.

```curl
curl --request GET \
     --url 'https://api.brevo.com/v3/products?limit=50&offset=0&sort=desc' \
     --header 'accept: application/json'
```

The parameters for this endpoint are:

| Attribute | Datatype         | Description                                                    | Value                           |
| :-------- | :--------------- | :------------------------------------------------------------- | :------------------------------ |
| limit     | Int64            | Number of documents per page.                                  | 50                              |
| offset    | Int64            | Index of the first document on the page.                       | 0                               |
| sort      | String           | Sort results in ascending/descending order of record creation. | `desc`                          |
| ids       | Array of strings | Filter by product IDs                                          | `Add any number of product ids` |

## How to get a product's details?

Get a specific product's details by sending a GET request with the product ID. Test this endpoint at [eCommerce > Get a product's details.](/reference/get-product-info)

```curl
curl --request GET \
     --url https://api.brevo.com/v3/products/P11 \
     --header 'accept: application/json' \
```

The cURL request above sends the request to the endpoint. `id` is the only parameter for this endpoint — it is the product's unique identifier.

| Attribute | Datatype | Description | Value |
| :-------- | :------- | :---------- | :---- |
| `id`      | String   | Product ID  | P11   |