---
title: "Creates products"
url: "https://developer.retailexpress.com.au/apis/retail-express-api-21-v2/versions/210b509a-613e-44ac-a87b-ef6c22c23a2c/operations/post-products"
---

> Full API specification: https://developer.retailexpress.com.au/apis/retail-express-api-21-v2/versions/210b509a-613e-44ac-a87b-ef6c22c23a2c.md

# Creates products

`POST` `/products`

Operation ID: `post-products`

Sample request: POST /products [ { "carton_quantity":"1", "cogs_ex":11.1, "cubic":20.2, "direct_costs_ex":1.1, "prevent_disabling":false, "promotional_price_inc":1.1, "promotional_price_expiry":"2021-12-12T00:00:00", "freight_inc":1.1, "rrp_inc":1.1, "sell_price_inc":1.1, "web_price_inc":1.1, "breadth":1.1, "core_product":false, "custom_properties": [ { "Name": "Custom1", "Value": "Value1" }, { "Name": "Custom2", "Value": "Value2" } ], "depth":1.1, "disabled":false, "lead_time":12, "length":1.1, "loyalty_ratio":1.1, "manufacturer_sku":"UniqueManufacturerSku", "product_type":{ "id":3 }, "requires_assembly":false, "require_serial_number":1, "shipping_cubic":1.1, "short_description":"ShortDescription", "supplier":{ "supplier_code":"00" }, "supplier_buy_ex":1.1, "supplier_sku":"SupplierSKU1", "supplier_sku2":"SupplierSKU2", "weight":1.1, "buy_price_ex" : 0.0000, "attributes":[ { "value":{ "id":1 }, "id":3 } ], "long_description": "sample text", "voucher_product" : false, "max_discount_rule":{ "id": 1 }, "replenishment_method": { "id": 1 }, "sales_channels":[ { "id": 1, "source_group": { "id": 1 }, "enabled": true }], "export_to_web": false, "external_links": [ { "id": 0, "name": "ExternalURL1", "url": "https://test1.com" }, { "id": 0, "name": "ExternalURL2", "url": "https://test2.com" }, { "id": 0, "name": "ExternalImageURL", "url": "https://test3.com" } ], "fixed_price_groups": [ { "id": 1, "price_inc": 15.5 }, { "id": 2, "price_inc": 35 }, { "id": 3, "price_inc": 25 } ] } ]

## Header parameters

- `x-api-key` (string, required) - Api subscription key
- `Cache-Control` (string, optional)
- `Authorization` (string, required) - Bearer token for authorization (e.g., Bearer <token>)

## Request body

Content types: `application/json`

## Responses

- `201` - Products created
- `400` - Bad request, max batch size limit of 100 is exceeded
- `401` - Unauthorized
- `403` - Forbidden

## OpenAPI definition

```yaml
openapi: 3.0.1
info:
  title: Retail Express API
  version: v2.1
servers:
  - url: https://api.retailexpress.com.au/v2.1
paths:
  /products:
    post:
      tags:
        - products
      summary: Creates products
      description: "Sample request:\r

        \r

        \     POST /products\r

        \     [\r

        \       {\r

        \        \"carton_quantity\":\"1\",\r

        \        \"cogs_ex\":11.1,\r

        \        \"cubic\":20.2,\r

        \        \"direct_costs_ex\":1.1,\r

        \        \"prevent_disabling\":false,\r

        \        \"promotional_price_inc\":1.1,\r

        \        \"promotional_price_expiry\":\"2021-12-12T00:00:00\",\r

        \        \"freight_inc\":1.1,\r

        \        \"rrp_inc\":1.1,\r

        \        \"sell_price_inc\":1.1,\r

        \        \"web_price_inc\":1.1,\r

        \        \"breadth\":1.1,\r

        \        \"core_product\":false,\r

        \        \"custom_properties\": [\r

        \             {\r

        \                 \"Name\": \"Custom1\",\r

        \                 \"Value\": \"Value1\"\r

        \             },\r

        \             {\r

        \                 \"Name\": \"Custom2\",\r

        \                 \"Value\": \"Value2\"\r

        \             }\r

        \        ],\r

        \        \"depth\":1.1,\r

        \        \"disabled\":false,\r

        \        \"lead_time\":12,\r

        \        \"length\":1.1,\r

        \        \"loyalty_ratio\":1.1,\r

        \        \"manufacturer_sku\":\"UniqueManufacturerSku\",\r

        \        \"product_type\":{\r

        \           \"id\":3\r

        \        },\r

        \        \"requires_assembly\":false,\r

        \        \"require_serial_number\":1,\r

        \        \"shipping_cubic\":1.1,\r

        \        \"short_description\":\"ShortDescription\",\r

        \        \"supplier\":{\r

        \            \"supplier_code\":\"00\"\r

        \        },\r

        \        \"supplier_buy_ex\":1.1,\r

        \        \"supplier_sku\":\"SupplierSKU1\",\r

        \        \"supplier_sku2\":\"SupplierSKU2\",\r

        \        \"weight\":1.1,\r

        \        \"buy_price_ex\" : 0.0000,\r

        \        \"attributes\":[\r

        \           {\r

        \              \"value\":{\r

        \                 \"id\":1\r

        \              },\r

        \              \"id\":3\r

        \           }\r

        \        ],\r

        \        \"long_description\": \"sample text\",\r

        \        \"voucher_product\" : false,\r

        \        \"max_discount_rule\":{\r

        \             \"id\": 1\r

        \        },\r

        \        \"replenishment_method\": {\r

        \              \"id\": 1\r

        \        },\r

        \        \"sales_channels\":[\r

        \             {\r

        \                 \"id\": 1,\r

        \                 \"source_group\": \r

        \                 {\r

        \                     \"id\": 1\r

        \                 },\r

        \                 \"enabled\": true\r

        \             }],\r

        \       \"export_to_web\": false,\r

        \       \"external_links\": [\r

        \             {\r

        \                 \"id\": 0,\r

        \                 \"name\": \"ExternalURL1\",\r

        \                 \"url\": \"https://test1.com\"\r

        \             },\r

        \             {\r

        \                 \"id\": 0,\r

        \                 \"name\": \"ExternalURL2\",\r

        \                 \"url\": \"https://test2.com\"\r

        \             },\r

        \             {\r

        \                 \"id\": 0,\r

        \                 \"name\": \"ExternalImageURL\",\r

        \                 \"url\": \"https://test3.com\"\r

        \             }\r

        \        ],\r

        \        \"fixed_price_groups\": [\r

        \             {\r

        \                 \"id\": 1,\r

        \                 \"price_inc\": 15.5\r

        \             },\r

        \             {\r

        \                 \"id\": 2,\r

        \                 \"price_inc\": 35\r

        \             },\r

        \             {\r

        \                 \"id\": 3,\r

        \                 \"price_inc\": 25\r

        \             }\r

        \        ]\r

        \       }\r

        \     ]"
      operationId: post-products
      parameters:
        - name: x-api-key
          in: header
          description: Api subscription key
          required: true
          schema:
            type: string
        - name: Cache-Control
          in: header
          required: false
          schema:
            type: string
            default: no-cache
        - name: Authorization
          in: header
          required: true
          description: Bearer token for authorization (e.g., Bearer <token>)
          schema:
            type: string
      requestBody:
        description: Products to be created
        content:
          application/json:
            schema:
              title: EmptyExample
              type: object
              additionalProperties: false
      responses:
        "201":
          description: Products created
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Product"
              example:
                - carton_quantity: string
                  cogs_ex: 0
                  cubic: 0
                  direct_costs_ex: 0
                  prevent_disabling: true
                  promotional_price_inc: 0
                  promotional_price_expiry: string
                  freight_inc: 0
                  price_ex: 0
                  rrp_inc: 0
                  sell_price_inc: 0
                  web_price_inc: 0
                  markup_target: 0
                  breadth: 0
                  core_product: true
                  custom_properties:
                    - name: string
                      value: string
                  depth: 0
                  disabled: true
                  id: 0
                  lead_time: 0
                  length: 0
                  loyalty_ratio: 0
                  manufacturer_sku: string
                  product_type:
                    id: 0
                    name: string
                    modified_on: string
                  requires_assembly: true
                  shipping_cubic: 0
                  short_description: string
                  supplier:
                    id: 0
                    supplier_code: string
                    name: string
                    is_enabled: true
                    modified_on: string
                  supplier_buy_ex: 0
                  supplier_sku: string
                  supplier_sku2: string
                  weight: 0
                  buy_price_ex: 0
                  long_description: string
                  voucher_product: true
                  max_discount_rule:
                    id: 0
                    name: string
                    value: 0
                    type: string
                    modified_on: string
                  replenishment_method:
                    id: 0
                    code: string
                    name: string
                  attributes:
                    - id: 0
                      name: string
                      type: string
                      modified_on: string
                      value:
                        id: 0
                        name: string
                        list_order: 0
                  created_on: string
                  modified_on: string
                  inventory:
                    - outlet:
                        id: 0
                        name: string
                        modified_on: string
                      quantity_available: 0
                      quantity_on_order: 0
                  sales_channels:
                    - id: 0
                      name: string
                      shopify_channel: true
                      source_group:
                        id: 0
                        name: string
                      enabled: true
                  export_to_web: true
                  package: true
                  has_package_products: true
                  last_sold_on: string
                  require_serial_number: 0
                  last_fulfiled_on: string
                  external_links:
                    - id: 0
                      name: string
                      url: string
                  fixed_price_groups:
                    - id: 0
                      name: string
                      sell_price_inc: 0
                      modified_on: string
                  price_groups:
                    - id: 0
                      name: string
                      sell_price_inc: 0
                      web_price_inc: 0
                      modified_on: string
        "400":
          description: Bad request, max batch size limit of 100 is exceeded
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProblemDetails"
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProblemDetails"
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        "403":
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProblemDetails"
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
security: []
components:
  schemas:
    Product:
      title: ""
      type: object
      properties:
        carton_quantity:
          type: string
          description: Carton quantity
          nullable: true
        cogs_ex:
          type: number
          description: Cogs ex
          format: double
        cubic:
          type: number
          description: Cubic
          format: double
        direct_costs_ex:
          type: number
          description: Direct costs
          format: double
          nullable: true
        prevent_disabling:
          type: boolean
          description: Is product disabled
          nullable: true
        promotional_price_inc:
          type: number
          description: Discount price
          format: double
          nullable: true
        promotional_price_expiry:
          type: string
          description: Discount price expiry
          format: date-time
          nullable: true
        freight_inc:
          type: number
          description: Freight inc
          format: double
          nullable: true
        price_ex:
          type: number
          description: Price ex
          format: double
          nullable: true
        rrp_inc:
          type: number
          description: Rpr inc
          format: double
          nullable: true
        sell_price_inc:
          maximum: 922337203685477.6
          minimum: -922337203685477.6
          type: number
          description: Sell Price, cannot be used along with markup_target
          format: double
          nullable: true
        web_price_inc:
          type: number
          description: Web price
          format: double
          nullable: true
        markup_target:
          type: number
          description: Markup Target %, cannot be used along with sell_price_inc
          format: double
          nullable: true
        breadth:
          maximum: 9999.9999
          minimum: -9999.9999
          type: number
          description: Breadth
          format: double
          nullable: true
        core_product:
          type: boolean
          description: Is core product flag
        custom_properties:
          type: array
          items:
            $ref: "#/components/schemas/CustomProperty"
          description: List of custom properties
          nullable: true
        depth:
          maximum: 9999.9999
          minimum: -9999.9999
          type: number
          description: Depth
          format: double
          nullable: true
        disabled:
          type: boolean
          description: Disabled
          nullable: true
        id:
          type: integer
          description: Product id.
          format: int32
          nullable: true
        lead_time:
          type: integer
          description: Lead time
          format: int32
          nullable: true
        length:
          maximum: 9999.9999
          minimum: -9999.9999
          type: number
          description: Length
          format: double
          nullable: true
        loyalty_ratio:
          type: number
          description: Loyalty Ratio
          format: double
          nullable: true
        manufacturer_sku:
          type: string
          description: Manufacture SKU
          nullable: true
        product_type:
          $ref: "#/components/schemas/ProductType"
        requires_assembly:
          type: boolean
          description: Requires Assembly
        shipping_cubic:
          maximum: 999999.9999
          minimum: -999999.9999
          type: number
          description: Shipping Cubic
          format: double
          nullable: true
        short_description:
          type: string
          description: Product description.
          nullable: true
        supplier:
          $ref: "#/components/schemas/SupplierLimited"
        supplier_buy_ex:
          maximum: 922337203685477.6
          minimum: -922337203685477.6
          type: number
          description: Supplier Buy Ex
          format: double
          nullable: true
        supplier_sku:
          type: string
          description: Supplier SKU.
          nullable: true
        supplier_sku2:
          type: string
          description: Supplier SKU2.
          nullable: true
        weight:
          maximum: 99999999.9999
          minimum: -99999999.9999
          type: number
          description: Weight
          format: double
          nullable: true
        buy_price_ex:
          type: number
          description: Buy price ex
          format: double
          nullable: true
        long_description:
          type: string
          description: Long description
          nullable: true
        voucher_product:
          type: boolean
          description: Voucher product
        max_discount_rule:
          $ref: "#/components/schemas/MaxDiscountRule"
        replenishment_method:
          $ref: "#/components/schemas/ProductReplenishmentMethod"
        attributes:
          type: array
          items:
            $ref: "#/components/schemas/Attribute"
          description: Product attributes
          nullable: true
        created_on:
          type: string
          description: Created on
          format: date-time
          nullable: true
        modified_on:
          type: string
          description: Modified on
          format: date-time
          nullable: true
        inventory:
          type: array
          items:
            $ref: "#/components/schemas/ProductInventory"
          description: Inventory
          nullable: true
        sales_channels:
          type: array
          items:
            $ref: "#/components/schemas/ProductSalesChannelVM"
          description: Product Sales Chanels
          nullable: true
        export_to_web:
          type: boolean
          description: Export To Web
          nullable: true
        package:
          type: boolean
          description: Package
        has_package_products:
          type: boolean
          description: Has Package Products
        last_sold_on:
          type: string
          description: Last Processed Sold
          format: date-time
          nullable: true
        require_serial_number:
          type: integer
          description: Require SerialNumber
          format: int32
        last_fulfiled_on:
          type: string
          description: Last Fulfiled
          format: date-time
          nullable: true
        external_links:
          type: array
          items:
            $ref: "#/components/schemas/ProductExternalLinks"
          description: Product External Links.
          nullable: true
        fixed_price_groups:
          type: array
          items:
            $ref: "#/components/schemas/ProductFixedPriceGroupVM"
          description: Product Fixed Price Groups
          nullable: true
        price_groups:
          type: array
          items:
            $ref: "#/components/schemas/ProductPriceGroupVM"
          description: Product Standart Price Groups
          nullable: true
      additionalProperties: false
      description: Product Model
    ProblemDetails:
      title: ""
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    CustomProperty:
      title: ""
      type: object
      properties:
        name:
          type: string
          nullable: true
        value:
          type: string
          nullable: true
      additionalProperties: false
      description: Custom Property Model
    ProductType:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Product type Id.
          format: int32
          nullable: true
        name:
          maxLength: 50
          minLength: 0
          pattern: ^[a-zA-Z0-9\s./;:\-_+()*&^%$#@]+$
          type: string
          description: Product type description (Name)
          nullable: true
        modified_on:
          type: string
          description: Modified on
          format: date-time
      additionalProperties: false
      description: Product Type Model
    SupplierLimited:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Supplier Id
          format: int32
          nullable: true
        supplier_code:
          maxLength: 20
          minLength: 0
          type: string
          description: Supplier Code
          nullable: true
        name:
          maxLength: 50
          minLength: 0
          type: string
          description: Supplier Name
          nullable: true
        is_enabled:
          type: boolean
          description: Is enabled flag
        modified_on:
          type: string
          description: Modified On
          format: date-time
      additionalProperties: false
    MaxDiscountRule:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Max Discount Rule Id.
          format: int32
          nullable: true
        name:
          maxLength: 50
          minLength: 0
          type: string
          description: Max Discount Rule name.
          nullable: true
        value:
          type: number
          description: Max Discount Rule value.
          format: double
        type:
          type: string
          description: Discount Type.
          nullable: true
        modified_on:
          type: string
          description: Modified on
          format: date-time
      additionalProperties: false
      description: Max Discount Rule Model
    ProductReplenishmentMethod:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Product Replenishment Method Id.
          format: int32
          nullable: true
        code:
          type: string
          description: Product Replenishment Method code.
          nullable: true
        name:
          type: string
          description: Product Replenishment Method name.
          nullable: true
      additionalProperties: false
    Attribute:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Attribute Id
          format: int32
          nullable: true
        name:
          type: string
          description: Attribute Name
          nullable: true
        type:
          type: string
          description: Attribute Type
          nullable: true
          readOnly: true
        modified_on:
          type: string
          format: date-time
          nullable: true
        value:
          $ref: "#/components/schemas/AttributeValueLimited"
      additionalProperties: false
    ProductInventory:
      title: ""
      type: object
      properties:
        outlet:
          $ref: "#/components/schemas/ProductInventoryOutlet"
        quantity_available:
          type: integer
          description: Available Quantity
          format: int32
        quantity_on_order:
          type: integer
          description: On-order Quantity
          format: int32
      additionalProperties: false
      description: Product Inventory Model
    ProductSalesChannelVM:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Channel Id.
          format: int32
        name:
          type: string
          description: Channel Name.
          nullable: true
        shopify_channel:
          type: boolean
          description: Shopify Channel.
        source_group:
          $ref: "#/components/schemas/SourceGroupVM"
        enabled:
          type: boolean
          description: Enabled.
      additionalProperties: false
    ProductExternalLinks:
      title: ""
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
      additionalProperties: false
      description: Product External Links
    ProductFixedPriceGroupVM:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Fixed Price Group Id.
          format: int32
        name:
          type: string
          description: Fixed Price Group Name.
          nullable: true
        sell_price_inc:
          type: number
          description: Fixed Price Group Price.
          format: double
          nullable: true
        modified_on:
          type: string
          description: Fixed Price Group Modified On.
          format: date-time
          nullable: true
      additionalProperties: false
    ProductPriceGroupVM:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Identifier
          format: int32
        name:
          type: string
          description: Name
          nullable: true
        sell_price_inc:
          type: number
          description: Calculated POS Price
          format: double
        web_price_inc:
          type: number
          description: Calculated Web Price
          format: double
        modified_on:
          type: string
          format: date-time
      additionalProperties: false
    AttributeValueLimited:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Attribute Value Id
          format: int32
          nullable: true
        name:
          type: string
          description: Attribute Value Name
          nullable: true
        list_order:
          type: integer
          description: Attribute Value List Order
          format: int32
          nullable: true
      additionalProperties: false
    ProductInventoryOutlet:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Outlet Id
          format: int32
        name:
          type: string
          description: Name
          nullable: true
        modified_on:
          type: string
          description: Modified on
          format: date-time
          nullable: true
      additionalProperties: false
      description: Product Inventory Outlet Model
    SourceGroupVM:
      title: ""
      type: object
      properties:
        id:
          type: integer
          description: Source Group Id.
          format: int32
          nullable: true
        name:
          type: string
          description: Source Group Name.
          nullable: true
      additionalProperties: false
```
