tys.products.create()
Create a product. external_id (SKU / style ID) is unique per store (409).
def create(*, external_id: str, name: str, category: str, idempotency_key: Optional[str] = None) -> ProductParameters
Section titled “Parameters”external_idstrRequiredYour SKU / style ID, unique per store (409 otherwise).
namestrRequiredThe product name.
categorystrRequiredThe garment category, e.g. tshirt, jeans.
idempotency_keyOptional[str]Optional= NoneReturns
Section titled “Returns”Product: The product.
idstringRequiredexternal_idstringRequiredThe brand's SKU or style ID (unique per brand).
namestringRequiredcategoryGarmentCategoryRequiredThe garment type; it sets which POMs are needed.
published_versionintegerOptionalGarment version shoppers are fitted against, if any.
draft_versionintegerOptionalGarment version being edited, if any.
created_atstringRequiredupdated_atstringRequiredfit_group_idstringOptionalThe fit group whose garment this product uses (absent until grouped).
brand_idstringOptionalThe brand the product belongs to; every store of the brand sees it.
home_store_idstringOptionalThe store the product was created in.
retired_atstringOptionalSet when the product is retired; shoppers no longer get a size for it.
availablebooleanOptionalWhether the store it was read through offers it (false in the brand list, see stores).
Example
Section titled “Example”product = tys.products.create(external_id="TEE-001", name="Basic tee", category="tshirt")const product = await tys.products.create({ external_id: "TEE-001", // your SKU / style ID, unique per store name: "Basic tee", category: "tshirt",});curl -X POST https://api.tryyoursize.com/v1/products \ -H "Authorization: Bearer $TRYYOURSIZE_SECRET_KEY" \ -H "TYS-Version: 2026-10-25" \ -H "Content-Type: application/json" \ -d '{"external_id":"TEE-001","name":"Basic tee","category":"tshirt"}'See also
Section titled “See also”Was this page helpful?
Thank you. We read every answer.