Skip to main content

Overview

The Products API allows you to create, update, retrieve, and manage products in your Medusa store. Products can have multiple variants, options, images, and be organized into collections and categories. Base Path: /admin/products Source: packages/medusa/src/api/admin/products/route.ts

List Products

Retrieve a list of products with filtering and pagination.

Query Parameters

string
Comma-separated list of fields to include (e.g., id,title,status,variants.sku).
number
default:"15"
Maximum number of products to return.
number
default:"0"
Number of products to skip.
string
Filter by product status: published, draft, or proposed.
string
Filter products by sales channel ID.
string
Filter products by collection ID.
string[]
Filter products by tag IDs.
string[]
Filter products by category IDs.
string
Search query for product title or description.

Request

Response

Product[]
Array of product objects.
number
Total number of products matching the filters.
Source: packages/medusa/src/api/admin/products/route.ts:17

Create Product

Create a new product with variants and options.

Request Body

string
required
The product’s title.
string
The product’s subtitle.
string
The product’s description.
string
default:"draft"
Product status: published, draft, or proposed.
string
Unique URL-friendly identifier. Auto-generated from title if not provided.
boolean
default:"false"
Whether the product is a gift card.
boolean
default:"true"
Whether discounts can be applied to the product.
object[]
Product images.
string
URL of the product’s thumbnail image.
string
ID of the collection the product belongs to.
string
ID of the product type.
object[]
Product categories.
object[]
Product tags.
object[]
required
Product options (e.g., Size, Color).
object[]
Product variants.
object[]
Sales channels where the product is available.
number
Product weight.
number
Product length.
number
Product height.
number
Product width.
object
Key-value pairs of custom metadata.

Request

Response

Source: packages/medusa/src/api/admin/products/route.ts:94 Types: packages/core/types/src/http/product/admin/payloads.ts:159

Get Product

Retrieve a single product by ID.

Path Parameters

string
required
The product’s ID.

Request

Response

Update Product

Update an existing product.

Path Parameters

string
required
The product’s ID.

Request Body

Accepts the same fields as Create Product, all optional.

Request

Response

Delete Product

Delete a product (soft delete).

Path Parameters

string
required
The product’s ID.

Request

Response

Product Variants

Create Variant

Add a new variant to an existing product.

Update Variant

Update a product variant.

Delete Variant

Remove a variant from a product.

Product Options

Create Option

Add a new option to a product.

Update Option

Update a product option.

Delete Option

Remove an option from a product.

Batch Operations

Batch Create/Update Products

Create or update multiple products in a single request.

Request Body

object[]
Products to create.
object[]
Products to update.

Next Steps

Inventory

Manage product inventory

Pricing

Configure product pricing