--- title: Product Variant description: Add or update a product's variants. Variants are the different combinations of the product's options. For example, a t-shirt product with size and color options might have a variant in a small size and blue color. api_version: 2025-10 api_name: admin-rest api_type: rest source_url: html: https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant md: https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant.md --- ![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg) 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](https://shopify.dev/docs/api/admin-graphql). For details and migration steps, visit our [migration guide](https://shopify.dev/docs/apps/build/graphql/migrate). # Product Variant Requires `products` access scope. Important Listing, creating, updating, and deleting product variants is deprecated as of REST API 2024-04. For more information, refer to the [guide to the new product model](https://shopify.dev/docs/api/admin/migrate/new-product-model). Important Apps can no longer set inventory using `inventory_quantity`. For more information, refer to the [`Inventory Level`](https://shopify.dev/api/admin-rest/latest/resources/inventorylevel) resource. A variant can be added to a Product resource to represent one version of a product with several options. The Product resource will have a variant for every possible combination of its options. Each product can have a maximum of three options and a maximum of 100 variants. \# ## Endpoints * [post](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#post-products-product-id-variants) [/admin/api/latest/products/{product\_​id}/variants.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#post-products-product-id-variants) Create a new Product Variant [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate) [productCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate) [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) [productVariantsBulkCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) * [get](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#get-products-product-id-variants) [/admin/api/latest/products/{product\_​id}/variants.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#get-products-product-id-variants) Retrieves a list of product variants [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants) [productVariants](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants) * [get](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#get-products-product-id-variants-count) [/admin/api/latest/products/{product\_​id}/variants/count.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#get-products-product-id-variants-count) Receive a count of all Product Variants [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariantsCount?example=receive-a-count-of-all-product-variants) [productVariantsCount](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariantsCount?example=receive-a-count-of-all-product-variants) * [get](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#get-variants-variant-id) [/admin/api/latest/variants/{variant\_​id}.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#get-variants-variant-id) Receive a single Product Variant [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariant) [productVariant](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariant) * [put](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#put-variants-variant-id) [/admin/api/latest/variants/{variant\_​id}.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#put-variants-variant-id) Modify an existing Product Variant [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) [productVariantsBulkUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) * [del](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#delete-products-product-id-variants-variant-id) [/admin/api/latest/products/{product\_​id}/variants/{variant\_​id}.​json](https://shopify.dev/docs/api/admin-rest/latest/resources/product-variant#delete-products-product-id-variants-variant-id) Remove an existing Product Variant [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete?example=remove-an-existing-product-variant) [productVariantsBulkDelete](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete?example=remove-an-existing-product-variant) *** ## The Product Variant resource ### Properties *** barcode -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.barcode) [barcode](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.barcode) The barcode, UPC, or ISBN number for the product. *** compare\_at\_price -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.compareAtPrice) [compareAtPrice](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.compareAtPrice) The original price of the item before an adjustment or a sale. *** created\_at -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.createdAt) [createdAt](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.createdAt) The date and time ([ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601)) when the product variant was created. *** fulfillment\_service -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.fulfillmentService) [fulfillmentService](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.fulfillmentService) The handle of a fulfillment service that stocks a product variant. This is the handle of a third-party fulfillment service if the following conditions are met: 1. The product variant is stocked by a single fulfillment service. 2. The [FulfillmentService](https://shopify.dev/api/admin-rest/latest/resources/fulfillmentservice) is a third-party fulfillment service. Third-party fulfillment services don't have a handle with the value `manual`. 3. The fulfillment service [hasn't opted into SKU sharing](https://shopify.dev/changelog/fulfillment-service-sku-sharing). If the conditions aren't met, then this is `manual`. The [relationship between a product variant and a fulfillment service was changed in the `2022-07` API version](https://shopify.dev/changelog/fulfillment-service-sku-sharing). A [ProductVariant](https://shopify.dev/api/admin-rest/latest/resources/product-variant) can be stocked by multiple fulfillment services. As a result, we recommend that you use the [InventoryLevel](https://shopify.dev/api/admin-rest/latest/resources/inventorylevel) resource if you need to determine where a product variant is stocked. If you previously set this field, then we recommend that you instead [connect an inventory item to a location](https://shopify.dev/api/admin-rest/latest/resources/inventorylevel#post-inventory-levels-connect). Each [Location](https://shopify.dev/api/admin-rest/latest/resources/location) is associated with a single [FulfillmentService](https://shopify.dev/api/admin-rest/latest/resources/fulfillmentservice). The value of this field after setting it will be as described above. If you need to determine whether a product is a gift card, then you should continue to use this field until an alternative is available. Learn more about [managing inventory quantities and states](https://shopify.dev/apps/fulfillment/inventory-management-apps/quantities-states). *** grams deprecated The weight of the product variant in grams. *** id -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.id) [id](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.id) The unique numeric identifier for the product variant. *** image\_id -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.image) [image](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.image) The unique numeric identifier for a product's image. The image must be associated to the same product as the variant. *** inventory\_item\_id -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.inventoryItem) [inventoryItem](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.inventoryItem) The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information. *** inventory\_management -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem#field-InventoryItem.fields.inventoryLevel) [inventoryLevel](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem#field-InventoryItem.fields.inventoryLevel) The fulfillment service that tracks the number of items in stock for the product variant. Valid values: Show inventory\_management properties * `shopify`: You are tracking inventory yourself using the admin. * `null`: You aren't tracking inventory on the variant. * the handle of a [fulfillment service](https://shopify.dev/docs/admin-api/rest/reference/shipping-and-fulfillment/fulfillmentservice) that has inventory management enabled: This must be the same fulfillment service referenced by the `fulfillment_service` property. *** inventory\_policy -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.inventoryPolicy) [inventoryPolicy](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.inventoryPolicy) Whether customers are allowed to place an order for the product variant when it's out of stock. Valid values: Show inventory\_policy properties * `deny`: Customers are not allowed to place orders for the product variant if it's out of stock. * `continue`: Customers are allowed to place orders for the product variant if it's out of stock. Default value: `deny`. *** inventory\_quantity read-only -> [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.inventoryQuantity) [inventoryQuantity](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.inventoryQuantity) An aggregate of inventory across all locations. To adjust inventory at a specific location, use the [InventoryLevel](https://shopify.dev/docs/admin-api/rest/reference/inventory/inventorylevel) resource. *** old\_inventory\_quantity deprecated This property is deprecated. Use the [InventoryLevel](https://shopify.dev/docs/admin-api/rest/reference/inventory/inventorylevel) resource instead. *** {} ## The Product Variant resource ```json { "barcode": "1234_pink", "compare_at_price": "299.00", "created_at": "2012-08-24T14:01:47-04:00", "fulfillment_service": "manual", "grams": 567, "id": 808950810, "image_id": 434522, "inventory_item_id": 342916, "inventory_management": "shopify", "inventory_policy": "continue", "inventory_quantity": 10, "old_inventory_quantity": 5, "option": { "option1": "Pink" }, "presentment_prices": { "presentment_prices": [ { "price": { "currency_code": "USD", "amount": "199.99" }, "compare_at_price": { "currency_code": "USD", "amount": "249.99" } }, { "price": { "currency_code": "EUR", "amount": "158.95" }, "compare_at_price": { "currency_code": "EUR", "amount": "198.95" } }, { "price": { "currency_code": "GBP", "amount": "143.00" }, "compare_at_price": { "currency_code": "GBP", "amount": "179.00" } }, { "price": { "currency_code": "JPY", "amount": "22400" }, "compare_at_price": { "currency_code": "JPY", "amount": "28000" } } ] }, "position": 1, "price": "199.00", "product_id": 632910392, "requires_shipping": true, "sku": "IPOD2008PINK", "taxable": true, "tax_code": "DA040000", "title": "Pink", "updated_at": "2012-08-24T14:01:47-04:00", "weight": 100, "weight_unit": "oz" } ``` *** ## postCreate a new Product Variant [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate) [productCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate) [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) [productVariantsBulkCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) Creates a new product variant ### Parameters *** api\_version string required *** product\_id string required *** ### Examples Create a new product variant Path parameters product\_​id=​632910392 string required Create a new product variant with a metafield Path parameters product\_​id=​632910392 string required Create a new product variant with an image Path parameters product\_​id=​632910392 string required post ## /admin/api/2025-10/products/632910392/variants.​json ```bash curl -d '{"variant":{"option1":"Yellow","price":"1.00"}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` {} ## Response JSON ```json HTTP/1.1 201 Created { "variant": { "id": 1070325531, "product_id": 632910392, "title": "Yellow", "price": "1.00", "position": 5, "inventory_policy": "deny", "compare_at_price": null, "option1": "Yellow", "option2": null, "option3": null, "created_at": "2025-07-24T17:07:31-04:00", "updated_at": "2025-07-24T17:07:32-04:00", "taxable": true, "barcode": null, "fulfillment_service": "manual", "grams": 0, "inventory_management": "shopify", "requires_shipping": true, "sku": null, "weight": 0, "weight_unit": "lb", "inventory_item_id": 1070325471, "inventory_quantity": 0, "old_inventory_quantity": 0, "presentment_prices": [ { "price": { "amount": "1.00", "currency_code": "USD" }, "compare_at_price": null } ], "admin_graphql_api_id": "gid://shopify/ProductVariant/1070325531", "image_id": null } } ``` ### examples * #### Create a new product variant ##### ```curl curl -d '{"variant":{"option1":"Yellow","price":"1.00"}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const variant = new admin.rest.resources.Variant({session: session}); variant.product_id = 632910392; variant.option1 = "Yellow"; variant.price = "1.00"; await variant.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session variant = ShopifyAPI::Variant.new(session: test_session) variant.product_id = 632910392 variant.option1 = "Yellow" variant.price = "1.00" variant.save! ``` ##### ```node // Session is built by the OAuth process const variant = new shopify.rest.Variant({session: session}); variant.product_id = 632910392; variant.option1 = "Yellow"; variant.price = "1.00"; await variant.save({ update: true, }); ``` #### response ```json HTTP/1.1 201 Created{"variant":{"id":1070325531,"product_id":632910392,"title":"Yellow","price":"1.00","position":5,"inventory_policy":"deny","compare_at_price":null,"option1":"Yellow","option2":null,"option3":null,"created_at":"2025-07-24T17:07:31-04:00","updated_at":"2025-07-24T17:07:32-04:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":null,"weight":0.0,"weight_unit":"lb","inventory_item_id":1070325471,"inventory_quantity":0,"old_inventory_quantity":0,"presentment_prices":[{"price":{"amount":"1.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/1070325531","image_id":null}} ``` * #### Create a new product variant with a metafield ##### ```curl curl -d '{"variant":{"option1":"Blue","metafields":[{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const variant = new admin.rest.resources.Variant({session: session}); variant.product_id = 632910392; variant.option1 = "Blue"; variant.metafields = [ { "key": "new", "value": "newvalue", "type": "single_line_text_field", "namespace": "global" } ]; await variant.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session variant = ShopifyAPI::Variant.new(session: test_session) variant.product_id = 632910392 variant.option1 = "Blue" variant.metafields = [ { "key" => "new", "value" => "newvalue", "type" => "single_line_text_field", "namespace" => "global" } ] variant.save! ``` ##### ```node // Session is built by the OAuth process const variant = new shopify.rest.Variant({session: session}); variant.product_id = 632910392; variant.option1 = "Blue"; variant.metafields = [ { "key": "new", "value": "newvalue", "type": "single_line_text_field", "namespace": "global" } ]; await variant.save({ update: true, }); ``` #### response ```json HTTP/1.1 201 Created{"variant":{"id":1070325534,"product_id":632910392,"title":"Blue","price":"0.00","position":5,"inventory_policy":"deny","compare_at_price":null,"option1":"Blue","option2":null,"option3":null,"created_at":"2025-07-24T17:07:43-04:00","updated_at":"2025-07-24T17:07:43-04:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":null,"weight":0.0,"weight_unit":"lb","inventory_item_id":1070325474,"inventory_quantity":0,"old_inventory_quantity":0,"presentment_prices":[{"price":{"amount":"0.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/1070325534","image_id":null}} ``` * #### Create a new product variant with an image ##### ```curl curl -d '{"variant":{"image_id":850703190,"option1":"Purple"}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const variant = new admin.rest.resources.Variant({session: session}); variant.product_id = 632910392; variant.image_id = 850703190; variant.option1 = "Purple"; await variant.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session variant = ShopifyAPI::Variant.new(session: test_session) variant.product_id = 632910392 variant.image_id = 850703190 variant.option1 = "Purple" variant.save! ``` ##### ```node // Session is built by the OAuth process const variant = new shopify.rest.Variant({session: session}); variant.product_id = 632910392; variant.image_id = 850703190; variant.option1 = "Purple"; await variant.save({ update: true, }); ``` #### response ```json HTTP/1.1 201 Created{"variant":{"id":1070325532,"product_id":632910392,"title":"Purple","price":"0.00","position":5,"inventory_policy":"deny","compare_at_price":null,"option1":"Purple","option2":null,"option3":null,"created_at":"2025-07-24T17:07:36-04:00","updated_at":"2025-07-24T17:07:36-04:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":null,"weight":0.0,"weight_unit":"lb","inventory_item_id":1070325472,"inventory_quantity":0,"old_inventory_quantity":0,"presentment_prices":[{"price":{"amount":"0.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/1070325532","image_id":850703190}} ``` *** ## getRetrieves a list of product variants [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants) [productVariants](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants) Retrieves a list of product variants. **Note:** This endpoint implements pagination by using links that are provided in the response header. To learn more, refer to [Make paginated requests to the REST Admin API](https://shopify.dev/api/usage/pagination-rest). ### Parameters *** api\_version string required *** product\_id string required *** fields A comma-separated list of fields to include in the response *** limit ≤ 250 default 50 Return up to this many results per page *** presentment\_currencies Return presentment prices in only certain currencies, specified by a comma-separated list of [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency codes. *** since\_id Restrict results to after the specified ID *** ### Examples Retrieve all variants for a product Path parameters product\_​id=​632910392 string required Retrieve all variants for a product after a specified ID Path parameters product\_​id=​632910392 string required Query parameters since\_​id=​49148385 Restrict results to after the specified ID Retrieve all variants for a product with prices in specified presentment currencies Path parameters product\_​id=​632910392 string required Query parameters presentment\_​currencies=​USD,​CAD Return presentment prices in only certain currencies, specified by a comma-separated list of [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency codes. get ## /admin/api/2025-10/products/632910392/variants.​json ```bash curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "variants": [ { "id": 39072856, "product_id": 632910392, "title": "Green", "price": "199.00", "position": 3, "inventory_policy": "continue", "compare_at_price": null, "option1": "Green", "option2": null, "option3": null, "created_at": "2025-07-24T09:25:35-04:00", "updated_at": "2025-07-24T09:25:35-04:00", "taxable": true, "barcode": "1234_green", "fulfillment_service": "manual", "grams": 567, "inventory_management": "shopify", "requires_shipping": true, "sku": "IPOD2008GREEN", "weight": 1.25, "weight_unit": "lb", "inventory_item_id": 39072856, "inventory_quantity": 30, "old_inventory_quantity": 30, "presentment_prices": [ { "price": { "amount": "199.00", "currency_code": "USD" }, "compare_at_price": null } ``` ### examples * #### Retrieve all variants for a product ##### ```curl curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.Variant.all({ session: session, product_id: 632910392, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::Variant.all( session: test_session, product_id: 632910392, ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.Variant.all({ session: session, product_id: 632910392, }); ``` #### response ```json HTTP/1.1 200 OK{"variants":[{"id":39072856,"product_id":632910392,"title":"Green","price":"199.00","position":3,"inventory_policy":"continue","compare_at_price":null,"option1":"Green","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_green","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008GREEN","weight":1.25,"weight_unit":"lb","inventory_item_id":39072856,"inventory_quantity":30,"old_inventory_quantity":30,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/39072856","image_id":null},{"id":49148385,"product_id":632910392,"title":"Red","price":"199.00","position":2,"inventory_policy":"continue","compare_at_price":null,"option1":"Red","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_red","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008RED","weight":1.25,"weight_unit":"lb","inventory_item_id":49148385,"inventory_quantity":20,"old_inventory_quantity":20,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/49148385","image_id":null},{"id":457924702,"product_id":632910392,"title":"Black","price":"199.00","position":4,"inventory_policy":"continue","compare_at_price":null,"option1":"Black","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_black","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008BLACK","weight":1.25,"weight_unit":"lb","inventory_item_id":457924702,"inventory_quantity":40,"old_inventory_quantity":40,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/457924702","image_id":null},{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}]} ``` * #### Retrieve all variants for a product after a specified ID ##### ```curl curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants.json?since_id=49148385" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.Variant.all({ session: session, product_id: 632910392, since_id: "49148385", }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::Variant.all( session: test_session, product_id: 632910392, since_id: "49148385", ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.Variant.all({ session: session, product_id: 632910392, since_id: "49148385", }); ``` #### response ```json HTTP/1.1 200 OK{"variants":[{"id":457924702,"product_id":632910392,"title":"Black","price":"199.00","position":4,"inventory_policy":"continue","compare_at_price":null,"option1":"Black","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_black","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008BLACK","weight":1.25,"weight_unit":"lb","inventory_item_id":457924702,"inventory_quantity":40,"old_inventory_quantity":40,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/457924702","image_id":null},{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}]} ``` * #### Retrieve all variants for a product with prices in specified presentment currencies ##### ```curl curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants.json?presentment_currencies=USD%2CCAD" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.Variant.all({ session: session, product_id: 632910392, presentment_currencies: "USD,CAD", }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::Variant.all( session: test_session, product_id: 632910392, presentment_currencies: "USD,CAD", ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.Variant.all({ session: session, product_id: 632910392, presentment_currencies: "USD,CAD", }); ``` #### response ```json HTTP/1.1 200 OK{"variants":[{"id":39072856,"product_id":632910392,"title":"Green","price":"199.00","position":3,"inventory_policy":"continue","compare_at_price":"249.00","option1":"Green","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_green","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008GREEN","weight":1.25,"weight_unit":"lb","inventory_item_id":39072856,"inventory_quantity":30,"old_inventory_quantity":30,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":{"amount":"249.00","currency_code":"USD"}},{"price":{"amount":"249.00","currency_code":"CAD"},"compare_at_price":{"amount":"312.00","currency_code":"CAD"}}],"admin_graphql_api_id":"gid://shopify/ProductVariant/39072856","image_id":null},{"id":49148385,"product_id":632910392,"title":"Red","price":"199.00","position":2,"inventory_policy":"continue","compare_at_price":"249.00","option1":"Red","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_red","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008RED","weight":1.25,"weight_unit":"lb","inventory_item_id":49148385,"inventory_quantity":20,"old_inventory_quantity":20,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":{"amount":"249.00","currency_code":"USD"}},{"price":{"amount":"249.00","currency_code":"CAD"},"compare_at_price":{"amount":"312.00","currency_code":"CAD"}}],"admin_graphql_api_id":"gid://shopify/ProductVariant/49148385","image_id":null},{"id":457924702,"product_id":632910392,"title":"Black","price":"199.00","position":4,"inventory_policy":"continue","compare_at_price":"249.00","option1":"Black","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_black","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008BLACK","weight":1.25,"weight_unit":"lb","inventory_item_id":457924702,"inventory_quantity":40,"old_inventory_quantity":40,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":{"amount":"249.00","currency_code":"USD"}},{"price":{"amount":"249.00","currency_code":"CAD"},"compare_at_price":{"amount":"312.00","currency_code":"CAD"}}],"admin_graphql_api_id":"gid://shopify/ProductVariant/457924702","image_id":null},{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":"249.00","option1":"Pink","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":{"amount":"249.00","currency_code":"USD"}},{"price":{"amount":"249.00","currency_code":"CAD"},"compare_at_price":{"amount":"312.00","currency_code":"CAD"}}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}]} ``` *** ## getReceive a count of all Product Variants [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariantsCount?example=receive-a-count-of-all-product-variants) [productVariantsCount](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariantsCount?example=receive-a-count-of-all-product-variants) Retrieves a count of product variants ### Parameters *** api\_version string required *** product\_id string required *** ### Examples Retrieve a count all variants for a product Path parameters product\_​id=​632910392 string required get ## /admin/api/2025-10/products/632910392/variants/count.​json ```bash curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants/count.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "count": 4 } ``` ### examples * #### Retrieve a count all variants for a product ##### ```curl curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants/count.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.Variant.count({ session: session, product_id: 632910392, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::Variant.count( session: test_session, product_id: 632910392, ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.Variant.count({ session: session, product_id: 632910392, }); ``` #### response ```json HTTP/1.1 200 OK{"count":4} ``` *** ## getReceive a single Product Variant [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariant) [productVariant](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariant) Retrieves a single product variant by ID ### Parameters *** api\_version string required *** variant\_id string required *** fields A comma-separated list of fields to include in the response *** ### Examples Retrieve a product variant by ID Path parameters variant\_​id=​808950810 string required get ## /admin/api/2025-10/variants/808950810.​json ```bash curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "variant": { "id": 808950810, "product_id": 632910392, "title": "Pink", "price": "199.00", "position": 1, "inventory_policy": "continue", "compare_at_price": null, "option1": "Pink", "option2": null, "option3": null, "created_at": "2025-07-24T09:25:35-04:00", "updated_at": "2025-07-24T09:25:35-04:00", "taxable": true, "barcode": "1234_pink", "fulfillment_service": "manual", "grams": 567, "inventory_management": "shopify", "requires_shipping": true, "sku": "IPOD2008PINK", "weight": 1.25, "weight_unit": "lb", "inventory_item_id": 808950810, "inventory_quantity": 10, "old_inventory_quantity": 10, "presentment_prices": [ { "price": { "amount": "199.00", "currency_code": "USD" }, "compare_at_price": null } ], "tax_code": "DA040000", "admin_graphql_api_id": "gid://shopify/ProductVariant/808950810", "image_id": 562641783 } } ``` ### examples * #### Retrieve a product variant by ID ##### ```curl curl -X GET "https://your-development-store.myshopify.com/admin/api/2025-10/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.Variant.find({ session: session, id: 808950810, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::Variant.find( session: test_session, id: 808950810, ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.Variant.find({ session: session, id: 808950810, }); ``` #### response ```json HTTP/1.1 200 OK{"variant":{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"tax_code":"DA040000","admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}} ``` *** ## putModify an existing Product Variant [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) [productVariantsBulkUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) Updates an existing product variant ### Parameters *** api\_version string required *** variant\_id string required *** ### Examples Add a metafield to an existing variant Path parameters variant\_​id=​808950810 string required Add an existing image to an existing variant Path parameters variant\_​id=​808950810 string required Update the title and price of an existing variant Path parameters variant\_​id=​808950810 string required put ## /admin/api/2025-10/variants/808950810.​json ```bash curl -d '{"variant":{"id":808950810,"metafields":[{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2025-10/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` {} ## Response JSON ```json HTTP/1.1 200 OK { "variant": { "id": 808950810, "product_id": 632910392, "title": "Pink", "price": "199.00", "position": 1, "inventory_policy": "continue", "compare_at_price": null, "option1": "Pink", "option2": null, "option3": null, "created_at": "2025-07-24T09:25:35-04:00", "updated_at": "2025-07-24T09:25:35-04:00", "taxable": true, "barcode": "1234_pink", "fulfillment_service": "manual", "grams": 567, "inventory_management": "shopify", "requires_shipping": true, "sku": "IPOD2008PINK", "weight": 1.25, "weight_unit": "lb", "inventory_item_id": 808950810, "inventory_quantity": 10, "old_inventory_quantity": 10, "presentment_prices": [ { "price": { "amount": "199.00", "currency_code": "USD" }, "compare_at_price": null } ], "admin_graphql_api_id": "gid://shopify/ProductVariant/808950810", "image_id": 562641783 } } ``` ### examples * #### Add a metafield to an existing variant ##### ```curl curl -d '{"variant":{"id":808950810,"metafields":[{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2025-10/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const variant = new admin.rest.resources.Variant({session: session}); variant.id = 808950810; variant.metafields = [ { "key": "new", "value": "newvalue", "type": "single_line_text_field", "namespace": "global" } ]; await variant.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session variant = ShopifyAPI::Variant.new(session: test_session) variant.id = 808950810 variant.metafields = [ { "key" => "new", "value" => "newvalue", "type" => "single_line_text_field", "namespace" => "global" } ] variant.save! ``` ##### ```node // Session is built by the OAuth process const variant = new shopify.rest.Variant({session: session}); variant.id = 808950810; variant.metafields = [ { "key": "new", "value": "newvalue", "type": "single_line_text_field", "namespace": "global" } ]; await variant.save({ update: true, }); ``` #### response ```json HTTP/1.1 200 OK{"variant":{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T09:25:35-04:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}} ``` * #### Add an existing image to an existing variant ##### ```curl curl -d '{"variant":{"id":808950810,"image_id":562641783}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2025-10/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const variant = new admin.rest.resources.Variant({session: session}); variant.id = 808950810; variant.image_id = 562641783; await variant.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session variant = ShopifyAPI::Variant.new(session: test_session) variant.id = 808950810 variant.image_id = 562641783 variant.save! ``` ##### ```node // Session is built by the OAuth process const variant = new shopify.rest.Variant({session: session}); variant.id = 808950810; variant.image_id = 562641783; await variant.save({ update: true, }); ``` #### response ```json HTTP/1.1 200 OK{"variant":{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T17:07:41-04:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}} ``` * #### Update the title and price of an existing variant ##### ```curl curl -d '{"variant":{"id":808950810,"option1":"Not Pink","price":"99.00"}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2025-10/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json" ``` ##### ```remix const { admin, session } = await authenticate.admin(request); const variant = new admin.rest.resources.Variant({session: session}); variant.id = 808950810; variant.option1 = "Not Pink"; variant.price = "99.00"; await variant.save({ update: true, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session variant = ShopifyAPI::Variant.new(session: test_session) variant.id = 808950810 variant.option1 = "Not Pink" variant.price = "99.00" variant.save! ``` ##### ```node // Session is built by the OAuth process const variant = new shopify.rest.Variant({session: session}); variant.id = 808950810; variant.option1 = "Not Pink"; variant.price = "99.00"; await variant.save({ update: true, }); ``` #### response ```json HTTP/1.1 200 OK{"variant":{"id":808950810,"product_id":632910392,"title":"Not Pink","price":"99.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Not Pink","option2":null,"option3":null,"created_at":"2025-07-24T09:25:35-04:00","updated_at":"2025-07-24T17:07:44-04:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"99.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}} ``` *** ## delRemove an existing Product Variant [![](https://shopify.dev/images/logos/GraphQL.svg)![](https://shopify.dev/images/logos/GraphQL-dark.svg)](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete?example=remove-an-existing-product-variant) [productVariantsBulkDelete](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete?example=remove-an-existing-product-variant) ### Parameters *** api\_version string required *** product\_id string required *** variant\_id string required *** ### Examples Delete a product variant del ## /admin/api/2025-10/products/632910392/variants/808950810.​json ```bash curl -X DELETE "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` {} ## Response JSON ```json HTTP/1.1 200 OK {} ``` ### examples * #### Delete a product variant ##### ```curl curl -X DELETE "https://your-development-store.myshopify.com/admin/api/2025-10/products/632910392/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" ``` ##### ```remix await admin.rest.resources.Variant.delete({ session: session, product_id: 632910392, id: 808950810, }); ``` ##### ```ruby # Session is activated via Authentication test_session = ShopifyAPI::Context.active_session ShopifyAPI::Variant.delete( session: test_session, product_id: 632910392, id: 808950810, ) ``` ##### ```node // Session is built by the OAuth process await shopify.rest.Variant.delete({ session: session, product_id: 632910392, id: 808950810, }); ``` #### response ```json HTTP/1.1 200 OK{} ```