---
title: "upsertProducts - Create or Update your Mirakl Connect Catalog"
method: POST
path: "/products"
tags: ["Catalog"]
---

# upsertProducts - Create or Update your Mirakl Connect Catalog

`POST /products`

<div class="extension-title">Description</div>

Products are created if they do not already exist. The missing fields in the request remain unchanged on the Mirakl Connect catalog (behaves like a PATCH).

Omitted top-elements in the API will remain unchanged.

Any nullable field can be explicitly set to null in order to remove its value.


<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>

<div class="recommended-call-frequency">Recommended usage: Asynchronous: every 5 minutes</div>
<div class="max-call-frequency">Maximum usage: Asynchronous: once per minute</div>
</div>

## Request body

- UpsertProductsRequest — Update any of the top-elements of all given products. Omitted top-elements in the API will remain unchanged. Any nullable field can be explicitly set to null in order to remove its value.
  - `products` Product[] — Products to create or to update
    - `attributes` Attribute[], nullable — Additional product attributes
      - `id` string, required — Attribute's id
      - `name` string, required — Attribute's name
      - `type` string, required — The attribute's type Enum: `"STRING"`, `"NUMERIC"`, `"BOOLEAN"`
      - `value` object, required — The attribute's value
    - `brand` string, nullable — Brand
    - `category` Category — Category
      - `id` string, nullable — The id of the category
      - `labels` CategoryLabel[], required — Labels for the category with their associated locale
        - `locale` string, required — The language format can be ISO-639 or ISO-639_ISO-3166
        - `value` string, required — A label for the category
    - `descriptions` Description[], nullable — Descriptions with their associated locale
      - `locale` string, required — The language format can be ISO-639 or ISO-639_ISO-3166
      - `value` string, required — Description
    - `discount_prices` DiscountPrice[], nullable — Discount prices
      - `end_date` string, datetime, nullable — The end date of the discount interval in ISO 8601 format (UTC/Zulu time)
      - `price` Money, required
        - `amount` number, required — Price amount
        - `currency` string, iso-4217, required — Currency ISO code
      - `scope` string, nullable — Price scope
      - `start_date` string, datetime, nullable — The start date of the discount interval in ISO 8601 format (UTC/Zulu time)
    - `gtins` Gtin[] — GTIN (EAN, GENCOD, UPC, ISBN, etc.) used to map the product with one of the marketplace’s catalog
      - `value` string, required — GTIN value on 8, 12 or 13 digits
    - `id` string, required — Product identifier
    - `images` Image[], nullable — Images
      - `url` string, required — Image URL
    - `quantities` Quantity[] — Product quantities
      - `available_quantity` integer, required — Available quantity of a product
      - `warehouse_code` string — Warehouse code defined in your Mirakl account
    - `standard_prices` StandardPrice[] — Standard prices
      - `price` Money, required
        - `amount` number, required — Price amount
        - `currency` string, iso-4217, required — Currency ISO code
      - `scope` string, nullable — Price scope
    - `titles` Title[], nullable — Titles with their associated locale
      - `locale` string, required — The language format can be ISO-639 or ISO-639_ISO-3166
      - `value` string, required — Title

## Response `202`

The request has been accepted

---

[API](https://skmtc.net/mirakl/apis/mirakl-connect-apis.md) · [All operations](https://skmtc.net/mirakl/apis/mirakl-connect-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mirakl/mirakl-connect-apis/revisions/cc009fec5cdd/schema)
