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 theproducts:read scope on your API key.
How to Work with Swag
List base productsbrandIds query parameter.
Get a single base product