Returns a paginated list of products for the current store.
Required scope: read_products (for API-key authentication).
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const { data: products } = await client.products.list({
name_cont: 'shirt',
status_eq: 'active',
sort: '-created_at',
limit: 25,
}){
"data": [
{
"id": "prod_UkLWZg9DAJ",
"name": "Product 393216",
"slug": "product-393216",
"meta_title": null,
"meta_description": null,
"meta_keywords": null,
"variant_count": 0,
"available_on": "2025-05-21T18:11:34.653Z",
"purchasable": true,
"in_stock": false,
"backorderable": true,
"available": true,
"description": "Vero nulla quasi dignissimos maxime sequi ipsam voluptas eaque. Distinctio quibusdam sint accusantium consectetur. Suscipit nobis aliquid laudantium nihil. Asperiores modi laudantium culpa blanditiis sapiente ab architecto ut. Provident ipsa doloribus illo accusamus fugiat ullam magni voluptates. Aut laboriosam repellendus iusto omnis alias. Ipsam eius totam minima rerum molestiae. Aspernatur sequi voluptatum quia cum architecto sunt eveniet esse. Quibusdam consequatur totam in non neque. Nam quaerat molestias fugit neque nemo vitae veritatis saepe. Voluptatibus minima aspernatur pariatur doloribus repudiandae eaque. Doloremque quisquam eveniet repellendus aut eos quam blanditiis occaecati. Sequi iste asperiores distinctio harum. Voluptatibus optio asperiores voluptas labore non laboriosam.",
"description_html": "Vero nulla quasi dignissimos maxime sequi ipsam voluptas eaque. Distinctio quibusdam sint accusantium consectetur. Suscipit nobis aliquid laudantium nihil. Asperiores modi laudantium culpa blanditiis sapiente ab architecto ut.\nProvident ipsa doloribus illo accusamus fugiat ullam magni voluptates. Aut laboriosam repellendus iusto omnis alias. Ipsam eius totam minima rerum molestiae. Aspernatur sequi voluptatum quia cum architecto sunt eveniet esse. Quibusdam consequatur totam in non neque.\nNam quaerat molestias fugit neque nemo vitae veritatis saepe. Voluptatibus minima aspernatur pariatur doloribus repudiandae eaque. Doloremque quisquam eveniet repellendus aut eos quam blanditiis occaecati. Sequi iste asperiores distinctio harum. Voluptatibus optio asperiores voluptas labore non laboriosam.",
"default_variant_id": "variant_UkLWZg9DAJ",
"thumbnail_url": null,
"tags": [],
"price": {
"id": "price_UkLWZg9DAJ",
"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,
"variant_id": "variant_UkLWZg9DAJ",
"created_at": "2026-05-21T18:11:34.688Z",
"updated_at": "2026-05-21T18:11:34.688Z"
},
"original_price": null,
"status": "active",
"make_active_at": "2025-05-21T18:11:34.654Z",
"discontinue_on": null,
"metadata": {},
"deleted_at": null,
"created_at": "2026-05-21T18:11:34.668Z",
"updated_at": "2026-05-21T18:11:34.690Z",
"tax_category_id": "taxcat_UkLWZg9DAJ"
}
],
"meta": {
"page": 1,
"limit": 25,
"count": 1,
"pages": 1,
"from": 1,
"to": 1,
"in": 1,
"previous": null,
"next": null
}
}Documentation Index
Fetch the complete documentation index at: https://spreecommerce.org/docs/llms.txt
Use this file to discover all available pages before exploring further.
Secret API key for admin access
JWT token for admin user authentication
Bearer token for admin authentication
Page number
Number of records per page
Sort field (e.g., name, -name, price, -price, best_selling)
Comma-separated associations to expand (e.g., variants, media, option_types, categories). Use dot notation for nested expand (max 4 levels).
Comma-separated list of fields to include (e.g., name,slug,price,status). id is always included.
Filter by name (contains)
Filter by status
Was this page helpful?
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const { data: products } = await client.products.list({
name_cont: 'shirt',
status_eq: 'active',
sort: '-created_at',
limit: 25,
}){
"data": [
{
"id": "prod_UkLWZg9DAJ",
"name": "Product 393216",
"slug": "product-393216",
"meta_title": null,
"meta_description": null,
"meta_keywords": null,
"variant_count": 0,
"available_on": "2025-05-21T18:11:34.653Z",
"purchasable": true,
"in_stock": false,
"backorderable": true,
"available": true,
"description": "Vero nulla quasi dignissimos maxime sequi ipsam voluptas eaque. Distinctio quibusdam sint accusantium consectetur. Suscipit nobis aliquid laudantium nihil. Asperiores modi laudantium culpa blanditiis sapiente ab architecto ut. Provident ipsa doloribus illo accusamus fugiat ullam magni voluptates. Aut laboriosam repellendus iusto omnis alias. Ipsam eius totam minima rerum molestiae. Aspernatur sequi voluptatum quia cum architecto sunt eveniet esse. Quibusdam consequatur totam in non neque. Nam quaerat molestias fugit neque nemo vitae veritatis saepe. Voluptatibus minima aspernatur pariatur doloribus repudiandae eaque. Doloremque quisquam eveniet repellendus aut eos quam blanditiis occaecati. Sequi iste asperiores distinctio harum. Voluptatibus optio asperiores voluptas labore non laboriosam.",
"description_html": "Vero nulla quasi dignissimos maxime sequi ipsam voluptas eaque. Distinctio quibusdam sint accusantium consectetur. Suscipit nobis aliquid laudantium nihil. Asperiores modi laudantium culpa blanditiis sapiente ab architecto ut.\nProvident ipsa doloribus illo accusamus fugiat ullam magni voluptates. Aut laboriosam repellendus iusto omnis alias. Ipsam eius totam minima rerum molestiae. Aspernatur sequi voluptatum quia cum architecto sunt eveniet esse. Quibusdam consequatur totam in non neque.\nNam quaerat molestias fugit neque nemo vitae veritatis saepe. Voluptatibus minima aspernatur pariatur doloribus repudiandae eaque. Doloremque quisquam eveniet repellendus aut eos quam blanditiis occaecati. Sequi iste asperiores distinctio harum. Voluptatibus optio asperiores voluptas labore non laboriosam.",
"default_variant_id": "variant_UkLWZg9DAJ",
"thumbnail_url": null,
"tags": [],
"price": {
"id": "price_UkLWZg9DAJ",
"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,
"variant_id": "variant_UkLWZg9DAJ",
"created_at": "2026-05-21T18:11:34.688Z",
"updated_at": "2026-05-21T18:11:34.688Z"
},
"original_price": null,
"status": "active",
"make_active_at": "2025-05-21T18:11:34.654Z",
"discontinue_on": null,
"metadata": {},
"deleted_at": null,
"created_at": "2026-05-21T18:11:34.668Z",
"updated_at": "2026-05-21T18:11:34.690Z",
"tax_category_id": "taxcat_UkLWZg9DAJ"
}
],
"meta": {
"page": 1,
"limit": 25,
"count": 1,
"pages": 1,
"from": 1,
"to": 1,
"in": 1,
"previous": null,
"next": null
}
}