Skip to main content
PUT
Update Product

Update Product

Updates an existing product. Only include the fields you want to update.

Request

Path Parameters

id
string
required
The product ID. Accepts either the product UUID or the numeric product id.

Body Parameters

All body parameters are optional. Only include the fields you want to update. Any field not listed below is ignored.
title
string
The product title.
body_html
string
Product description (supports HTML).
handle
string
URL-safe handle.
status
string
Product status: active, draft, or archived.
tags
array
Array of tags (replaces existing tags).
variants
array
Array of variants. On update, only the first entry’s pricing and stock are applied — they are mirrored onto the product-level price/stock columns. Existing variant rows are not modified, and additional entries are ignored.

Response

Returns the updated product as a bare product object (Shopify-compatible shape). Money values are returned as decimal strings, id is the numeric product id, and product_id is the product UUID. The vendor and product_type fields are derived from the product’s category, not from the request body.

Example Response

Error Response

Errors are returned as a Shopify-style errors object:

Error Codes

StatusDescription
401Invalid or missing access token
403App doesn’t have the write_products scope
404Product with the specified ID does not exist
400Invalid request body