v50

latestOpenAPI 3.0.0raw.githubusercontent.com2026-05-29208421.4 MB
Product

Create product with category and brand

This endpoint allows two types of request:

Type 1: Creating a new product as well as a new category path (including subcategories) and a new brand by using CategoryPath and BrandName parameters.

Type 2: Creating a new product given an existing BrandId and an existing CategoryId.

When creating a product, regardless of the type of request, if there is a need to create a new product with a specific custom product ID, specify the Id (integer) in the request body. Otherwise, VTEX will generate the ID automatically.

📘 Onboarding guide

Check the new Catalog onboarding guide. We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Catalog and is organized by focusing on the developer's journey.

Permissions

Any user or API key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code 403 error. These are the applicable resources for this endpoint:

ProductCategoryResource
CatalogContentProduct and SKU Management

There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see Authentication overview.

❗ To prevent integrations from having excessive permissions, consider the best practices for managing API keys when assigning License Manager roles to integrations.

post/api/catalog/pvt/product

Headers

Content-Typestring required

Type of the content being sent.

Acceptstring required

HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.

Request body

OR

Example request

{
  "Id": 42,
  "Name": "Black T-Shirt",
  "CategoryPath": "Mens/Clothing/T-Shirts",
  "DepartmentId": 1,
  "BrandName": "Acme",
  "RefId": "31011706925",
  "Title": "Black T-Shirt",
  "LinkId": "tshirt-black",
  "Description": "A classic black t-shirt made from soft, breathable cotton",
  "ReleaseDate": "2025-07-01T00:00:00",
  "IsVisible": true,
  "IsActive": true,
  "TaxCode": "12345",
  "MetaTagDescription": "Very cool t-shirt for sports",
  "ShowWithoutStock": true,
  "Score": 1
}

Response

OK

Idinteger

Product's unique numerical identifier.

Namestring

Product's name. Limited to 150 characters.

DepartmentIdinteger

Department ID according to the product's category.

CategoryIdinteger

Category ID associated with this product.

BrandIdinteger

Brand ID associated with this product.

LinkIdstring

Slug that will be used to build the product page URL. If it not informed, it will be generated according to the product's name replacing spaces and special characters by hyphens (-).

RefIdstring

Product Reference Code.

IsVisibleboolean

Shows (true) or hides (false) the product in search result and product pages, but the product can still be added to the shopping cart. Usually applicable for gifts.

Descriptionstring

Product description.

DescriptionShortstring

Short product description. This information can be displayed on both the product page and the shelf, using the following controls: Store Framework: $product.DescriptionShort. Legacy CMS Portal: <vtex.cmc:productDescriptionShort/>.

ReleaseDatestring

Used to assist in the ordering of the search result of the site. Using the O=OrderByReleaseDateDESC query string, you can pull this value and show the display order by release date. This attribute is also used as a condition for dynamic collections.

KeyWordsstring

Store Framework: Deprecated. Legacy CMS Portal: Keywords or synonyms related to the product, separated by comma (,). "Television", for example, can have a substitute word like "TV". This field is important to make your searches more comprehensive.

Titlestring

Product's title tag, which corresponds to the title of the product page, presented in the browser tab. This field is important for SEO. Limited to 150 characters.

IsActiveboolean

Activate (true) or inactivate (false) product.

TaxCodestring

Product tax code, used for tax calculation.

MetaTagDescriptionstring

Brief description of the product for SEO. It's recommended that you don't exceed 150 characters.

SupplierIdinteger nullable

Supplier unique identifier.

ShowWithoutStockboolean

If true, activates the Notify Me option when the product is out of stock.

AdWordsRemarketingCodestring nullable

This is a legacy field. Do not take this information into consideration.

LomadeeCampaignCodestring nullable

This is a legacy field. Do not take this information into consideration.

Scoreinteger

Value used to set the priority on the search result page.