Skip to main content

Overview

The Store Products API enables customers to browse your product catalog, view product details, and search for products. All endpoints are publicly accessible without authentication. Base Path: /store/products Source: packages/medusa/src/api/store/products/route.ts

List Products

Retrieve a list of published products available to customers.

Query Parameters

string
Comma-separated list of fields to include (e.g., id,title,variants.prices).
number
default:"15"
Maximum number of products to return.
number
default:"0"
Number of products to skip.
string
Search query for product title or description.
string[]
Filter by collection IDs.
string[]
Filter by category IDs.
string[]
Filter by product tag values.
string[]
Filter by product type IDs.
string
Filter products available in specific sales channel.
string
Region ID for pricing context.
string
Currency code for pricing (e.g., “usd”).

Request

Response

Product[]
Array of product objects.
object
Calculated price based on region and currency context.
Source: packages/medusa/src/api/store/products/route.ts:13
Only products with status: "published" are returned by the Store API. Products are automatically filtered by the current sales channel context.

Get Product

Retrieve a single product by ID or handle.

Path Parameters

string
required
The product’s ID or handle.

Query Parameters

string
Comma-separated list of fields to include.
string
Region ID for pricing context.
string
Currency code for pricing.

Request

Response

Product Variants

List Product Variants

Retrieve variants for a specific product.

Query Parameters

string[]
Filter by variant IDs.
string[]
Filter by product IDs.
string[]
Filter by SKU.
string
Region ID for pricing context.
string
Currency code for pricing.

Request

Source: packages/medusa/src/api/store/product-variants/route.ts

Get Product Variant

Retrieve a single variant by ID.

Collections

List Collections

Retrieve all product collections.

Query Parameters

number
default:"15"
Maximum number of collections to return.
number
default:"0"
Number of collections to skip.
string[]
Filter by collection handles.

Request

Response

Source: packages/medusa/src/api/store/collections/route.ts

Get Collection

Retrieve a single collection by ID or handle.

Categories

List Product Categories

Retrieve product categories in a hierarchical structure.

Query Parameters

string
Filter by parent category ID. Use null for top-level categories.
boolean
Include nested child categories.

Request

Response

Source: packages/medusa/src/api/store/product-categories/route.ts

Get Product Category

Retrieve a single category by ID or handle.

Search and Filtering

Search products by title and description:

Filter by Collection

Get products in a specific collection:

Filter by Category

Get products in a category:

Filter by Tags

Get products with specific tags:

Pricing Context

To get accurate pricing, always include region or currency context:
The API calculates prices based on:
  • Region-specific pricing rules
  • Active price lists
  • Currency conversion
  • Tax rates (if applicable)
  • Active promotions
Source: packages/medusa/src/api/store/products/helpers.ts (pricing calculation)

Inventory Information

Request inventory quantities by including the inventory field:
Inventory quantity calculation considers the current sales channel and stock location context.

Next Steps

Cart

Add products to cart

Checkout

Complete the purchase