Skip to main content
Swag in Snappy refers to branded merchandise - items like t-shirts, mugs, hats, and notebooks that customers apply their own logo or design to. Swag is the second of Snappy’s two product catalogs (the first being Products & Variants, the curated marketplace catalog). A Base Product is a swag template - the unbranded item from which customized swag is derived (e.g. “standard cotton t-shirt”). Base Products are the swag-catalog counterpart to standard Products. A Base Variant is a specific orderable version of a Base Product (e.g. “Standard cotton t-shirt, Medium, Navy”). Base Variants are the swag counterpart to standard Variants - and as with the marketplace catalog, the variant is the orderable unit.
Looking for the end-to-end integration walkthrough for building a swag store? See the Swag Store API guide.
The Base Product and Base Variant schemas are intentionally minimal in V3 and will be extended as the swag track matures - customization layers, design assets, and approval flows are planned. Subscribe to the Changelog for updates.

The Base Product Object


The Base Variant Object

A Base Variant represents a specific, orderable version of a Base Product. When placing a swag order you must always specify the variant ID - the Base Product id alone is not sufficient.

Key Concepts & Business Rules

Swag vs Marketplace

Snappy maintains two separate product catalogs: The two catalogs use distinct endpoints (/v3/products/* vs /v3/base-products/*) and distinct schemas.

Base Product → Base Variant → Order

The flow mirrors the marketplace flow: browse Base Products, drill into the Base Variants for the one you want, and place an order specifying the variant. Customization (logo application, design preview, approval) layers in between variant selection and order placement and will be exposed in future API releases.

Pagination

Base Product and Base Variant list endpoints use page-number pagination (page[number], page[size]): See Request & Response Standards for the full V3 pagination contract.

Brand filtering uses brandIds, not filter[brandId]

Base Product endpoints use a flat brandIds query parameter rather than the JSON:API filter[brandId] family used elsewhere in V3. This is a known divergence - for all other V3 endpoints, use the filter[<field>] style.

Permissions

All Base Products endpoints require the products:read scope on your API key.

How to Work with Swag

List base products
Returns a paginated list of Base Products. Filter by brand using the brandIds query parameter. Get a single base product
List base variants for a base product
Last modified on June 18, 2026