---
title: "Store Item Catalog"
method: GET
path: "/store/items/brand/{brandId}"
tags: ["Store"]
---

# Store Item Catalog

`GET /store/items/brand/{brandId}`

## Request

- Base URL: `https://opti-ls-api-us.optimove.net/api`
- URL: `https://opti-ls-api-us.optimove.net/api/store/items/brand/{brandId}`
- Auth: none declared

Active store items for the brand. Each item grants `rewardQuantity` of `rewardId` in exchange for `effectivePrice` of `priceCurrencyId`.

Compare `effectivePrice` against the player's balance from `GET /player-rewards/brand/{brandId}/player/{playerId}` to decide whether the Buy button is enabled, and disable it outright when `soldOut` is `true`.

Only active items are returned; there is no client-side status filtering to do.

## Path parameters

- `brandId` string, uuid, required

## Response `200`

Array of active store items.

- StoreItem[]
  - `id` string, uuid: UUID of the store item. Pass as `itemId` to the buy endpoint.
  - `title` string: Display name shown on the store card.
  - `rewardId` string, uuid: Reward granted on purchase. Look up in the rewards catalog by matching against `id`.
  - `rewardQuantity` integer: How much of the reward is granted.
  - `priceCurrencyId` string, uuid: UUID of the currency the item is priced in. Match against the player's reward balances to check affordability.
  - `priceAmount` integer: Configured list price. For what the player actually pays, use `effectivePrice`.
  - `priceCurrencyName` string: Denormalised currency name, so you can render the price without joining to the rewards catalog.
  - `priceCurrencyIcon` string, nullable: URL to the currency icon. `null` if none configured.
  - `basePrice` integer: Price before any discount. Render struck through when `onSale` is `true`.
  - `effectivePrice` integer: Price the player pays. Compare against the player's balance to enable or disable the Buy button.
  - `onSale` boolean: `true` when a discount is active. Drives the sale badge and the struck-through `basePrice`.
  - `soldOut` boolean: `true` when no stock remains. Disable the Buy button.
  - `discountEndsAt` string, date-time, nullable: When the active discount ends, if scheduled. `null` for open-ended or no discount. Use to render a countdown.
  - `categoryId` string, uuid: UUID of the category. Group cards by this.
  - `categoryName` string, nullable: Display name of the category. `null` if not set.
  - `tagId` string, uuid, nullable: UUID of an optional merchandising tag (e.g. "New"). `null` if untagged.
  - `tagName` string, nullable: Display text for the tag ribbon.
  - `tagColor` string, nullable: Hex color for the tag ribbon (e.g. `#5d12ff`). Validate it is a hex color before writing it into a style.
  - `image` string, nullable: Item image, falling back to the granted reward's icon. Validate it is an `https` URL from a trusted host before using in `src`.

---

[API](https://skmtc.dev/optimove/apis/optimove-loyalty-system-api.md) - [All operations](https://skmtc.dev/optimove/apis/optimove-loyalty-system-api/llms.txt) - [OpenAPI document](https://skmtc.dev/optimove/apis/optimove-loyalty-system-api/revisions/f174877a5fb7?raw)
