Catalog API
The Catalog API empowers merchants to seamlessly manage their product information. It enables the creation, modification, and deletion of product details, including attributes like images and specifications. SKU management covers product variations. This API also supports organizing products into categories, collections, and manage brands.
The default rate limit for the Catalog API is 45,000 requests per minute per account, and 15,000 requests per minute per endpoint.
The SKU ID is an integer with a maximum value of 2,147,483,647.
Check the Catalog onboarding guide, created 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.
Common parameters
| Parameter name | Description | Type |
|---|---|---|
{{accountName}} |
Name of the VTEX account. Used as part of the URL. | Server variable. |
{{environment}} |
Environment to use. Used as part of the URL. The default value is vtexcommercestable. |
Server variable. |
X-VTEX-API-AppKey |
Unique identifier of the API key. | Authentication header. Must be used together with X-VTEX-API-AppToken. Not necessary when using VtexIdclientAutCookie. |
X-VTEX-API-AppToken |
Secret token of the API key. | Authentication header. Must be used together with X-VTEX-API-AppKey. Not necessary when using VtexIdclientAutCookie. |
VtexIdclientAutCookie |
User token, valid for 24 hours. | Authentication header. Not necessary when using X-VTEX-API-AppKey and X-VTEX-API-AppToken. |
Endpoints
SKU service
| Summary | Method | Path |
|---|---|---|
| Get SKU service | GET | /api/catalog/pvt/skuservice/{skuServiceId} |
| Update SKU service | PUT | /api/catalog/pvt/skuservice/{skuServiceId} |
| Dissociate SKU service | DELETE | /api/catalog/pvt/skuservice/{skuServiceId} |
| Associate SKU service | POST | /api/catalog/pvt/skuservice |
SKU service attachment
| Summary | Method | Path |
|---|---|---|
| Associate SKU service attachment | POST | /api/catalog/pvt/skuservicetypeattachment |
| Dissociate attachment by attachment ID or SKU service type ID | DELETE | /api/catalog/pvt/skuservicetypeattachment |
| Dissociate attachment from SKU service type | DELETE | /api/catalog/pvt/skuservicetypeattachment/{skuServiceTypeAttachmentId} |
SKU service value
| Summary | Method | Path |
|---|---|---|
| Create SKU service value | POST | /api/catalog/pvt/skuservicevalue |
| Get SKU service value | GET | /api/catalog/pvt/skuservicevalue/{skuServiceValueId} |
| Update SKU service value | PUT | /api/catalog/pvt/skuservicevalue/{skuServiceValueId} |
| Delete SKU service value | DELETE | /api/catalog/pvt/skuservicevalue/{skuServiceValueId} |
SKU service type
| Summary | Method | Path |
|---|---|---|
| Create SKU service type | POST | /api/catalog/pvt/skuservicetype |
| Get SKU service type | GET | /api/catalog/pvt/skuservicetype/{skuServiceTypeId} |
| Update SKU service type | PUT | /api/catalog/pvt/skuservicetype/{skuServiceTypeId} |
| Delete SKU service type | DELETE | /api/catalog/pvt/skuservicetype/{skuServiceTypeId} |
Category
| Summary | Method | Path |
|---|---|---|
| Get category tree | GET | /api/catalog_system/pub/category/tree/{categoryLevels} |
| Get category by ID | GET | /api/catalog/pvt/category/{categoryId} |
| Update category | PUT | /api/catalog/pvt/category/{categoryId} |
| Create category | POST | /api/catalog/pvt/category |
Brand
| Summary | Method | Path |
|---|---|---|
| Get brand list | GET | /api/catalog_system/pvt/brand/list |
| Get paginated brand list | GET | /api/catalog_system/pvt/brand/pagedlist |
| Get brand by ID | GET | /api/catalog_system/pvt/brand/{brandId} |
| Create brand | POST | /api/catalog/pvt/brand |
| Get brand and context | GET | /api/catalog/pvt/brand/{brandId} |
| Update brand | PUT | /api/catalog/pvt/brand/{brandId} |
| Delete brand | DELETE | /api/catalog/pvt/brand/{brandId} |
Attachment
| Summary | Method | Path |
|---|---|---|
| Get attachment by ID | GET | /api/catalog/pvt/attachment/{attachmentid} |
| Update attachment | PUT | /api/catalog/pvt/attachment/{attachmentid} |
| Delete attachment | DELETE | /api/catalog/pvt/attachment/{attachmentid} |
| Create attachment | POST | /api/catalog/pvt/attachment |
| Get all attachments | GET | /api/catalog/pvt/attachments |
Product
| Summary | Method | Path |
|---|---|---|
| Get product and SKU IDs | GET | /api/catalog_system/pvt/products/GetProductAndSkuIds |
| Get product by ID | GET | /api/catalog/pvt/product/{productId} |
| Update product | PUT | /api/catalog/pvt/product/{productId} |
| Get product and its general context | GET | /api/catalog_system/pvt/products/productget/{productId} |
| Get product by reference ID | GET | /api/catalog_system/pvt/products/productgetbyrefid/{refId} |
| Get product's SKUs by product ID | GET | /api/catalog_system/pub/products/variations/{productId} |
| Get product review rate by product ID | GET | /api/addon/pvt/review/GetProductRate/{productId} |
| Create product with category and brand | POST | /api/catalog/pvt/product |
Product specification
| Summary | Method | Path |
|---|---|---|
| Get product specifications by product ID | GET | /api/catalog_system/pvt/products/{productId}/specification |
| Update product specification by product ID | POST | /api/catalog_system/pvt/products/{productId}/specification |
| Get product specifications and their information by product ID | GET | /api/catalog/pvt/product/{productId}/specification |
| Associate product specification | POST | /api/catalog/pvt/product/{productId}/specification |
| Delete all product specifications by product ID | DELETE | /api/catalog/pvt/product/{productId}/specification |
| Delete a product specification | DELETE | /api/catalog/pvt/product/{productId}/specification/{specificationId} |
| Associate product specification using specification name and group name | PUT | /api/catalog/pvt/product/{productId}/specificationvalue |
Similar category
| Summary | Method | Path |
|---|---|---|
| Get similar categories | GET | /api/catalog/pvt/product/{productId}/similarcategory |
| Add similar category | POST | /api/catalog/pvt/product/{productId}/similarcategory/{categoryId} |
| Delete similar category | DELETE | /api/catalog/pvt/product/{productId}/similarcategory/{categoryId} |
SKU
| Summary | Method | Path |
|---|---|---|
| List all SKU IDs | GET | /api/catalog_system/pvt/sku/stockkeepingunitids |
| Get SKU and context | GET | /api/catalog_system/pvt/sku/stockkeepingunitbyid/{skuId} |
| Get SKU by reference ID | GET | /api/catalog/pvt/stockkeepingunit |
| Create SKU | POST | /api/catalog/pvt/stockkeepingunit |
| Get SKU ID by reference ID | GET | /api/catalog_system/pvt/sku/stockkeepingunitidbyrefid/{refId} |
| Get SKU by alternate ID | GET | /api/catalog_system/pvt/sku/stockkeepingunitbyalternateId/{alternateId} |
| Get SKU list by product ID | GET | /api/catalog_system/pvt/sku/stockkeepingunitByProductId/{productId} |
| Retrieve SKU ID list by reference ID list | POST | /api/catalog_system/pub/sku/stockkeepingunitidsbyrefids |
| Get SKU | GET | /api/catalog/pvt/stockkeepingunit/{skuId} |
| Update SKU | PUT | /api/catalog/pvt/stockkeepingunit/{skuId} |
SKU EAN
| Summary | Method | Path |
|---|---|---|
| Get SKU by EAN | GET | /api/catalog_system/pvt/sku/stockkeepingunitbyean/{ean} |
| Get EAN by SKU ID | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/ean |
| Delete all SKU EAN values | DELETE | /api/catalog/pvt/stockkeepingunit/{skuId}/ean |
| Create SKU EAN | POST | /api/catalog/pvt/stockkeepingunit/{skuId}/ean/{ean} |
| Delete SKU EAN | DELETE | /api/catalog/pvt/stockkeepingunit/{skuId}/ean/{ean} |
SKU file
| Summary | Method | Path |
|---|---|---|
| Get SKU files | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/file |
| Create SKU file | POST | /api/catalog/pvt/stockkeepingunit/{skuId}/file |
| Delete all SKU files | DELETE | /api/catalog/pvt/stockkeepingunit/{skuId}/file |
| Update SKU file | PUT | /api/catalog/pvt/stockkeepingunit/{skuId}/file/{skuFileId} |
| Delete SKU image file | DELETE | /api/catalog/pvt/stockkeepingunit/{skuId}/file/{skuFileId} |
| Reorder SKU files | PUT | /api/catalog/pvt/stockkeepingunit/{skuId}/file/reorder |
| Copy files from an SKU to another SKU | PUT | /api/catalog/pvt/stockkeepingunit/copy/{skuIdfrom}/{skuIdto}/file |
| Disassociate SKU file | DELETE | /api/catalog/pvt/stockkeepingunit/disassociate/{skuId}/file/{skuFileId} |
SKU kit
| Summary | Method | Path |
|---|---|---|
| Get SKU kit by SKU ID or parent SKU ID | GET | /api/catalog/pvt/stockkeepingunitkit |
| Create SKU kit | POST | /api/catalog/pvt/stockkeepingunitkit |
| Delete SKU kit by SKU ID or parent SKU ID | DELETE | /api/catalog/pvt/stockkeepingunitkit |
| Get SKU kit | GET | /api/catalog/pvt/stockkeepingunitkit/{kitId} |
| Delete SKU kit by kit ID | DELETE | /api/catalog/pvt/stockkeepingunitkit/{kitId} |
SKU specification
| Summary | Method | Path |
|---|---|---|
| Get SKU specifications | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/specification |
| Associate SKU specification | POST | /api/catalog/pvt/stockkeepingunit/{skuId}/specification |
| Update SKU specification | PUT | /api/catalog/pvt/stockkeepingunit/{skuId}/specification |
| Delete all SKU specifications | DELETE | /api/catalog/pvt/stockkeepingunit/{skuId}/specification |
| Delete SKU specification | DELETE | /api/catalog/pvt/stockkeepingunit/{skuId}/specification/{specificationId} |
| Associate SKU specification using specification name and group name | PUT | /api/catalog/pvt/stockkeepingunit/{skuId}/specificationvalue |
SKU attachment
| Summary | Method | Path |
|---|---|---|
| Associate SKU attachment | POST | /api/catalog/pvt/skuattachment |
| Dissociate attachments and SKUs | DELETE | /api/catalog/pvt/skuattachment |
| Get SKU attachments by SKU ID | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/attachment |
| Delete SKU attachment by attachment association ID | DELETE | /api/catalog/pvt/skuattachment/{skuAttachmentAssociationId} |
| Associate attachments to an SKU | POST | /api/catalog_system/pvt/sku/associateattachments |
SKU complement
| Summary | Method | Path |
|---|---|---|
| Get SKU complement by SKU ID | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/complement |
| Get SKU complements by complement type ID | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/complement/{complementTypeId} |
| Get SKU complements by type | GET | /api/catalog_system/pvt/sku/complements/{parentSkuId}/{type} |
| Create SKU complement | POST | /api/catalog/pvt/skucomplement |
| Get SKU complement by SKU complement ID | GET | /api/catalog/pvt/skucomplement/{skuComplementId} |
| Delete SKU complement by SKU complement ID | DELETE | /api/catalog/pvt/skucomplement/{skuComplementId} |
Non-structured specification
| Summary | Method | Path |
|---|---|---|
| Get non-structured specification by ID | GET | /api/catalog/pvt/specification/nonstructured/{Id} |
| Delete non-structured specification | DELETE | /api/catalog/pvt/specification/nonstructured/{Id} |
| Get non-structured specification by SKU ID | GET | /api/catalog/pvt/specification/nonstructured |
| Delete non-structured specification by SKU ID | DELETE | /api/catalog/pvt/specification/nonstructured |
Specification field
| Summary | Method | Path |
|---|---|---|
| Get specification field | GET | /api/catalog_system/pub/specification/fieldGet/{fieldId} |
| Create specification field | POST | /api/catalog_system/pvt/specification/field |
| Update specification field | PUT | /api/catalog_system/pvt/specification/field |
Specification group
| Summary | Method | Path |
|---|---|---|
| List specification group by category | GET | /api/catalog_system/pvt/specification/groupbycategory/{categoryId} |
| Get specification group | GET | /api/catalog_system/pub/specification/groupGet/{groupId} |
| Create specification group | POST | /api/catalog/pvt/specificationgroup |
| Update specification group | PUT | /api/catalog/pvt/specificationgroup/{groupId} |
Specification value
| Summary | Method | Path |
|---|---|---|
| Get specification value | GET | /api/catalog/pvt/specificationvalue/{specificationValueId} |
| Update specification value | PUT | /api/catalog/pvt/specificationvalue/{specificationValueId} |
| Create specification value | POST | /api/catalog/pvt/specificationvalue |
Specification field value
| Summary | Method | Path |
|---|---|---|
| Get specification field value | GET | /api/catalog_system/pvt/specification/fieldValue/{fieldValueId} |
| Get specification values by specification field ID | GET | /api/catalog_system/pub/specification/fieldvalue/{fieldId} |
| Create specification field value | POST | /api/catalog_system/pvt/specification/fieldValue |
| Update specification field value | PUT | /api/catalog_system/pvt/specification/fieldValue |
Category specification
| Summary | Method | Path |
|---|---|---|
| Get specifications by category ID | GET | /api/catalog_system/pub/specification/field/listByCategoryId/{categoryId} |
| Get specifications tree by category ID | GET | /api/catalog_system/pub/specification/field/listTreeByCategoryId/{categoryId} |
Specification
| Summary | Method | Path |
|---|---|---|
| Get specification by specification ID | GET | /api/catalog/pvt/specification/{specificationId} |
| Update specification | PUT | /api/catalog/pvt/specification/{specificationId} |
| Create specification | POST | /api/catalog/pvt/specification |
Subcollection
| Summary | Method | Path |
|---|---|---|
| Add SKU to subcollection | POST | /api/catalog/pvt/subcollection/{subCollectionId}/stockkeepingunit |
| Delete SKU from subcollection | DELETE | /api/catalog/pvt/subcollection/{subCollectionId}/stockkeepingunit/{skuId} |
| Associate category to subcollection | POST | /api/catalog/pvt/subcollection/{subCollectionId}/category |
| Delete category from subcollection | DELETE | /api/catalog/pvt/subcollection/{subCollectionId}/category/{categoryId} |
| Associate brand to subcollection | POST | /api/catalog/pvt/subcollection/{subCollectionId}/brand |
| Delete brand from subcollection | DELETE | /api/catalog/pvt/subcollection/{subCollectionId}/brand/{brandId} |
| Get subcollection by collection ID | GET | /api/catalog/pvt/collection/{collectionId}/subcollection |
| Get subcollection by subcollection ID | GET | /api/catalog/pvt/subcollection/{subCollectionId} |
| Update subcollection | PUT | /api/catalog/pvt/subcollection/{subCollectionId} |
| Delete subcollection | DELETE | /api/catalog/pvt/subcollection/{subCollectionId} |
| Create subcollection | POST | /api/catalog/pvt/subcollection |
| Reposition SKU on the subcollection | POST | /api/catalog/pvt/collection/{collectionId}/position |
| Get specification values by subcollection ID | GET | /api/catalog/pvt/subcollection/{subCollectionId}/specificationvalue |
| Use specification value in subcollection by ID | POST | /api/catalog/pvt/subcollection/{subCollectionId}/specificationvalue |
| Delete specification value from subcollection by ID | DELETE | /api/catalog/pvt/subcollection/{subCollectionId}/specificationvalue |
Collection
| Summary | Method | Path |
|---|---|---|
| Get all inactive collections | GET | /api/catalog/pvt/collection/inactive |
| Create collection | POST | /api/catalog/pvt/collection |
| Import collection file example | GET | /api/catalog/pvt/collection/stockkeepingunit/importfileexample |
| Add products to collection by imported file | POST | /api/catalog/pvt/collection/{collectionId}/stockkeepingunit/importinsert |
| Remove products from collection by imported file | POST | /api/catalog/pvt/collection/{collectionId}/stockkeepingunit/importexclude |
| Get products from a collection | GET | /api/catalog/pvt/collection/{collectionId}/products |
| Get collection by ID | GET | /api/catalog/pvt/collection/{collectionId} |
| Update collection | PUT | /api/catalog/pvt/collection/{collectionId} |
| Delete collection | DELETE | /api/catalog/pvt/collection/{collectionId} |
Supplier
| Summary | Method | Path |
|---|---|---|
| Create supplier | POST | /api/catalog/pvt/supplier |
| Update supplier | PUT | /api/catalog/pvt/supplier/{supplierId} |
| Delete supplier | DELETE | /api/catalog/pvt/supplier/{supplierId} |
Sales channel
| Summary | Method | Path |
|---|---|---|
| Get sales channel list | GET | /api/catalog_system/pvt/saleschannel/list |
| Get sales channel by ID | GET | /api/catalog_system/pub/saleschannel/{salesChannelId} |
| Get sales channel by product ID | GET | /api/catalog/pvt/product/{productId}/salespolicy |
| Associate product with sales channel | POST | /api/catalog/pvt/product/{productId}/salespolicy/{tradepolicyId} |
| Remove product from sales channel | DELETE | /api/catalog/pvt/product/{productId}/salespolicy/{tradepolicyId} |
| List all SKUs in a sales channel | GET | /api/catalog_system/pvt/sku/stockkeepingunitidsbysaleschannel |
Seller
| Summary | Method | Path |
|---|---|---|
| Get seller list | GET | /api/catalog_system/pvt/seller/list |
| Get seller by ID | GET | /api/catalog_system/pvt/seller/{sellerId} |
| Update seller | PUT | /api/catalog_system/pvt/seller |
| Create seller | POST | /api/catalog_system/pvt/seller |
| Get seller by ID | GET | /api/catalog_system/pvt/sellers/{sellerId} |
SKU seller
| Summary | Method | Path |
|---|---|---|
| Get details of a seller's SKU | GET | /api/catalog_system/pvt/skuseller/{sellerId}/{sellerSkuId} |
| Remove a seller's SKU binding | POST | /api/catalog_system/pvt/skuseller/remove/{sellerId}/{sellerSkuId} |
| Change notification with seller ID and seller SKU ID | POST | /api/catalog_system/pvt/skuseller/changenotification/{sellerId}/{sellerSkuId} |
| Change notification with SKU ID | POST | /api/catalog_system/pvt/skuseller/changenotification/{skuId} |
SKU attribute
| Summary | Method | Path |
|---|---|---|
| Create SKU attribute | POST | /api/catalog/pvt/stockkeepingunit/{skuId}/attribute |
| Get all SKU attributes | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/attribute |
| Delete all SKU attributes | DELETE | /api/catalog/pvt/stockkeepingunit/{skuId}/attribute |
| Get SKU attribute by ID | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/attribute/{skuAttributeId} |
| Update SKU attribute | PUT | /api/catalog/pvt/stockkeepingunit/{skuId}/attribute/{skuAttributeId} |
| Delete SKU attribute | DELETE | /api/catalog/pvt/stockkeepingunit/{skuId}/attribute/{skuAttributeId} |
Multi-language
| Summary | Method | Path |
|---|---|---|
| Get product translation by product ID | GET | /api/catalog/pvt/product/{productId}/language |
| Create or update product translation by product ID | PUT | /api/catalog/pvt/product/{productId}/language |
| Get product specification translation by product ID | GET | /api/catalog/pvt/products/{productId}/specification/{specificationId}/language |
| Create or update product specification translation by product ID | PUT | /api/catalog/pvt/products/{productId}/specification/{specificationId}/language |
Multi-language SKU
| Summary | Method | Path |
|---|---|---|
| Get SKU translation by SKU ID | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/language |
| Create or update SKU translation by SKU ID | PUT | /api/catalog/pvt/stockkeepingunit/{skuId}/language |
| Get SKU attribute translation by SKU ID | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/attribute/{skuAttributeId}/language |
| Create or update SKU attribute translation by SKU ID | PUT | /api/catalog/pvt/stockkeepingunit/{skuId}/attribute/{skuAttributeId}/language |
| Get SKU file translation by SKU ID | GET | /api/catalog/pvt/stockkeepingunit/{skuId}/file/{skuFileId}/language |
| Create or update SKU file translation by SKU ID | PUT | /api/catalog/pvt/stockkeepingunit/{skuId}/file/{skuFileId}/language |
Multi-language specification
| Summary | Method | Path |
|---|---|---|
| Get specification group translation | GET | /api/catalog/pvt/specificationgroup/{specificationGroupId}/language |
| Create or update specification group translation | PUT | /api/catalog/pvt/specificationgroup/{specificationGroupId}/language |
| Get specification translation | GET | /api/catalog/pvt/specification/{specificationId}/language |
| Create or update specification translation | PUT | /api/catalog/pvt/specification/{specificationId}/language |
| Get specification value translation | GET | /api/catalog/pvt/specificationvalue/{valueId}/language |
| Create or update specification value translation | PUT | /api/catalog/pvt/specificationvalue/{valueId}/language |
Multi-language category
| Summary | Method | Path |
|---|---|---|
| Get category translation | GET | /api/catalog/pvt/category/{categoryId}/language |
| Create or update category translation | PUT | /api/catalog/pvt/category/{categoryId}/language |
Multi-language brand
| Summary | Method | Path |
|---|---|---|
| Get brand translation | GET | /api/catalog/pvt/brand/{brandId}/language |
| Create or update brand translation | PUT | /api/catalog/pvt/brand/{brandId}/language |
Multi-language attachment and service
| Summary | Method | Path |
|---|---|---|
| Get attachment translation | GET | /api/catalog/pvt/attachment/{attachmentId}/language |
| Create or update attachment translation | PUT | /api/catalog/pvt/attachment/{attachmentId}/language |
| Get SKU service type translation | GET | /api/catalog/pvt/skuservicetype/{skuServiceTypeId}/language |
| Create or update SKU service type translation | PUT | /api/catalog/pvt/skuservicetype/{skuServiceTypeId}/language |
| Get SKU service translation | GET | /api/catalog/pvt/skuservice/{skuserviceId}/language |
| Create or update SKU service translation | PUT | /api/catalog/pvt/skuservice/{skuserviceId}/language |
| Get SKU service value translation | GET | /api/catalog/pvt/skuservicevalue/{skuServiceValueId}/language |
| Create or update SKU service value translation | PUT | /api/catalog/pvt/skuservicevalue/{skuServiceValueId}/language |
Multi-language collection
| Summary | Method | Path |
|---|---|---|
| Get collection translation | GET | /api/catalog/pvt/collection/{collectionId}/language |
| Create or update collection translation | PUT | /api/catalog/pvt/collection/{collectionId}/language |
Product indexing
| Summary | Method | Path |
|---|---|---|
| Get product indexed information | GET | /api/catalog_system/pvt/products/GetIndexedInfo/{productId} |
Commercial conditions
| Summary | Method | Path |
|---|---|---|
| Get all commercial conditions | GET | /api/catalog_system/pvt/commercialcondition/list |
| Get commercial condition | GET | /api/catalog_system/pvt/commercialcondition/{commercialConditionId} |
Gift list
| Summary | Method | Path |
|---|---|---|
| Get gift list | GET | /api/addon/pvt/giftlist/get/{listId} |