curl --request GET \
--url https://api.snappy.com/v3/products \
--header 'X-Api-Key: <api-key>'{
"data": [
{
"id": "a1b2c3d4e5",
"title": "Iphone 17 Pro Max",
"createdAt": "2026-01-15T10:30:00Z",
"media": [
{
"type": "image",
"src": "https://media.snappy.com/image/asset123?w=1000&h=1000&q=80&f=auto"
}
],
"category": {
"fullName": "gifts / electronics / iphones"
},
"catalog": "marketplace",
"types": [
"physical"
],
"variantsCount": 123,
"brand": {
"id": "621f9d4b1e675adcbc196159",
"name": "Apple",
"description": "Cute pet brand"
},
"tags": [
{
"id": "t1",
"name": "Popular"
}
],
"priceRange": {
"min": {
"amount": 10,
"currency": "usd"
},
"max": {
"amount": 10,
"currency": "usd"
}
}
}
],
"links": {
"first": "/v3/collections/abc/products?page[size]=100",
"next": "/v3/collections/abc/products?page[cursor]=cursor_abc123&page[size]=100",
"prev": "<string>"
},
"total": 10000
}Returns a paginated list of products across all collections. Same
response shape as the collection-scoped endpoint, without the
collectionId path parameter.
Supports additional filters by brand id, brand name, tag id, and product title. Variants are never returned on this endpoint.
curl --request GET \
--url https://api.snappy.com/v3/products \
--header 'X-Api-Key: <api-key>'{
"data": [
{
"id": "a1b2c3d4e5",
"title": "Iphone 17 Pro Max",
"createdAt": "2026-01-15T10:30:00Z",
"media": [
{
"type": "image",
"src": "https://media.snappy.com/image/asset123?w=1000&h=1000&q=80&f=auto"
}
],
"category": {
"fullName": "gifts / electronics / iphones"
},
"catalog": "marketplace",
"types": [
"physical"
],
"variantsCount": 123,
"brand": {
"id": "621f9d4b1e675adcbc196159",
"name": "Apple",
"description": "Cute pet brand"
},
"tags": [
{
"id": "t1",
"name": "Popular"
}
],
"priceRange": {
"min": {
"amount": 10,
"currency": "usd"
},
"max": {
"amount": 10,
"currency": "usd"
}
}
}
],
"links": {
"first": "/v3/collections/abc/products?page[size]=100",
"next": "/v3/collections/abc/products?page[cursor]=cursor_abc123&page[size]=100",
"prev": "<string>"
},
"total": 10000
}Documentation Index
Fetch the complete documentation index at: https://docs.snappy.com/llms.txt
Use this file to discover all available pages before exploring further.
Partner API key. Finalized per partner integration agreement.
Optional account identifier for swag validation/filtering.
Which product catalog to search. Omit to search both marketplace and swag (no default).
Product catalog. As a query value, omit filter[catalog] to search
both catalogs.
marketplace, swag "marketplace"
Case-insensitive substring search on product title.
Comma-separated list of brand ids. IN semantics (OR across values).
Case-insensitive substring search on brand name.
Comma-separated list of tag ids. IN semantics (OR across values).
Comma-separated list of product types. IN semantics (OR across values).
Applies within the selected filter[catalog](s). Omit to include all
types.
Product type. Used both as values of Product.types[] and as filter
values for filter[types].
physical, digital, giftCards, donations Minimum price filter. Inclusive.
Maximum price filter. Inclusive.
ISO 3166-1 alpha-2 country code (default US).
^[A-Z]{2}$Related entities to include (JSON:API include), comma-separated.
Supported values: brand, tags. Returned as full objects.
brand, tags Comma-separated list of computed/expanded fields for product list endpoints.
priceRange — { min: Price, max: Price }.variantsCount — total variants for the product.total — total products matching the request filters (ignores
pagination).full — every field above.priceRange, variantsCount, total, full Opaque continuation token returned by the previous response's
links.next. Omit on the first request. Cursors are opaque —
clients must not parse or fabricate them.
Number of products to return per page (max 300, default 100).
1 <= x <= 300JSON:API sort parameter. Comma-separated fields; prefix with - for
descending. Sortable fields: minPrice, createdAt.
^-?(minPrice|createdAt)(,-?(minPrice|createdAt))*$"-createdAt,minPrice"
Paginated list of products.
Paginated product list response. total is present only when
requested via fields=total or fields=full.
Show child attributes
Top-level JSON:API-style pagination links for paginated list
responses. first is always present. next is null on the final
page. prev is null on the first page (and on cursor-paginated
endpoints where backward navigation is not supported).
Show child attributes
Total number of products matching the request filters (ignores
pagination). Returned only when fields=total or fields=full.
x >= 010000
Was this page helpful?