Get products
Use this endpoint to retrieve a paginated list of products across all collections. Returns the same response shape as the collection-scoped endpoint, without requiring a collectionId.
Filtering options
filter[catalog]-marketplaceorswag(defaults tomarketplace)filter[type]- exact match on product type (physical,digital,giftCard,donation)filter[search]- free-text search across product title, category, and brandfilter[brandId]- comma-separated list of brand IDs (OR semantics)filter[brandName]- case-insensitive substring search on brand namefilter[tagId]- comma-separated list of tag IDs (OR semantics)filter[price][gte]/filter[price][lte]- inclusive minimum / maximum price filterlocation- ISO 3166-1 alpha-2 country code (defaultUS) to scope pricingSnappy-Account-Id/Snappy-Company-Idheaders - optional account/company scoping
Please note
- Variants are not returned on this endpoint. Use GET /v3/products//variants to retrieve the variants list for a specific product.
Permissions
- Requires:
products:read
Authorizations
Company Level Authentication
Include your API key in the X-Api-Key header for every request:
X-Api-Key: YOUR_API_KEYHeaders
Optional account identifier for swag validation/filtering.
"acc123456"
Optional company identifier for swag validation/filtering.
"cmp123456"
Query Parameters
Which product catalog to search. Required on product list/search endpoints. Defaults to marketplace.
marketplace, swag "marketplace"
Exact-match product type filter. Omit to include all types.
physical, digital, giftCard, donation "physical"
Free-text search across product title, category, and brand.
"tumbler"
Inclusive minimum price filter.
x >= 010
Inclusive maximum price filter.
x >= 0200
ISO 3166-1 alpha-2 country code.
^[A-Z]{2}$"US"
Related entities to include.
Related entities to include.
brand, tags ["brand", "tags"]Computed or expanded product fields for list responses.
Computed or expanded fields for product list responses.
priceRange, variantsCount, total ["priceRange", "variantsCount"]Opaque continuation token from the previous response links.next.
"opaqueCursorToken"
Number of products per page (max 300, default 100).
1 <= x <= 300100
JSON:API sort parameter. Single field; prefix with - for descending.
^-?(minPrice|createdAt)$"-minPrice"
Comma-separated list of brand ids (OR semantics).
["brand12345", "brand67890"]Case-insensitive substring search on brand name.
"Sample Brand"
Comma-separated list of tag ids (OR semantics).
["tag12345"]Response
Paginated list of products.
Paginated product list response (cursor pagination). total is present only when requested via fields=total.
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).
Root-level total of products matching the request filters (ignores pagination). Returned only when fields=total.
x >= 0716