Skip to main content
GET
/
v3
/
products
/
{productId}
/
variants
Get product variants
curl --request GET \
  --url https://api.snappy.com/public-api/v3/products/{productId}/variants \
  --header 'X-Api-Key: <api-key>'
{
  "data": [
    {
      "id": "FB6bgFV4lf",
      "title": "NFL 25-Layer StadiumView Wall Art",
      "selectedOptions": {
        "nfl_team": "Denver Broncos"
      },
      "taxable": true,
      "media": [
        {
          "type": "image",
          "src": "https://media.snappy.com/image/o1xc17wfbda6cl91hm0r6_picture-1.jpg?w=1000&h=1000&q=80&f=auto"
        }
      ],
      "personalization": {
        "isPersonalized": true,
        "personalizationTemplateFields": [
          "firstName",
          "lastName",
          "department"
        ]
      },
      "productId": "655277e68e0719000d6c3fd5",
      "price": {
        "amount": 244.99,
        "currency": "USD"
      },
      "priceBreakdown": {
        "ddp": 0,
        "shippingFee": 0,
        "itemPrice": 244.99
      },
      "partnerPrice": {
        "amount": 45.7,
        "currency": "usd"
      },
      "descriptionHtml": "<p>The 25-Layer StadiumViews 3D Wall Art</p>",
      "details": {
        "includes": "<p>Set of 4 glasses (12oz each)</p>",
        "features": "<ul><li>Feature</li></ul>",
        "specifications": {
          "material": "lead-free glass",
          "capacity": "12oz",
          "dimensions": "4.5' tall"
        },
        "notices": {
          "prop65Warning": "Warning text"
        }
      },
      "brand": {
        "id": "6511b55142c420000d083a55",
        "name": "YouTheFan",
        "description": "Officially licensed NFL fan merchandise."
      }
    }
  ],
  "links": {
    "first": "/v3/products/655277e68e0719000d6c3fd5/variants?page[size]=100&page[number]=1",
    "next": "/v3/products/655277e68e0719000d6c3fd5/variants?page[size]=100&page[number]=2",
    "prev": null
  }
}

Authorizations

X-Api-Key
string
header
required

Company Level Authentication

Include your API key in the X-Api-Key header for every request:

X-Api-Key: YOUR_API_KEY

Headers

snappy-account-id
string

Optional account identifier for swag validation/filtering.

Example:

"acc123456"

snappy-company-id
string

Optional company identifier for swag validation/filtering.

Example:

"cmp123456"

Path Parameters

productId
string
required

Stable product ID.

Pattern: ^[A-Za-z0-9]{8,}$
Example:

"655277e68e0719000d6c3fd5"

Query Parameters

location
string
default:US

ISO 3166-1 alpha-2 country code.

Pattern: ^[A-Z]{2}$
Example:

"US"

filter[price][gte]
number | null

Inclusive minimum variant price filter.

Required range: x >= 0
Example:

10

filter[price][lte]
number | null

Inclusive maximum variant price filter.

Required range: x >= 0
Example:

200

include
enum<string>[]

Related entities to include.

Related entities to include.

Available options:
brand
Example:
["brand"]
fields
enum<string>[]

Comma-separated list of variant-level field expansions.

  • price - includes price (and partnerPrice for partner companies).
  • priceBreakdown - includes priceBreakdown and implies price (and partnerPrice for partner companies).
  • details - includes the variant details wrapper.

Use include=brand to include the variant's brand object (nullable).

When omitted, price, priceBreakdown, partnerPrice, and details are not returned.

Variant-level field expansions.

Available options:
price,
priceBreakdown,
details
Example:
["price", "priceBreakdown"]
page[number]
integer
default:1

1-indexed page number.

Required range: x >= 1
Example:

1

page[size]
integer
default:100

Number of variants per page (max 300, default 100).

Required range: 1 <= x <= 300
Example:

100

Response

Paginated list of variants.

Paginated variant list response (page-number pagination).

data
object[]
required

Variants for the requested page.

Top-level JSON:API-style pagination links for paginated list responses. first, next, and prev are all required and all nullable. prev is null on cursor-paginated endpoints (backward navigation not supported).

Last modified on June 17, 2026