# Create and Update Products

## Upsert Product

> \*\*Rate limit:\*\* 100 requests per minute

```json
{"openapi":"3.1.0","info":{"title":"Sellers Center API","version":"1.0.0"},"security":[{"APIKeyAuth":[]}],"components":{"securitySchemes":{"APIKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"BatchRequestResponseSchema":{"properties":{"batchRequestId":{"description":"Unique identifier (UUID)","format":"uuid","title":"Batchrequestid","type":"string"}},"required":["batchRequestId"],"title":"BatchRequestResponseSchema","type":"object"},"BadRequestSchema":{"properties":{"message":{"description":"Error message","title":"Message","type":"string"}},"required":["message"],"title":"BadRequestSchema","type":"object"},"UpsertProductSchema":{"properties":{"items":{"description":"List of product variants to upsert.","items":{"$ref":"#/components/schemas/UpsertProductItemSchema"},"maxItems":100,"minItems":1,"title":"Items","type":"array"}},"required":["items"],"title":"UpsertProductSchema","type":"object"},"UpsertProductItemSchema":{"properties":{"style_key":{"description":"Unique style key for the product.","maxLength":120,"title":"Style Key","type":"string"},"sku":{"maxLength":120,"minLength":3,"title":"Sku","type":"string"},"ean":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"EAN-13 barcode (13 digits with valid GS1 prefix and checksum)","title":"Ean"},"hs_code":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"title":"Hs Code"},"name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"description":"Include only the product/design name. Don't add categories, colors, materials etc. If there is no specific design name, leave the field empty.","title":"Name"},"description":{"anyOf":[{"maxLength":2500,"type":"string"},{"type":"null"}],"deprecated":true,"description":"Use descriptions instead","title":"Description"},"descriptions":{"anyOf":[{"$ref":"#/components/schemas/LocalizedDescriptionSchema"},{"type":"null"}]},"color":{"description":"ID (integer) of this property","minimum":1,"title":"Color","type":"integer"},"size":{"anyOf":[{"description":"ID (integer) of this property","minimum":1,"type":"integer"},{"type":"null"}],"title":"Size"},"second_size":{"anyOf":[{"description":"ID (integer) of this property","minimum":1,"type":"integer"},{"type":"null"}],"title":"Second Size"},"brand":{"description":"ID (integer) of this property","minimum":1,"title":"Brand","type":"integer"},"category":{"description":"ID (integer) of this property","minimum":1,"title":"Category","type":"integer"},"quantity":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"description":"Quantity of the product variant.","title":"Quantity"},"weight":{"description":"Weight of the product in grams.","maximum":100000,"minimum":0,"title":"Weight","type":"integer"},"countries":{"anyOf":[{"items":{"description":"ISO 3166-1 alpha-2 country code","pattern":"^[A-Za-z]{2}$","type":"string"},"minItems":0,"type":"array"},{"type":"null"}],"title":"Countries"},"country_of_origin":{"description":"ISO 3166-1 alpha-2 country code","pattern":"^[A-Za-z]{2}$","title":"Country Of Origin","type":"string"},"attributes":{"items":{"description":"ID (integer) of this property","minimum":1,"type":"integer"},"title":"Attributes","type":"array"},"material_composition_textile":{"anyOf":[{"items":{"$ref":"#/components/schemas/MaterialCompositionTextileSchema"},"type":"array"},{"type":"null"}],"title":"Material Composition Textile"},"material_composition_non_textile":{"anyOf":[{"items":{"$ref":"#/components/schemas/MaterialCompositionNonTextileSchema"},"type":"array"},{"type":"null"}],"title":"Material Composition Non Textile"},"prices":{"items":{"$ref":"#/components/schemas/PriceSchema"},"minItems":0,"title":"Prices","type":"array"},"images":{"items":{"type":"string"},"maxItems":10,"minItems":1,"title":"Images","type":"array"}},"required":["style_key","sku","color","size","brand","category","weight","country_of_origin","attributes","prices","images"],"title":"UpsertProductItemSchema","type":"object"},"LocalizedDescriptionSchema":{"additionalProperties":{"type":"string"},"description":"Schema for handling localized descriptions with locale keys.","title":"LocalizedDescriptionSchema","type":"object"},"MaterialCompositionTextileSchema":{"properties":{"cluster_id":{"description":"ID (integer) of this property","minimum":1,"title":"Cluster Id","type":"integer"},"components":{"items":{"$ref":"#/components/schemas/TextileMaterialSchema"},"title":"Components","type":"array"}},"required":["cluster_id","components"],"title":"MaterialCompositionTextileSchema","type":"object"},"TextileMaterialSchema":{"properties":{"material_id":{"description":"ID (integer) of this property","minimum":1,"title":"Material Id","type":"integer"},"fraction":{"description":"Fraction of the material in the composition in percentage.","title":"Fraction","type":"integer"}},"required":["material_id","fraction"],"title":"TextileMaterialSchema","type":"object"},"MaterialCompositionNonTextileSchema":{"properties":{"cluster_id":{"description":"ID (integer) of this property","minimum":1,"title":"Cluster Id","type":"integer"},"components":{"items":{"$ref":"#/components/schemas/NonTextileMaterialSchema"},"title":"Components","type":"array"}},"required":["cluster_id","components"],"title":"MaterialCompositionNonTextileSchema","type":"object"},"NonTextileMaterialSchema":{"properties":{"material_id":{"description":"ID (integer) of this property","minimum":1,"title":"Material Id","type":"integer"}},"required":["material_id"],"title":"NonTextileMaterialSchema","type":"object"},"PriceSchema":{"properties":{"country_code":{"description":"ISO 3166-1 alpha-2 country code","pattern":"^[A-Za-z]{2}$","title":"Country Code","type":"string"},"retail_price":{"exclusiveMinimum":0,"maximum":1000000,"title":"Retail Price","type":"number"},"sale_price":{"anyOf":[{"exclusiveMinimum":0,"maximum":1000000,"type":"number"},{"type":"null"}],"title":"Sale Price"}},"required":["country_code","retail_price"],"title":"PriceSchema","type":"object"}}},"paths":{"/api/v1/products/":{"post":{"operationId":"scapi_app_endpoints_product_api_upsert_product","summary":"Upsert Product","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRequestResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestSchema"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestSchema"}}}},"default":{"headers":{"X-RateLimit-Limit":{"description":"Total requests allowed in the time window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current window","schema":{"type":"integer"}}}}},"description":"**Rate limit:** 100 requests per minute","tags":["Products"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertProductSchema"}}},"required":true}}}}}
```
