---
title: "product.add"
method: POST
path: "/product.add.json"
tags: ["product"]
---

# product.add

`POST /product.add.json`

## Request

- Base URL: `https://api.api2cart.com/v1.1`
- URL: `https://api.api2cart.com/v1.1/product.add.json`
- Auth: API key in header `x-api-key` and API key in header `x-store-key`

Add new product to store.

## Request body

- ProductAdd
  - `name` string, required: Defines product's name that has to be added
  - `model` string, required: Defines product's model that has to be added
  - `description` string, required: Defines product's description that has to be added
  - `price` number, required: Defines product's price that has to be added
  - `sku` string: Defines product's sku that has to be added
  - `short_description` string: Defines short description
  - `type` string: Defines product's type
  - `status` string: Defines product's status
  - `visible` string: Set visibility status
  - `category_id` string: Defines product add that is specified by category id
  - `categories_ids` string: Defines product add that is specified by comma-separated categories id
  - `product_class` string: A categorization for the product
  - `product_type` string: A categorization for the product
  - `is_virtual` boolean: Defines whether the product is virtual
  - `downloadable` boolean: Defines whether the product is downloadable
  - `is_supply` boolean: If true, it indicates the product as a supply, otherwise it indicates that it is a finished product.
  - `available_for_view` boolean: Specifies the set of visible/invisible products for users
  - `available_for_sale` boolean: Specifies the set of visible/invisible products for sale
  - `store_id` string: Store Id
  - `stores_ids` string: Assign product to the stores that is specified by comma-separated stores' id
  - `lang_id` string: Language id
  - `old_price` number: Defines product's old price
  - `special_price` number: Defines product's model that has to be added
  - `wholesale_price` number: This parameter is deprecated. Please use the <strong>old_price</strong> parameter instead.
  - `cost_price` number: Defines new product's cost price
  - `fixed_cost_shipping_price` number: Specifies product's fixed cost shipping price
  - `tier_prices` object[]: Defines product's tier prices
    - `quantity` number
    - `price` number
  - `group_prices` object[]: Defines product's group prices
    - `group_id` string
    - `price` number
    - `qty` integer
  - `buyitnow_price` number: Defines buy it now value
  - `reserve_price` number: Defines reserve price value
  - `measure_unit` string: Unit for the price per unit. Must be in allowed list
  - `unit_price` number: Defines new product's unit price
  - `prices_inc_tax` boolean: Indicates whether prices include tax.
  - `retail_price` number: Defines new product's retail price
  - `quantity` number: Defines product's quantity that has to be added
  - `in_stock` boolean: Set stock status
  - `manage_stock` boolean: Defines inventory tracking for product
  - `warehouse_id` string: This parameter is used for selecting a warehouse where you need to set/modify a product quantity.
  - `backorder_status` string: Set backorder status
  - `min_order_quantity` number: The minimum quantity an order must contain, to be eligible to purchase this product.
  - `max_order_quantity` number: The maximum quantity an order can contain when purchasing the product.
  - `low_stock_threshold` number: Specify the quantity threshold below which the product is considered low in stock
  - `weight` number: Weight
  - `weight_unit` string: Weight Unit
  - `width` number: Defines product's width
  - `height` number: Defines product's height
  - `length` number: Defines product's length
  - `dimensions_unit` string: Weight Unit
  - `barcode` string: A barcode is a unique code composed of numbers used as a product identifier.
  - `upc` string: Universal Product Code. A UPC (UPC-A) is a commonly used identifer for many different products.
  - `ean` string: European Article Number. An EAN is a unique 8 or 13-digit identifier that many industries (such as book publishers) use to identify products.
  - `isbn` string: International Standard Book Number. An ISBN is a unique identifier for books.
  - `gtin` string: Global Trade Item Number. An GTIN is an identifier for trade items.
  - `mpn` string: Manufacturer Part Number. A MPN is an identifier of a particular part design or material used.
  - `asin` string: Amazon Standard Identification Number.
  - `product_reference` string: Groups all variations, that you want to combine into one product.
  - `external_product_link` string: External product link
  - `harmonized_system_code` string: Harmonized System Code. An HSC is a 6-digit identifier that allows participating countries to classify traded goods on a common basis for customs purposes
  - `country_of_origin` string: The country where the inventory item was made
  - `manufacturer` string: Defines product's manufacturer
  - `manufacturer_id` string: Defines product's manufacturer by manufacturer_id
  - `manufacturer_info` object: Manufacturer information.
    - `name` string: Defines manufacturer`s name
    - `address` string: Defines manufacturer`s address
    - `phone` string: Defines manufacturer`s phone
    - `email` string: Defines manufacturer`s email
  - `brand_name` string: Defines product brand name
  - `image_url` string: Image Url
  - `image_name` string: Defines image's name
  - `additional_image_urls` string[]: Image Url
  - `files` object[]: File Url
    - `name` string, required
    - `url` string, required
  - `size_chart` object: A size chart for the product. Only one property is supported.
    - `id` string: Defines a pre-generated size chart template
    - `url` string: Defines a size chart image URL
  - `related_products_ids` string: Defines product's related products ids that has to be added
  - `up_sell_products_ids` string: Defines product's up-sell products ids that has to be added
  - `cross_sell_products_ids` string: Defines product's cross-sell products ids that has to be added
  - `attribute_set_name` string: Defines product’s attribute set name in Magento
  - `attribute_name` string: Defines product’s attribute name separated with a comma in Magento
  - `search_keywords` string: Defines unique search keywords
  - `tags` string: Product tags
  - `materials` string[]: A list of material strings for materials used in the product.
  - `certifications` object[]: An array of product certifications. The list of possible certifications can be obtained using the "<i>category.info</i>" method (<i>additional_fields->rules->product_certifications</i>).
    - `id` string, required: Certification ID
    - `images` object[]: Certification images
      - `url` string, required: Image URL
    - `files` object[]: Certification files
      - `url` string, required: File URL
  - `specifics` object[]: An array of Item Specific Name/Value pairs used by the seller to provide descriptive details of an item in a structured manner. The list of possible specifications can be obtained using the category.info method (additional_fields->product_specifics). <b>The structure of the parameter is different for specific platforms.</b>
    - `name` string
    - `value` string
    - `values` string[]
    - `used_for_variations` boolean
    - `scale_id` integer, nullable
    - `input_value` string, nullable
    - `food_details` object
      - `calories` number, required
    - `group_products_details` object[]
      - `id` string, required
      - `quantity` integer, required
    - `booking_details` object
      - `location` string, required
      - `type` 'date' | 'date_time', required
      - `session_duration` integer
      - `session_gap` integer
      - `sessions_count` integer, required
      - `time_strict_value` number, required
      - `time_strict_type` 'days' | 'hours' | 'minutes', required
      - `availabilities` object[], required
        - `day` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday', required
        - `is_available` boolean
        - `times` object[]
          - `from` string, required: The starting time of the of available booking slot in 24 hours format. Required if <code>type=date_time</code>
          - `to` string, required: The ending time of the of available booking slot in 24 hours format. Required if <code>type=date_time</code>
      - `overrides` object[]
        - `day` 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday', required
        - `date` string, required
  - `avail_from` string: Allows to schedule a time in the future that the item becomes available. The value should be greater than the current date and time.
  - `sprice_create` string: Defines the date of special price creation
  - `sprice_modified` string: Defines the date of special price modification
  - `sprice_expire` string: Defines the term of special price offer duration
  - `created_at` string: Defines the date of entity creation
  - `auto_renew` boolean: When true, automatically renews a listing upon its expiration.
  - `when_made` string: An enumerated string for the era in which the maker made the product.
  - `meta_title` string: Defines unique meta title for each entity
  - `meta_keywords` string: Defines unique meta keywords for each entity
  - `meta_description` string: Defines unique meta description of a entity
  - `url` string: Defines unique product's URL
  - `seo_url` string: Defines unique URL for SEO
  - `tax_class_id` string: Defines tax classes where entity has to be added
  - `taxable` boolean: Specifies whether a tax is charged
  - `sales_tax` object: Percent of an item's price to be charged as the sales tax for the order. Look at cart.info method response for allowed values.<hr><div style="font-style:normal">Param structure:<div style="margin-left: 2%;"><code style="padding:0; background-color:#ffffff;font-size:85%;font-family:monospace;">sales_tax[<b>tax_percent</b>] = decimal (##.###)</br>sales_tax[<b>tax_state</b>] = string</br>sales_tax[<b>shipping_inc_in_tax</b>] = bool</br></code></div></div>
    - `tax_percent` number
    - `tax_state` string
    - `shipping_inc_in_tax` boolean
  - `condition` string: The human-readable label for the condition (e.g., "New").
  - `condition_description` string: Detailed description of the product condition.
  - `allow_display_condition` boolean: Flag used to determine whether the product condition is shown to the customer on the product page.
  - `payment_methods` string[]: Identifies the payment method (such as PayPal) that the seller will accept when the buyer pays for the item. Look at cart.info method response for allowed values.<hr><div style="font-style:normal">Param structure:<div style="margin-left: 2%;"><code style="padding:0; background-color:#ffffff;font-size:85%;font-family:monospace;">payment_methods[0] = string</br>payment_methods[1] = string</br></code></div></div>
  - `paypal_email` string: Valid PayPal email address for the PayPal account that the seller will use if they offer PayPal as a payment method for the listing.
  - `shipping_template_id` integer: The numeric ID of the shipping template associated with the products in Etsy. You can find possible values in the "cart.info" API method response, in the field shipping_zones[]->id.
  - `processing_profile_id` integer: The numeric ID of the processing profile (readiness state) for physical products in Etsy. You can find possible values in the "cart.info" API method response, in the field processing_profiles[]->readiness_state_id.
  - `shipping_details` object[]: The shipping details, including flat and calculated shipping costs and shipping insurance costs. Look at cart.info method response for allowed values.<hr><div style="font-style:normal">Param structure:<div style="margin-left: 2%;"><code style="padding:0; background-color:#ffffff;font-size:85%;font-family:monospace;">shipping_details[0][<b>shipping_type</b>] = string </br>shipping_details[0][<b>shipping_service</b>] = string</br>shipping_details[0][<b>shipping_cost</b>] = decimal</br>shipping_details[1][<b>shipping_type</b>] = string </br>shipping_details[1][<b>shipping_service</b>] = string</br>shipping_details[1][<b>shipping_cost</b>] = decimal</br></code></div></div>
    - `shipping_type` string
    - `shipping_service` string
    - `shipping_cost` number
  - `is_free_shipping` boolean: Specifies product's free shipping flag that has to be added
  - `delivery_code` string: The delivery promise that applies to offer
  - `delivery_type` string: Defines the type of the delivery.
  - `delivery_time` integer: Defines delivery time in days.
  - `delivery_option_ids` string: Defines delivery options for product by ids.
  - `package_details` object: If the seller is subscribed to "Business Policies", use the seller_profiles instead of the shipping_details, payment_methods and return_accepted params.<hr><div style="font-style:normal">Param structure:<div style="margin-left: 2%;"><code style="padding:0; background-color:#ffffff;font-size:85%;font-family:monospace;">package_details[<b>measure_unit</b>] = string</br> Allowed measure_unit values: [English or Metric] </br> Default: Metric</br>package_details[<b>weigh_unit</b>] = string</br> Allowed weigh_unit values: [kg, g, lbs, oz]</br>package_details[<b>package_depth</b>] = decimal</br>package_details[<b>package_length</b>] = decimal</br>package_details[<b>package_width</b>] = decimal</br>package_details[<b>weight_major</b>] = decimal</br>package_details[<b>weight_minor</b>] = decimal</br>package_details[<b>shipping_package</b>] = string</br> See cart.info method, param `eBay_shipping_package_details`</code></div></div>
    - `measure_unit` string
    - `weigh_unit` string
    - `package_depth` number
    - `package_length` number
    - `package_width` number
    - `weight_major` number
    - `weight_minor` number
    - `shipping_package` string
  - `logistic_info` object[]: Defines product's logistic channel settings
    - `logistic_id` number, required
    - `is_free` boolean
    - `shipping_fee` number
    - `size_id` number
  - `listing_duration` string: Describes the number of days the seller wants the listing to be active. Look at cart.info method response for allowed values.
  - `listing_type` string: Indicates the selling format of the marketplace listing.
  - `category_type` string: Specifies the type of category (e.g., apparel or other) for the product being added.
  - `return_accepted` boolean: Indicates whether the seller allows the buyer to return the item.
  - `seller_profiles` object: If the seller is subscribed to "Business Policies", use the seller_profiles instead of the shipping_details, payment_methods and return_accepted params.<hr><div style="font-style:normal">Param structure:<div style="margin-left: 2%;"><code style="padding:0; background-color:#ffffff;font-size:85%;font-family:monospace;">seller_profiles[<b>shipping_profile_id</b>] = string</br>seller_profiles[<b>payment_profile_id</b>] = string</br>seller_profiles[<b>return_profile_id</b>] = string</br></code></div></div>
    - `shipping_profile_id` string
    - `payment_profile_id` string
    - `return_profile_id` string
  - `auction_confidentiality_level` string: This allows buyers to remain anonymous when the bid or buy an item.
  - `best_offer` object: The price at which Best Offers are automatically accepted.<hr><div style="font-style:normal">Param structure:<div style="margin-left: 2%;"><code style="padding:0; background-color:#ffffff;font-size:85%;font-family:monospace;">best_offer[<b>minimum_offer_price</b>] = decimal</br>best_offer[<b>auto_accept_price</b>] = decimal</br></code></div></div>
    - `minimum_offer_price` number
    - `auto_accept_price` number
  - `production_partner_ids` string: Defines product's production partner ids that has to be added
  - `marketplace_item_properties` string: String containing the JSON representation of the supplied data
  - `clear_cache` boolean: Is cache clear required
  - `viewed_count` integer: Specifies the number of product's reviews
  - `ordered_count` integer: Defines how many times the product was ordered
  - `vendor_id` string: Vendor Id
  - `shop_section_id` integer: Add Shop Section Id
  - `return_policy_id` integer: Add Return Policy Id
  - `personalization_details` object: <strong>Deprecated.</strong> Use <strong>personalization_questions</strong> instead for setting personalization questions. Defines legacy personalization settings for the listing. To enable personalization, is_personalizable must be set to true. When enabled, additional fields may be used to configure the personalization experience, including whether it is required (personalization_is_required), the maximum character limit (personalization_char_count_max), and buyer instructions (personalization_instructions). All related fields are only applicable if personalization is enabled.
    - `is_personalizable` boolean, required
    - `personalization_is_required` boolean
    - `personalization_char_count_max` integer
    - `personalization_instructions` string
  - `personalization_questions` object[]: Defines personalization questions for the listing as an array of question objects. Each question object supports the following fields: question_id (integer, nullable), question_text (string, 1-45 chars), instructions (string, nullable), question_type (string), required (boolean), max_allowed_characters (integer, nullable), max_allowed_files (integer, nullable), options (array, nullable). Cannot be used together with <strong>personalization_details</strong>.
    - `question_text` string, required
    - `instructions` string
    - `question_type` 'text_input' | 'dropdown' | 'unlabeled_upload' | 'labeled_upload', required
    - `required` boolean, required
    - `max_allowed_characters` integer, nullable
    - `max_allowed_files` integer, nullable
    - `options` string[], nullable
  - `manufacturer_ids` string: A comma-separated list of manufacturer IDs. Retrieve the IDs from the cart.info method.
  - `responsible_person_ids` string: A comma-separated list of responsible person IDs. Retrieve the IDs from the cart.info method.
  - `idempotency_key` string: A unique identifier associated with a specific request. Repeated requests with the same <strong>idempotency_key</strong> return a cached response without re-executing the business logic. <strong>Please note that the cache lifetime is 15 minutes.</strong>

## Response `200`

successful operation

- object
  - `return_code` integer
  - `return_message` string
  - `result` object
    - `product_id` string

---

[API](https://skmtc.dev/api2cart/apis/api2cart-openapi.md) · [All operations](https://skmtc.dev/api2cart/apis/api2cart-openapi/llms.txt) · [OpenAPI document](https://skmtc.dev/api2cart/apis/api2cart-openapi/revisions/c34440741693?raw)
