Returns a paginated list of active products for the current store
import { createClient } from '@spree/sdk'
const client = createClient({
baseUrl: 'https://your-store.com',
publishableKey: '<api-key>',
})
const products = await client.products.list({
page: 1,
limit: 25,
sort: 'price',
name_cont: 'shirt',
price_gte: 20,
price_lte: 100,
with_option_value_ids: ['optval_abc', 'optval_def'],
expand: ['variants', 'images'],
}){
"data": [
{
"id": "prod_UkLWZg9DAJ",
"name": "Product 791573",
"description": "Dolor nihil nisi soluta voluptatem necessitatibus doloribus facilis. Accusantium quo esse at natus explicabo dolorem. Nesciunt corrupti quos voluptatibus exercitationem. Provident at natus molestias placeat odit veritatis. Enim temporibus maiores explicabo adipisci accusamus eius.\nMinima maiores porro aspernatur corporis ea deserunt quos. Accusantium libero dolor aspernatur rem omnis voluptatibus distinctio saepe. Inventore rerum temporibus voluptatum atque. Animi recusandae omnis ad commodi.\nQui dicta amet consequuntur asperiores quasi esse blanditiis modi. Provident excepturi similique laborum ea. Repellat non hic temporibus nisi.",
"slug": "product-791573",
"meta_description": null,
"meta_keywords": null,
"variant_count": 1,
"available_on": "2025-03-11T14:46:28.471Z",
"created_at": "2026-03-11T14:46:28.484Z",
"updated_at": "2026-03-11T14:46:28.522Z",
"purchasable": true,
"in_stock": false,
"backorderable": true,
"available": true,
"default_variant_id": "variant_gbHJdmfrXB",
"thumbnail_url": null,
"tags": [],
"price": {
"id": "price_gbHJdmfrXB",
"amount": "19.99",
"amount_in_cents": 1999,
"compare_at_amount": null,
"compare_at_amount_in_cents": null,
"currency": "USD",
"display_amount": "$19.99",
"display_compare_at_amount": null,
"price_list_id": null
},
"original_price": null
},
{
"id": "prod_gbHJdmfrXB",
"name": "Product 802302",
"description": "Quo cum inventore ipsa ex ipsam quis. Optio et accusamus ducimus sed. Molestiae debitis libero culpa ipsum. Quam aspernatur eveniet adipisci dolorum.\nSuscipit ab quisquam magni velit perspiciatis veniam odio repellat. Necessitatibus ipsa quam amet reiciendis sunt. Doloremque quidem similique repellat nemo id deserunt dolor.\nEaque occaecati nulla excepturi officia distinctio amet tempore. Voluptatem veniam corrupti sequi ullam placeat. Sit unde mollitia nulla repellendus ab dolor culpa.",
"slug": "product-802302",
"meta_description": null,
"meta_keywords": null,
"variant_count": 0,
"available_on": "2025-03-11T14:46:28.527Z",
"created_at": "2026-03-11T14:46:28.536Z",
"updated_at": "2026-03-11T14:46:28.548Z",
"purchasable": true,
"in_stock": false,
"backorderable": true,
"available": true,
"default_variant_id": "variant_EfhxLZ9ck8",
"thumbnail_url": null,
"tags": [],
"price": {
"id": "price_EfhxLZ9ck8",
"amount": "19.99",
"amount_in_cents": 1999,
"compare_at_amount": null,
"compare_at_amount_in_cents": null,
"currency": "USD",
"display_amount": "$19.99",
"display_compare_at_amount": null,
"price_list_id": null
},
"original_price": null
}
],
"meta": {
"page": 1,
"limit": 25,
"count": 2,
"pages": 1,
"from": 1,
"to": 2,
"in": 2,
"previous": null,
"next": null
}
}Publishable API key for store access
Publishable API key
Page number (default: 1)
Number of items per page (default: 25, max: 100)
Sort order. Prefix with - for descending. Values: price, -price, best_selling, name, -name, -available_on, available_on
Filter by name containing string
Filter by category ID
Filter by minimum price
Filter by maximum price
Filter by option value prefix IDs (e.g., optval_abc). Pass multiple values for OR logic.
Filter to only in-stock products
Comma-separated associations to expand (variants, images, categories, option_types)
Comma-separated list of fields to include (e.g., name,slug,price). id is always included.
Was this page helpful?
import { createClient } from '@spree/sdk'
const client = createClient({
baseUrl: 'https://your-store.com',
publishableKey: '<api-key>',
})
const products = await client.products.list({
page: 1,
limit: 25,
sort: 'price',
name_cont: 'shirt',
price_gte: 20,
price_lte: 100,
with_option_value_ids: ['optval_abc', 'optval_def'],
expand: ['variants', 'images'],
}){
"data": [
{
"id": "prod_UkLWZg9DAJ",
"name": "Product 791573",
"description": "Dolor nihil nisi soluta voluptatem necessitatibus doloribus facilis. Accusantium quo esse at natus explicabo dolorem. Nesciunt corrupti quos voluptatibus exercitationem. Provident at natus molestias placeat odit veritatis. Enim temporibus maiores explicabo adipisci accusamus eius.\nMinima maiores porro aspernatur corporis ea deserunt quos. Accusantium libero dolor aspernatur rem omnis voluptatibus distinctio saepe. Inventore rerum temporibus voluptatum atque. Animi recusandae omnis ad commodi.\nQui dicta amet consequuntur asperiores quasi esse blanditiis modi. Provident excepturi similique laborum ea. Repellat non hic temporibus nisi.",
"slug": "product-791573",
"meta_description": null,
"meta_keywords": null,
"variant_count": 1,
"available_on": "2025-03-11T14:46:28.471Z",
"created_at": "2026-03-11T14:46:28.484Z",
"updated_at": "2026-03-11T14:46:28.522Z",
"purchasable": true,
"in_stock": false,
"backorderable": true,
"available": true,
"default_variant_id": "variant_gbHJdmfrXB",
"thumbnail_url": null,
"tags": [],
"price": {
"id": "price_gbHJdmfrXB",
"amount": "19.99",
"amount_in_cents": 1999,
"compare_at_amount": null,
"compare_at_amount_in_cents": null,
"currency": "USD",
"display_amount": "$19.99",
"display_compare_at_amount": null,
"price_list_id": null
},
"original_price": null
},
{
"id": "prod_gbHJdmfrXB",
"name": "Product 802302",
"description": "Quo cum inventore ipsa ex ipsam quis. Optio et accusamus ducimus sed. Molestiae debitis libero culpa ipsum. Quam aspernatur eveniet adipisci dolorum.\nSuscipit ab quisquam magni velit perspiciatis veniam odio repellat. Necessitatibus ipsa quam amet reiciendis sunt. Doloremque quidem similique repellat nemo id deserunt dolor.\nEaque occaecati nulla excepturi officia distinctio amet tempore. Voluptatem veniam corrupti sequi ullam placeat. Sit unde mollitia nulla repellendus ab dolor culpa.",
"slug": "product-802302",
"meta_description": null,
"meta_keywords": null,
"variant_count": 0,
"available_on": "2025-03-11T14:46:28.527Z",
"created_at": "2026-03-11T14:46:28.536Z",
"updated_at": "2026-03-11T14:46:28.548Z",
"purchasable": true,
"in_stock": false,
"backorderable": true,
"available": true,
"default_variant_id": "variant_EfhxLZ9ck8",
"thumbnail_url": null,
"tags": [],
"price": {
"id": "price_EfhxLZ9ck8",
"amount": "19.99",
"amount_in_cents": 1999,
"compare_at_amount": null,
"compare_at_amount_in_cents": null,
"currency": "USD",
"display_amount": "$19.99",
"display_compare_at_amount": null,
"price_list_id": null
},
"original_price": null
}
],
"meta": {
"page": 1,
"limit": 25,
"count": 2,
"pages": 1,
"from": 1,
"to": 2,
"in": 2,
"previous": null,
"next": null
}
}