---
title: "PUT /api/styles/{id}"
method: PUT
path: "/api/styles/{id}"
tags: ["Products/Styles"]
---

# PUT /api/styles/{id}

`PUT /api/styles/{id}`

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string, required — Display name of the product.
  - `forCompanyId` string — Retraced ID of the brand or company that owns this product.
  - `codes` object[], required — Array of external identifier objects. Each entry has a codeId (the system type) and a codeValue (the value in that system). Supported codeId values: ERP_ID (ERP system ID), PLM_ID (PLM system ID), PIM_ID (PIM system ID), MAIN_SUPPLIERS_ID (supplier's own product reference), UPC_GTIN_12 (12-digit barcode), EAN_GTIN_13 (13-digit barcode), ZALANDO_ID, FASHIONCLOUD_ID — each may appear at most once per product. OTHER_ID[N] and ALTERNATIVE_SUPPLIERS_ID[N] support multiple entries by appending a numeric suffix (e.g. OTHER_ID1, OTHER_ID2). A product can carry codes from multiple systems simultaneously.
    - `codeId` string, required — Identifier type for the code. Single-use (each may appear at most once): ERP_ID, PLM_ID, MAIN_SUPPLIERS_ID, PIM_ID, UPC_GTIN_12, EAN_GTIN_13, ZALANDO_ID, FASHIONCLOUD_ID. Multi-use (append a numeric suffix for additional entries, e.g. OTHER_ID1, OTHER_ID2): OTHER_ID, ALTERNATIVE_SUPPLIERS_ID.
    - `codeValue` string, required — The unique code value for this identifier, e.g. "ERP-001234".
  - `description` string — Free-text product description. Nullable.
  - `gender` string — Product gender classification. Known values: MALE, FEMALE, UNISEX. Nullable.
  - `brands` string[] — User-defined brand labels associated with this product. Free-text strings set by the brand — no fixed taxonomy or lookup endpoint. Use to identify which sub-brand a product is sold under (e.g. 'Columbia', 'Prana').
  - `departments` string[] — User-defined department labels. Free-text strings set by the user — no fixed taxonomy or lookup endpoint.
  - `seasons` string[] — User-defined season labels. Free-text strings set by the user — no fixed taxonomy or lookup endpoint.
  - `collections` string[] — User-defined collection labels. Free-text strings set by the user — no fixed taxonomy or lookup endpoint.
  - `claimIntentions` string[]
  - `customProperties` string
  - `suppliers` string[] — Array of supplier IDs that can fulfil this product, including the main supplier and any alternates. Use the companyId values here to query GET /supply-chains/:styleId for detailed supply chain data.
  - `mainSupplier` string — The single designated primary supplier for this product. Null if not set. A product can have many entries in suppliers but at most one mainSupplier.
  - `vendors` string[]
  - `imagesFileIds` string[]
  - `isStoryActive` boolean
  - `ecoFootPrint` object
    - `hazardousMaterials` object[]
      - `idx` number, required
      - `name` string, required
      - `percentage` number, required
    - `recyclabilityAbsenceDisruptor` boolean
    - `recyclabilityCanBeSorted` boolean
    - `recyclabilityCanCollectAtScale` boolean
    - `recyclabilityIndustrialScale` boolean
    - `recyclabilityRate` number
  - `weight` object — Product weight object. unit is the unit of measurement (e.g. 'GRAM'). value is the numeric weight. Null if weight has not been entered.
    - `unit` 'GRAM' | 'GRAM_PER_SQUARE_METER' | 'GRAM_PER_SQUARE_FOOT' | 'GRAM_PER_SQUARE_YARD' | 'OUNCE_PER_SQUARE_YARD' | 'MILLIGRAM' | 'KILOGRAM' | 'METRIC_TON' | 'POUNDS' | 'SHORT_TON' | 'LONG_TON' | 'HUNDREDWEIGHT' | 'SHORT_HUNDREDWEIGHT' | 'LONG_HUNDREDWEIGHT' | 'OUNCE' | 'DRAM' | 'GRAIN' | 'PENNYWEIGHT' | 'SCRUPLE' | 'STONE', required
    - `value` number, required
  - `externalId` string — Your own identifier for this product. Unique per company across all product levels. Can be used in place of the Retraced ID on any product ID field in this API. On update it is only written when the field is present in the body — omitting it keeps the stored value, sending null clears it.
  - `styleTypeId` string
  - `styleLevelId` string

## Response `200`

Default Response

- object
  - `metadata` object, required
    - `success` boolean, required — True when the request succeeded.
  - `data` StyleSchema, required
    - `id` string, required — Retraced-generated unique identifier for this style. Format is a ULID prefixed with 'style_' on newer records; legacy records may use an unprefixed alphanumeric ID. Stable — safe to store and use as a foreign key.
    - `externalId` string — Your own identifier for this product, if one was supplied on create. Null otherwise.
    - `forCompanyId` string, required
    - `name` string, required
    - `codes` object[], required
      - `codeId` string, required — Identifier type for the code. Single-use (each may appear at most once): ERP_ID, PLM_ID, MAIN_SUPPLIERS_ID, PIM_ID, UPC_GTIN_12, EAN_GTIN_13, ZALANDO_ID, FASHIONCLOUD_ID. Multi-use (append a numeric suffix for additional entries, e.g. OTHER_ID1, OTHER_ID2): OTHER_ID, ALTERNATIVE_SUPPLIERS_ID.
      - `codeValue` string, required — The unique code value for this identifier, e.g. "ERP-001234".
    - `description` string
    - `gender` string
    - `styleLevelId` string, required — Retraced taxonomy identifier for the broad product level (e.g. APPAREL_END_CONSUMER_FINISHED_GOODS, FABRICS, TRIM_AND_ACCESSORIES). For the full list of valid values call GET /api/v2/style-types/ and read the parentId field.
    - `styleTypeId` string, required
    - `productLevel` string
    - `brands` string[]
    - `departments` string[]
    - `seasons` string[]
    - `collections` string[]
    - `claimIntentions` string[]
    - `customProperties` string
    - `suppliers` string[]
    - `mainSupplier` string
    - `vendors` string[]
    - `imagesFileIds` string[]
    - `images` object[]
      - `id` string, required
      - `url` string, required
      - `previewUrl` string, required
      - `fileType` string, required
      - `bucketName` string, required
      - `name` string, required
      - `fileSize` number, required
      - `contentType` string, required
      - `fileHash` string, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `createdBy` string
      - `createdByCompanyId` string
      - `createdByImpersonateId` string
      - `createdByImpersonateName` string
      - `createdByUserId` string
      - `createdByApiKeyId` string
      - `createdByApiKeyLabel` string
      - `updatedByUserId` string
      - `updatedByUserName` string
      - `updatedByCompanyId` string
      - `updatedByCompanyName` string
      - `updatedByImpersonateId` string
      - `updatedByImpersonateName` string
      - `updatedByApiKeyId` string
      - `updatedByApiKeyLabel` string
    - `isComponent` union
      - boolean
      - number
    - `isStoryActive` union — Whether the public traceability page (product story) is active for this product. Activating it requires tracing data (e.g. a supply chain) to be attached to the product first.
      - boolean
      - number
    - `isArchived` boolean, required — True if the product has been archived. Archived products are excluded from default API results.
    - `qrCodeUrl` string — URL of the product's pre-generated QR code image (an SVG hosted on the Retraced CDN). Null until generation completes, which happens asynchronously after the product is created. The QR image encodes a Retraced-managed forwarding URL that resolves to the product's traceability page once the story is active. The URL is stable once generated — it is not regenerated when product data changes.
    - `createdAt` string, date-time — ISO 8601 UTC timestamp of when the record was created.
    - `updatedAt` string, date-time — ISO 8601 UTC timestamp of when the record was last modified. Use with updatedAfterUnixMs for incremental sync.
    - `createdByImpersonateId` string
    - `createdByUserId` string
    - `createdByCompanyId` string
    - `createdByApiKeyId` string
    - `createdByApiKeyLabel` string
    - `updatedByImpersonateId` string
    - `updatedByUserId` string
    - `updatedByCompanyId` string
    - `updatedByApiKeyId` string
    - `updatedByApiKeyLabel` string
    - `ecoFootPrint` object
      - `syntheticMaterialPercentage` number
      - `recycledMaterialPercentage` number
      - `hazardousMaterials` object[]
        - `idx` number, required
        - `name` string, required
        - `percentage` number, required
      - `recyclabilityAbsenceDisruptor` boolean
      - `recyclabilityCanBeSorted` boolean
      - `recyclabilityCanCollectAtScale` boolean
      - `recyclabilityIndustrialScale` boolean
      - `recyclabilityRate` number
    - `weight` object
      - `unit` string, required
      - `value` number, required
    - `tracingStory` object
      - `id` string, required
      - `tracingType` string, required
      - `tracingId` string, required
      - `isActive` boolean, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
      - `tracingName` string
    - `isWeightAvailable` boolean — True if a weight value has been recorded for this variant.

---

[API](https://skmtc.net/retraced/apis/api-reference.md) · [All operations](https://skmtc.net/retraced/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/retraced/api-reference/revisions/60d6c901bc4e/schema)
