Skip to main content
GET
Get collection products

Authorizations

X-Api-Key
string
header
required

Company Level Authentication

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

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

collectionId
string
required

Collection identifier.

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

"abcdef12"

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.

Pattern: ^[^<>]*$
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:
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:
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"

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