---
title: "Retrieve a single Product Variant."
method: GET
path: "/products/{id}/variants/{variant_id}.json"
tags: ["Product Variants"]
---

# Retrieve a single Product Variant.

`GET /products/{id}/variants/{variant_id}.json`

## Request

- Base URL: `https://api.jumpseller.com/v1`
- URL: `https://api.jumpseller.com/v1/products/{id}/variants/{variant_id}.json`
- Auth: one of:
  - HTTP basic
  - API key in query parameter `login` and API key in query parameter `authtoken`
  - OAuth 2
    - Authorization code: `https://accounts.jumpseller.com/oauth/authorize`
    - Token URL: `https://accounts.jumpseller.com/oauth/token` scopes: `read_products`

## Path parameters

- `id` integer, required
- `variant_id` integer, required

## Query parameters

- `fields` string, string

## Response `200`

OK

- Variant
  - `variant` VariantFields
    - `id` integer: Unique identifier of the Product's Variant
    - `position` integer: Position of the Product's Variant
    - `created_at` string: Date of the Product's Variant creation
    - `updated_at` string: Date of the Product's Variant last update
    - `price` number, float: Price of the Product's Variant
    - `sku` string: Stock Keeping Unit of the Product's Variant
    - `barcode` string: Barcode of the Product's Variant
    - `stock` integer: Quantity in stock for the Product's Variant
    - `stock_unlimited` boolean: True if the Product's Variant has unlimited stock
    - `stock_threshold` integer: Low stock threshold quantity.
    - `stock_notification` boolean: True if the Product has low stock threshold quantity enabled
    - `cost_per_item` number, nullable: Cost per item for the Product's Variant (only you can see this)
    - `compare_at_price` number, nullable: Used to show a sale price. Value must be higher than the price
    - `options` ProductVariantOptionFields[]
      - `product_option_id` integer: Unique identifier of the product option
      - `product_option_value_id` integer: Unique identifier of the product option value
      - `option_type` 'option' | 'color': Type of the product option. Only present for option types that generate variants.
      - `name` string: Name of the product option
      - `value` string: Value of the product option
      - `custom` string, nullable: Hexadecimal value of color. Only used for product option type 'color'
      - `product_option_position` integer: Position of the product option
      - `product_value_position` integer: Position of the product option value
    - `image` ImageFields
      - `id` integer: Unique identifier of the image
      - `position` integer: Position of the image
      - `url` string: Complete URL of the image
    - `weight` number, float: Weight of the Product's Variant
    - `discount` number: Discount of the Product's Variant

## Other responses

- `404`: Product or Product Variant Not Found.

## Changes

- **2026-10-15** `53dc9f2c1329`: 3 breaking, 6 info
  - the response property `variant/compare_at_price` became nullable for the status `200`
  - the response property `variant/cost_per_item` became nullable for the status `200`
  - the response property `variant/options/items/custom` became nullable for the status `200`
  - added the new optional `query` request parameter `fields`
  - …5 more
- **2026-09-28** `6d9bc2d4601a`: 2 info
  - added the optional property `variant/created_at` to the response with the `200` status
  - added the optional property `variant/updated_at` to the response with the `200` status

[Operation history](https://skmtc.dev/jumpseller/apis/jumpseller-api/changes/products/:id/variants/:variant_id.json/get.md)

---

[API](https://skmtc.dev/jumpseller/apis/jumpseller-api.md) - [All operations](https://skmtc.dev/jumpseller/apis/jumpseller-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jumpseller/apis/jumpseller-api/revisions/09f991a20d74?raw)
