### GET /api/catalog_system/pub/category/tree/{categoryLevels} Source: https://developers.vtex.com/api/openapi/catalog-api Retrieves the category tree of your store. Get all the category levels registered in the Catalog or define the level up to which you want to get. > πŸ“˜ Onboarding guide > > Check the new [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). 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](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) 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: | **Product** | **Category** | **Resource** | | --------------- | ----------------- | ----------------- | | Catalog | Content | **Category** | There are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-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](https://developers.vtex.com/docs/guides/authentication). >❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations. ```markdown ### Parameters - **Content-Type** (string, header, required): Type of the content being sent. - **Accept** (string, header, required): HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand. - **categoryLevels** (string, path, required): Value of the category level you need to retrieve. (example: "1") ### Responses #### 200 - OK - Array of object - **id** (integer (int32)) (required): Category ID. - **name** (string) (required): Category name. - **hasChildren** (boolean) (required): If the category has a category child (`true`) or not (`false`). - **url** (string) (required): Category URL. - **children** (array (object)) (required): Array with information about the category's children. Array items: - **Title** (string) (required): Category page title. - **MetaTagDescription** (string) (required): Category page Meta tag description. ### Example Usage ```bash curl -X GET "https://{accountName}.{environment}.com.br/api/catalog_system/pub/category/tree/{categoryLevels}" ``` ``` -------------------------------- ### GET /api/catalog_system/pvt/sku/stockkeepingunitbyid/{skuId} Source: https://developers.vtex.com/api/openapi/catalog-api Retrieves context of an SKU. > πŸ“˜ Onboarding guide > > Check the new [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). 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](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) 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: | **Product** | **Category** | **Resource** | | --------------- | ----------------- | ----------------- | | Catalog | Content | **SKUs** | There are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-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](https://developers.vtex.com/docs/guides/authentication). >❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations. ```markdown ### Parameters - **Content-Type** (string, header, required): Type of the content being sent. - **Accept** (string, header, required): HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand. - **skuId** (integer, path, required): SKU's unique identifier number. (example: 2001773) - **sc** (integer, query, optional): Sales channel's unique identifier number. (example: 1) ### Responses #### 200 - OK - **Id** (integer (int32)) (required): SKU ID. - **ProductId** (integer (int32)) (required): ID of the related product. - **NameComplete** (string) (required): Product Name and SKU Name concatenated. - **ComplementName** (string): Product Complement Name. - **ProductName** (string) (required): Product Name. - **ProductDescription** (string) (required): Product Description. HTML is allowed. - **ProductRefId** (string): Reference ID of the related product. - **TaxCode** (string): SKU Tax Code. - **SkuName** (string) (required): SKU Name. - **IsActive** (boolean) (required): Defines if the SKU is active or not. - **IsTransported** (boolean) (required): Deprecated field. - **IsInventoried** (boolean) (required): Deprecated field. - **IsGiftCardRecharge** (boolean) (required): Defines if the purchase will generate a reward. - **ImageUrl** (string) (required): SKU image URL. - **DetailUrl** (string) (required): Product URL. - **CSCIdentification** (string) (required): SKU seller identification. - **BrandId** (string) (required): Product brand ID. - **BrandName** (string) (required): Product brand Name. - **Dimension** (object) (required): Object containing the SKU dimensions to be used on the shipping calculation. - **cubicweight** (number) (required): SKU [cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128). - **height** (number) (required): SKU height. - **length** (number) (required): SKU length. - **weight** (number) (required): SKU weight. - **width** (number) (required): SKU width. - **RealDimension** (object) (required): Object containing the real SKU dimensions, which appear in the product page. - **realCubicWeight** (number) (required): Real SKU [cubic weight](https://help.vtex.com/en/tutorial/understanding-the-cubic-weight-factor--tutorials_128). - **realHeight** (number) (required): Real SKU height. - **realLength** (number) (required): Real SKU length. - **realWeight** (number) (required): Real SKU weight. - **realWidth** (number) (required): Real SKU width. - **ManufacturerCode** (string) (required): Product Supplier ID. - **IsKit** (boolean) (required): Defines whether the SKU is made up of one or more SKUs (part of a kit) (`true`) or not (`false`). Must be enabled if you are adding a kit. Once activated, this definition cannot be reverted. - **KitItems** (array (string)) (required): Array with SKU IDs of bundle components. - **Services** (array (string)) (required): Array with Service IDs that are related to the SKU. - **Categories** (array (string)) (required): Array with Categories from the related product. - **Attachments** (array (object)) (required): Array with Attachments ID that are related to the SKU. Array items: - **Id** (integer) (required): Attachment ID. - **Name** (string) (required): Attachment name. - **Keys** (array (string)) (required): Attachment Keys. - **Fields** (array (object)) (required): Array containing attachment fields. Array items: - **FieldName** (string) (required): Attachment field name. - **MaxCaracters** (string) (required): Maximum number of characters accepted in the attachment field. - **DomainValues** (string) (required): Allowed key values. - **IsActive** (boolean) (required): Defines if the attachment is active or not. - **IsRequired** (boolean) (required): Defines if the attachment is required or not. - **Collections** (array (string)) (required): Array with Collection IDs that are related to the product. - **SkuSellers** (array (object)) (required): Array with SKU sellers data. Array items: - **SellerId** (string) (required): SKU seller ID. This is the ID that identifies the seller in the marketplace. It can be the same as the seller name or a unique number. Check the **Sellers management** section in the Admin to get the correct ID. - **StockKeepingUnitId** (integer) (required): SKU ID. - **SellerStockKeepingUnitId** (string) (required): SKU ID for the SKU seller. - **IsActive** (boolean) (required): Defines if the SKU is active. - **FreightCommissionPercentage** (number) (required): Registered value for Seller Freight Commission. - **ProductCommissionPercentage** (number) (required): Registered value for Seller product Commission. - **SalesChannels** (array (integer)) (required): Array with the ID of all the sales channels that are related to the product. - **Images** (array (object)) (required): Array with SKU images. Array items: - **ImageUrl** (string) (required): Image URL. - **ImageName** (string) (required): Image label. - **FileId** (integer (int32)) (required): SKU image ID. - **SkuSpecifications** (array (object)) (required): Array with related SKU specifications. Array items: - **FieldId** (integer (int32)) (required): Specification field ID. - **FieldName** (string) (required): Specification field Name. - **FieldValueIds** (array (integer (int32))) (required): Array with related specification values IDs. - **FieldValues** (array (string)) (required): Array with related specification values. - **ProductSpecifications** (array (object)) (required): Array with related product specifications. Array items: - **ProductClustersIds** (string) (required): Product clusters IDs. - **ProductCategoryIds** (string) (required): Category hierarchy with category IDs. - **ProductGlobalCategoryId** (integer) (required): Global category ID. - **ProductCategories** (object) (required): Object containing product categories. Structure: "{CategoryID}": "{CategoryName}". - **CommercialConditionId** (integer (int32)) (required): Commercial condition ID, used to define SKU specific promotions or installment rules. In case of no specific condition, use `1` (default value). This field does not accept `0`. Learn more at [Registering a commercial condition](https://help.vtex.com/tutorial/registering-a-commercial-condition--tutorials_445). - **RewardValue** (number) (required): Credit that the customer receives when finalizing an order that includes the SKU. By filling this field out with `1`, the customer receives credit on the site in the selected currency, e.g. U$ 1. - **AlternateIds** (object) (required): Array with alternate SKU IDs, such as EAN and `RefId`. - **Ean** (string): SKU EAN. - **RefId** (string): SKU reference ID. - **AlternateIdValues** (array (string)) (required): Array with values of alternative SKU IDs. - **EstimatedDateArrival** (string) (required): To add the product as pre-sale, enter the product estimated arrival date in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format. You must take into consideration both the launch date and the freight calculation for the arrival date. - **MeasurementUnit** (string) (required): Measurement unit. This field should only be used when it is necessary to convert the unit of measure for sale. For example, if a product is sold in boxes, but customers want to buy per square meter (mΒ²). In common cases, use `"un"`. - **UnitMultiplier** (number) (required): Multiple number of SKU. If the multiplier is 5.0000, the product can be added in multiple quantities of 5, 10, 15, 20, onward. - **InformationSource** (string) (required): Information source. - **ModalType** (string) (required): Links an unusual type of SKU that needs special transportation, such as meat, glass, or a mattress, to a carrier specialized in delivering it. This field should be filled in with the name of the modal (e.g. "Chemicals" or "Refrigerated products"). To learn more about this feature, read our articles [How the modal works](https://help.vtex.com/en/tutorial/how-does-the-modal-work--tutorials_125) and [Setting up modal for carriers](https://help.vtex.com/en/tutorial/configure-modal--3jhLqxuPhuiq24UoykCcqy). - **KeyWords** (string): Keywords related to the product. - **ReleaseDate** (string): Release date of the product. - **ProductIsVisible** (boolean): Defines if the product is visible or not. - **ShowIfNotAvailable** (boolean): Defines if the product will be shown if it is not available. - **IsProductActive** (boolean): Defines if the product is active or not. - **ProductFinalScore** (integer): Product final score. ### Example Usage ```bash curl -X GET "https://{accountName}.{environment}.com.br/api/catalog_system/pvt/sku/stockkeepingunitbyid/{skuId}?sc=1" ``` ``` -------------------------------- ### GET /api/catalog/pvt/product/{productId} Source: https://developers.vtex.com/api/openapi/catalog-api Retrieves a specific product by its ID. The response body fields are exactly the information needed to create a new product. > πŸ“˜ Onboarding guide > > Check the [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). 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](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) 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: | **Product** | **Category** | **Resource** | | --------------- | ----------------- | ----------------- | | Catalog | Content | **Product and SKU Management** | There are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-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](https://developers.vtex.com/docs/guides/authentication). >❗To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations. ```markdown ### Parameters - **Content-Type** (string, header, required): Type of the content being sent. - **Accept** (string, header, required): HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand. - **productId** (string, path, required): Product's unique numerical identifier. (example: "1") ### Responses #### 200 - OK - **Id** (integer): Product's unique numerical identifier. - **Name** (string): Product's name. Limited to 150 characters. - **DepartmentId** (integer): Department ID according to the product's category. - **CategoryId** (integer): Category ID associated with this product. - **BrandId** (integer): Brand ID associated with this product. - **LinkId** (string): 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 (`-`). - **RefId** (string): Product Reference Code. The limit for the product `RefId` is 100 characters. - **IsVisible** (boolean): 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. - **Description** (string): Product description. - **DescriptionShort** (string): 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: ``. - **ReleaseDate** (string): 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. - **KeyWords** (string): 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. - **Title** (string): Product's Title tag. Limited to 150 characters. It is presented in the browser tab and corresponds to the title of the product page. This field is important for SEO. - **IsActive** (boolean): Activate (`true`) or inactivate (`false`) product. - **TaxCode** (string): Product tax code, used for tax calculation. - **MetaTagDescription** (string): Brief description of the product for SEO. It is recommended not to exceed 150 characters. - **SupplierId** (integer): Deprecated field. - **ShowWithoutStock** (boolean): If `true`, activates the [Notify Me](https://help.vtex.com/en/tutorial/setting-up-the-notify-me-option--2VqVifQuf6Co2KG048Yu6e) option when the product is out of stock. - **AdWordsRemarketingCode** (string): This is a legacy field. Do not take this information into consideration. - **LomadeeCampaignCode** (string): This is a legacy field. Do not take this information into consideration. - **Score** (integer): Value used to set the priority on the search result page. ### Example Usage ```bash curl -X GET "https://{accountName}.{environment}.com.br/api/catalog/pvt/product/{productId}" ``` ``` -------------------------------- ### GET /api/catalog_system/pvt/sku/stockkeepingunitids Source: https://developers.vtex.com/api/openapi/catalog-api Retrieves the IDs of all SKUs in your store. Presents the results with page size and pagination. > πŸ“˜ Onboarding guide > > Check the new [Catalog onboarding guide](https://developers.vtex.com/vtex-rest-api/docs/catalog-overview). 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](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) 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: | **Product** | **Category** | **Resource** | | --------------- | ----------------- | ----------------- | | Catalog | Content | **SKUs** | There are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-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](https://developers.vtex.com/docs/guides/authentication). >❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations. ```markdown ### Parameters - **page** (integer, query, required): Number of the page from where you need to retrieve SKU IDs. (example: 1) - **pagesize** (integer, query, required): Size of the page from where you need retrieve SKU IDs. The maximum value is `1000`. (example: 25) - **Content-Type** (string, header, required): Type of the content being sent. - **Accept** (string, header, required): HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand. ### Responses #### 200 - OK - Array of integer (int32) ### Example Usage ```bash curl -X GET "https://{accountName}.{environment}.com.br/api/catalog_system/pvt/sku/stockkeepingunitids?page=1&pagesize=25" ``` ```