The REST Admin API is a legacy API as of October 1, 2024. Starting April 1, 2025, all new public apps must be built exclusively with the GraphQL Admin API. For details and migration steps, visit our migration guide.
Product
products
access scope.Listing, creating, updating, and deleting products is deprecated as of REST API 2024-04. For more information, refer to the guide to the new product model.
The Product resource lets you update and create products in a merchant's store. You can use product variants with the Product resource to create or update different versions of the same product. You can also add or update product images.
You can add products to collections with the CustomCollection resource and the SmartCollection resource.
Endpoints
- post/admin/api/latest/products.
json Create a new product - get/admin/api/latest/products.
json?ids=632910392,921728736 Retrieve a list of products - get/admin/api/latest/products/{product_
id}. json Retrieve a single product - get/admin/api/latest/products/count.
json Retrieve a count of products - put/admin/api/latest/products/{product_
id}. json Updates a product - del/admin/api/latest/products/{product_
id}. json Delete a product
The Product resource
Properties
A description of the product. Supports HTML formatting.
The date and time (ISO 8601 format) when the product was created.
A unique human-friendly string for the product. Automatically generated from the product's title
. Used by the Liquid templating language to refer to objects.
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
A list of product image objects, each one representing an image associated with the product.
The custom product properties. For example, Size, Color, and Material. Each product can have up to 3 options and each option value can be up to 255 characters. Product variants are made of up combinations of option values.
Options cannot be created without values. To create new options, a variant with an associated option value also needs to be created.A categorization for the product used for filtering and searching products.
The date and time (ISO 8601 format) when the product was
published. Can be set to null
to unpublish the product from the Online Store channel.
Whether the product is published to the Point of Sale channel. Valid values:
Show published_scope properties
web
: The product isn't published to the Point of Sale channel.global
: The product is published to the Point of Sale channel.
The status of the product. Valid values:
Show status properties
active
: The product is ready to sell and is available to customers on the online store, sales channels, and apps. By default, existing products are set to active.archived
: The product is no longer being sold and isn't available to customers on sales channels and apps.draft
: The product isn't ready to sell and is unavailable to customers on sales channels and apps. By default, duplicated and unarchived products are set to draft.
A string of comma-separated tags that are used for filtering and search. A product can have up to 250 tags. Each tag can have up to 255 characters.
The suffix of the Liquid template used for the product page. If this property is specified, then the product page uses a template called "product.suffix.liquid", where "suffix" is the value of this property. If this property is ""
or null
, then the product page uses the default template "product.liquid". (default: null
)
The Product resource
Anchor to POST request, Create a new productpostCreate a new product
Create a new product
Anchor to post-products-examplesExamples
Create a new draft product
Create a new draft product
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
The status of the product. Valid values:
Show status properties
active
: The product is ready to sell and is available to customers on the online store, sales channels, and apps. By default, existing products are set to active.archived
: The product is no longer being sold and isn't available to customers on sales channels and apps.draft
: The product isn't ready to sell and is unavailable to customers on sales channels and apps. By default, duplicated and unarchived products are set to draft.
Create a new product with multiple product variants
Create a new product with multiple product variants
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
An array of product variants, each representing a different version of the product.
The position
property is read-only. The position of variants is indicated by the order in which they are listed.
Create a new product with multiple product variants and multiple options
Create a new product with multiple product variants and multiple options
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
An array of product variants, each representing a different version of the product.
The position
property is read-only. The position of variants is indicated by the order in which they are listed.
The custom product properties. For example, Size, Color, and Material. Each product can have up to 3 options and each option value can be up to 255 characters. Product variants are made of up combinations of option values.
Options cannot be created without values. To create new options, a variant with an associated option value also needs to be created.Create a new product with the default product variant
Create a new product with the default product variant
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
A string of comma-separated tags that are used for filtering and search. A product can have up to 250 tags. Each tag can have up to 255 characters.
Create a new product with the default variant and a product image that will be downloaded by Shopify
Create a new product with the default variant and a product image that will be downloaded by Shopify
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
A list of product image objects, each one representing an image associated with the product.
Create a new product with the default variant and base64 encoded image
Create a new product with the default variant and base64 encoded image
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
A list of product image objects, each one representing an image associated with the product.
Create a new unpublished product
Create a new unpublished product
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
Create a product with a metafield
Create a product with a metafield
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
Create a product with an SEO title and description
Create a product with an SEO title and description
Show product properties
The name of the product.
A description of the product. Supports HTML formatting.
The name of the product's vendor.
A categorization for the product used for filtering and searching products.
Creating a product without a title will return an error
Creating a product without a title will return an error
Show product properties
A description of the product. Supports HTML formatting.
/admin/api/2025-07/products. json
Response
Anchor to GET request, Retrieve a list of productsgetRetrieve a list of products
Retrieve a list of products.
Return products by product collection ID.
Return products created before a specified date. (format: 2014-04-25T16:15:47-04:00)
Return products created after a specified date. (format: 2014-04-25T16:15:47-04:00)
Return fields by a comma-separated list of field names. Fields: admin_graphql_api_id, body_html, created_at, handle, id, image, images, options, product_type, published_at, published_scope, status, tags, template_suffix, title, updated_at, variants, vendor
Return only products specified by a comma-separated list of product handles.
Return only products specified by a comma-separated list of product IDs.
Return up to this many results per page.
Return presentment prices in only certain currencies, specified by a comma-separated list of ISO 4217 currency codes.
Return products by product type.
Return products published before a specified date. (format: 2014-04-25T16:15:47-04:00)
Return products published after a specified date. (format: 2014-04-25T16:15:47-04:00)
Retrieve a list of specific products
Retrieve a list of specific products
Return only products specified by a comma-separated list of product IDs.
Retrieve all products
Retrieve all products
Retrieve all products after the specified ID
Retrieve all products after the specified ID
Return only products after the specified ID.
Retrieve all products that belong to a certain collection
Retrieve all products that belong to a certain collection
Return products by product collection ID.
Retrieve all products with prices in selected presentment currencies
Retrieve all products with prices in selected presentment currencies
Return presentment prices in only certain currencies, specified by a comma-separated list of ISO 4217 currency codes.
Retrieve all products, showing only some attributes
Retrieve all products, showing only some attributes
Return fields by a comma-separated list of field names. Fields: admin_graphql_api_id, body_html, created_at, handle, id, image, images, options, product_type, published_at, published_scope, status, tags, template_suffix, title, updated_at, variants, vendor
/admin/api/2025-07/products. json?ids= 632910392, 921728736
Response
Anchor to GET request, Retrieve a single productgetRetrieve a single product
Retrieve a single product.
A comma-separated list of fields to include in the response.
Retrieve a single product by ID
Retrieve a single product by ID
Retrieve only particular fields from a single product
Retrieve only particular fields from a single product
A comma-separated list of fields to include in the response.
/admin/api/2025-07/products/632910392. json
Response
Anchor to GET request, Retrieve a count of productsgetRetrieve a count of products
Retrieve a count of products.
Return products by product collection ID.
Return products created before a specified date. (format: 2014-04-25T16:15:47-04:00)
Return products created after a specified date. (format: 2014-04-25T16:15:47-04:00)
Return products by product type.
Return products published before a specified date. (format: 2014-04-25T16:15:47-04:00)
Return products published after a specified date. (format: 2014-04-25T16:15:47-04:00)
Return products by their published status.
Show published_status properties
published: Return only published products.
unpublished: Return only unpublished products.
any: Return all products.
Return products last updated before a specified date. (format: 2014-04-25T16:15:47-04:00)
Return products last updated after a specified date. (format: 2014-04-25T16:15:47-04:00)
Return products by product vendor.
Retrieve a count of all products
Retrieve a count of all products
Retrieve a count of all products of a given collection
Retrieve a count of all products of a given collection
Return products by product collection ID.
/admin/api/2025-07/products/count. json
Response
Anchor to PUT request, Updates a productputUpdates a product
Update a product
Add a metafield to an existing product
Add a metafield to an existing product
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
Hide a published product by changing the published attribute to false
Hide a published product by changing the published attribute to false
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
Update a product and one of its variants
Update a product and one of its variants
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
The name of the product.
An array of product variants, each representing a different version of the product.
The position
property is read-only. The position of variants is indicated by the order in which they are listed.
Update a product by adding a new product image
Update a product by adding a new product image
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
A list of product image objects, each one representing an image associated with the product.
Update a product by clearing product images
Update a product by clearing product images
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
A list of product image objects, each one representing an image associated with the product.
Update a product by reordering the product images
Update a product by reordering the product images
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
A list of product image objects, each one representing an image associated with the product.
Update a product by reordering the product variants
Update a product by reordering the product variants
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
An array of product variants, each representing a different version of the product.
The position
property is read-only. The position of variants is indicated by the order in which they are listed.
Update a product's SEO title and description
Update a product's SEO title and description
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
Update a product's status
Update a product's status
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
The status of the product. Valid values:
Show status properties
active
: The product is ready to sell and is available to customers on the online store, sales channels, and apps. By default, existing products are set to active.archived
: The product is no longer being sold and isn't available to customers on sales channels and apps.draft
: The product isn't ready to sell and is unavailable to customers on sales channels and apps. By default, duplicated and unarchived products are set to draft.
Update a product's title
Update a product's title
Show product properties
An unsigned 64-bit integer that's used as a unique identifier for the product. Each id
is unique across the Shopify system. No two products will have the same id
, even if they're from different shops.
The name of the product.
/admin/api/2025-07/products/632910392. json
Response
Anchor to DELETE request, Delete a productdelDelete a product
Deletes a product.
Anchor to Parameters of Delete a productParameters
Delete a product along with all its variants and images
Delete a product along with all its variants and images