---
title: "Changes to Get a product"
method: GET
path: "/v1/products/{productId}"
---

# Changes to Get a product

`GET /v1/products/{productId}`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 2 of 3 revisions.

- **2026-07-17** `8cfa924ae703` — 8 breaking, 30 warning, 93 info
- **2023-08-06** `302b7c443b51` — 112 breaking, 2 warning, 30 info

## Changes

- **2026-07-17** `8cfa924ae703` — 8 breaking, 30 warning, 93 info
  - the response property `attributes/additionalProperties/values` became nullable for the status `200`
  - the response property `images/items/attributes/additionalProperties/values` became nullable for the status `200`
  - the response property `lowestPriorPrice/relativeDifferenceToPrice` became nullable for the status `200`
  - the response property `lowestPriorPrice/withTax` became nullable for the status `200`
  - the response property `variants/items/attributes/additionalProperties/values` became nullable for the status `200`
  - the `advancedAttributes/additionalProperties/values` response's property type/format changed from `object`/`` to `array`/`` for status `200`
  - the `categories/items/` response's property type/format changed from `object`/`` to `array`/`` for status `200`
  - the `variants/items/advancedAttributes/additionalProperties/values` response's property type/format changed from `object`/`` to `array`/`` for status `200`
  - removed the optional property `advancedAttributes/additionalProperties/values/fieldSet` from the response with the `200` status
  - removed the optional property `advancedAttributes/additionalProperties/values/groupSet` from the response with the `200` status
  - removed the optional property `categories/items/categoryHidden` from the response with the `200` status
  - removed the optional property `categories/items/categoryId` from the response with the `200` status
  - removed the optional property `categories/items/categoryName` from the response with the `200` status
  - removed the optional property `categories/items/categoryProperties` from the response with the `200` status
  - removed the optional property `categories/items/categorySlug` from the response with the `200` status
  - removed the optional property `categories/items/categoryUrl` from the response with the `200` status
  - removed the optional property `categories/items/countryLevelCustomData` from the response with the `200` status
  - removed the optional property `categories/items/shopLevelCustomData` from the response with the `200` status
  - removed the optional property `definingAttributes/value` from the response with the `200` status
  - removed the optional property `pricePromotionInfo` from the response with the `200` status
  - removed the optional property `variants/items/advancedAttributes/additionalProperties/values/fieldSet` from the response with the `200` status
  - removed the optional property `variants/items/advancedAttributes/additionalProperties/values/groupSet` from the response with the `200` status
  - removed the optional property `variants/items/stock/deliveryForecast` from the response with the `200` status
  - added the new `campaign` enum value to the `priceRange/max/appliedReductions/items/category` response property for the response status `200`
  - added the new `campaign` enum value to the `priceRange/min/appliedReductions/items/category` response property for the response status `200`
  - added the new `campaign` enum value to the `reductionRange/max/appliedReductions/items/category` response property for the response status `200`
  - added the new `campaign` enum value to the `reductionRange/min/appliedReductions/items/category` response property for the response status `200`
  - added the new `campaign` enum value to the `variants/items/price/appliedReductions/items/category` response property for the response status `200`
  - added the new `promotion` enum value to the `priceRange/max/appliedReductions/items/category` response property for the response status `200`
  - added the new `promotion` enum value to the `priceRange/min/appliedReductions/items/category` response property for the response status `200`
  - added the new `promotion` enum value to the `reductionRange/max/appliedReductions/items/category` response property for the response status `200`
  - added the new `promotion` enum value to the `reductionRange/min/appliedReductions/items/category` response property for the response status `200`
  - added the new `promotion` enum value to the `variants/items/price/appliedReductions/items/category` response property for the response status `200`
  - added the new `sale` enum value to the `priceRange/max/appliedReductions/items/category` response property for the response status `200`
  - added the new `sale` enum value to the `priceRange/min/appliedReductions/items/category` response property for the response status `200`
  - added the new `sale` enum value to the `reductionRange/max/appliedReductions/items/category` response property for the response status `200`
  - added the new `sale` enum value to the `reductionRange/min/appliedReductions/items/category` response property for the response status `200`
  - added the new `sale` enum value to the `variants/items/price/appliedReductions/items/category` response property for the response status `200`
  - added the optional property `variants/items/lowestPriorPrice` to the response with the `200` status
  - added the optional property `variants/items/merchant` to the response with the `200` status
  - …91 more
- **2023-08-06** `302b7c443b51` — 112 breaking, 2 warning, 30 info
  - the response property `attributes/additionalProperties/id` became nullable for the status `200`
  - the response property `attributes/additionalProperties/type` became nullable for the status `200`
  - the response property `attributes/additionalProperties/values/items/id` became nullable for the status `200`
  - the response property `attributes/additionalProperties/values/items/label` became nullable for the status `200`
  - the response property `attributes/additionalProperties/values/items/value` became nullable for the status `200`
  - the response property `definingAttributes/id` became nullable for the status `200`
  - the response property `definingAttributes/label` became nullable for the status `200`
  - the response property `images/items/attributes/additionalProperties/id` became nullable for the status `200`
  - the response property `images/items/attributes/additionalProperties/type` became nullable for the status `200`
  - the response property `images/items/attributes/additionalProperties/values/items/id` became nullable for the status `200`
  - the response property `images/items/attributes/additionalProperties/values/items/label` became nullable for the status `200`
  - the response property `images/items/attributes/additionalProperties/values/items/value` became nullable for the status `200`
  - the response property `referenceKey` became nullable for the status `200`
  - the response property `variants/items/attributes/additionalProperties/id` became nullable for the status `200`
  - the response property `variants/items/attributes/additionalProperties/type` became nullable for the status `200`
  - the response property `variants/items/attributes/additionalProperties/values/items/id` became nullable for the status `200`
  - the response property `variants/items/attributes/additionalProperties/values/items/label` became nullable for the status `200`
  - the response property `variants/items/attributes/additionalProperties/values/items/value` became nullable for the status `200`
  - the response property `advancedAttributes/additionalProperties/id` became optional for the status `200`
  - the response property `advancedAttributes/additionalProperties/key` became optional for the status `200`
  - the response property `advancedAttributes/additionalProperties/label` became optional for the status `200`
  - the response property `advancedAttributes/additionalProperties/type` became optional for the status `200`
  - the response property `advancedAttributes/additionalProperties/values` became optional for the status `200`
  - the response property `baseCategories/items/categoryId` became optional for the status `200`
  - the response property `baseCategories/items/categoryName` became optional for the status `200`
  - the response property `baseCategories/items/categoryParentId` became optional for the status `200`
  - the response property `baseCategories/items/categoryPath` became optional for the status `200`
  - the response property `createdAt` became optional for the status `200`
  - the response property `customData` became optional for the status `200`
  - the response property `definingAttributes/id` became optional for the status `200`
  - the response property `definingAttributes/label` became optional for the status `200`
  - the response property `firstLiveAt` became optional for the status `200`
  - the response property `id` became optional for the status `200`
  - the response property `images` became optional for the status `200`
  - the response property `indexedAt` became optional for the status `200`
  - the response property `isActive` became optional for the status `200`
  - the response property `isNew` became optional for the status `200`
  - the response property `isSoldOut` became optional for the status `200`
  - the response property `lowestPriorPrice/relativeDifferenceToPrice` became optional for the status `200`
  - the response property `lowestPriorPrice/withTax` became optional for the status `200`
  - …104 more

---

[Operation](https://skmtc.dev/scayle/apis/storefront-api-documentation/docs/v1/products/:productId/get.md) · [API](https://skmtc.dev/scayle/apis/storefront-api-documentation.md) · [Page](https://skmtc.dev/scayle/apis/storefront-api-documentation/changes/v1/products/:productId/get)
