Skip to main content
GET
/
v3
/
products
Get products
curl --request GET \
  --url https://api.snappy.com/public-api/v3/products \
  --header 'X-Api-Key: <api-key>'
{
  "data": [
    {
      "id": "655277e68e0719000d6c3fd5",
      "title": "NFL 25-Layer StadiumView Wall Art",
      "createdAt": "2026-05-11T10:53:01.026Z",
      "media": [
        {
          "type": "image",
          "src": "https://media.snappy.com/image/o1xc17wfbda6cl91hm0r6_picture-1.jpg?w=1000&h=1000&q=80&f=auto"
        }
      ],
      "category": {
        "fullName": "Fan Merchandise / NFL / NFL Memorabilia / Autographed Helmets"
      },
      "catalog": "marketplace",
      "type": "physical",
      "brand": {
        "id": "6511b55142c420000d083a55",
        "name": "YouTheFan",
        "description": "Officially licensed NFL fan merchandise."
      },
      "tags": [
        {
          "id": "tag12345",
          "name": "Sustainable"
        }
      ],
      "options": [
        {
          "name": "nfl_team",
          "displayName": "Team",
          "displayType": "image",
          "values": [
            {
              "displayName": "Denver Broncos",
              "value": "Denver Broncos",
              "firstSelectableVariant": {
                "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."
                }
              }
            }
          ]
        }
      ],
      "priceRange": {
        "min": {
          "amount": 244.99,
          "currency": "USD"
        },
        "max": {
          "amount": 244.99,
          "currency": "USD"
        }
      },
      "variantsCount": 9
    }
  ],
  "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
  },
  "total": 716
}

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"

Query Parameters

filter[catalog]
enum<string>
default:marketplace

Which product catalog to search. Required on product list/search endpoints. Defaults to marketplace.

Available options:
marketplace,
swag
Example:

"marketplace"

filter[type]
enum<string>

Exact-match product type filter. Omit to include all types.

Available options:
physical,
digital,
giftCard,
donation
Example:

"physical"

Free-text search across product title, category, and brand.

Example:

"tumbler"

filter[price][gte]
number | null

Inclusive minimum price filter.

Required range: x >= 0
Example:

10

filter[price][lte]
number | null

Inclusive maximum price filter.

Required range: x >= 0
Example:

200

location
string
default:US

ISO 3166-1 alpha-2 country code.

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

"US"

include
enum<string>[]

Related entities to include.

Related entities to include.

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

Computed or expanded product fields for list responses.

Computed or expanded fields for product list responses.

Available options:
priceRange,
variantsCount,
total
Example:
["priceRange", "variantsCount"]
page[cursor]
string

Opaque continuation token from the previous response links.next.

Example:

"opaqueCursorToken"

page[size]
integer
default:100

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

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

100

sort
string

JSON:API sort parameter. Single field; prefix with - for descending.

Pattern: ^-?(minPrice|createdAt)$
Example:

"-minPrice"

filter[brandId]
string[]

Comma-separated list of brand ids (OR semantics).

Example:
["brand12345", "brand67890"]
filter[brandName]
string

Case-insensitive substring search on brand name.

Example:

"Sample Brand"

filter[tagId]
string[]

Comma-separated list of tag ids (OR semantics).

Example:
["tag12345"]

Response

Paginated list of products.

Paginated product list response (cursor pagination). total is present only when requested via fields=total.

data
object[]
required

Products 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).

total
integer

Root-level total of products matching the request filters (ignores pagination). Returned only when fields=total.

Required range: x >= 0
Example:

716

Last modified on June 17, 2026