---
title: "Get a variant"
method: GET
path: "/v1/variants/{variantId}"
tags: ["variants"]
---

# Get a variant

`GET /v1/variants/{variantId}`

Get one variant by variantId.

## Path parameters

- `variantId` integer, required

## Query parameters

- `shopId` string, required
- `campaignKey` string
- `pricePromotionKey` string
- `with` string[]

## Response `200`

successful operation

- Variant
  - `id` integer, required
  - `advancedAttributes` object
  - `appliedPricePromotionKey` string
  - `attributes` object
  - `lowestPriorPrice` LowestPriorPrice — Information about the lowest price in the past 30 days.
    - `withTax` integer, nullable, required — The lowest price including tax.
    - `relativeDifferenceToPrice` number, float, nullable, required — The relative difference from the lowest prior price to the current price. If the value is positive, it means that the current price is higher than the lowest prior price. If the value is negative, it means that the current price is lower than the lowest prior price.
  - `price` Price, required
    - `appliedReductions` AppliedReduction[], required
      - `amount` AppliedReductionAmount, required
        - `absoluteWithTax` integer
        - `relative` number
      - `category` 'sale' | 'campaign' | 'promotion', required
      - `type` string, required
    - `currencyCode` string, required — The currency of the price.
    - `reference` object
      - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
      - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
      - `withoutTax` integer — Reference price excluding the taxes.
      - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
    - `tax` Tax, required
      - `vat` Vat
        - `amount` number
        - `rate` number
    - `withoutTax` integer, required
    - `withTax` integer, required
    - `recommendedRetailPrice` integer, required
  - `productId` integer, required
  - `referenceKey` string, required
  - `firstLiveAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
  - `stock` Stock, required
    - `supplierId` integer, required
    - `warehouseId` integer, nullable, required
    - `quantity` integer, required
    - `isSellableWithoutStock` boolean, required
    - `expectedAvailabilityAt` string, nullable, required
  - `customData` object, required
  - `merchant` Merchant
    - `id` integer, required
    - `key` string, required
    - `name` string, required
    - `legal` object
      - `legaName` string
      - `parentCompanyLegalName` string
      - `streetWithNumber` string
      - `zip` string
      - `city` string
      - `country` string
      - `telephone` string
      - `email` string
      - `registryCourtCity` string
      - `registerNumber` string
      - `parentCompanyRegistryCourtCity` string
      - `parentCompanyRegisterNumber` string
      - `managingDirectors` string
      - `representative` string
      - `shippingMerchantName` string
      - `registryCourtType` string
      - `parentCompanyRegistryCourtType` string
      - `vatId` string
  - `createdAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
  - `updatedAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00

## Other responses

- `400` — Required query parameter missing / invalid
- `401` — Authentication information is missing or invalid
- `404` — The specified resource was not found

## Changes

- **2026-07-17** `8cfa924ae703` — 3 breaking, 6 warning, 32 info
  - added the new required `query` request parameter `shopId`
  - the response property `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`
  - removed the optional property `advancedAttributes/additionalProperties/values/fieldSet` from the response with the `200` status
  - …37 more
- **2023-08-06** `302b7c443b51` — 34 breaking, 4 warning, 7 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`
  - …41 more

[Change history](https://skmtc.dev/scayle/apis/storefront-api-documentation/changes/v1/variants/:variantId/get.md)

---

[API](https://skmtc.dev/scayle/apis/storefront-api-documentation.md) · [All operations](https://skmtc.dev/scayle/apis/storefront-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scayle/storefront-api-documentation/revisions/8cfa924ae703/schema)
