List products
Returns a paginated list of products. Soft-deleted products are never returned. Each item includes variantsCount, totalInventory, primaryImage (its gallery's first image), and variants array.
query Parameters
categoryIdstatusvisibilitysearchlimitoffsetList products › Responses
List of products
Create product
Creates a product. SKU rules: simple products (hasVariants=false, the default) must include sku. Variant products (hasVariants=true) must omit sku here — set it on each variant instead. Returns the full product record including empty variants and images arrays.
Create product › Request Body
namepricedescriptiondescriptionFormathandlecompareAtPricecostPricetypehasVariantsskuinventorylowStockThresholdtrackInventorycategoryIdtagsvisibilitystatusshowInStorecollectionIdsshippingProfileIdmetaTitlemetaDescriptionCreate product › Responses
Product created
successList product images
Returns all images for a product ordered by position.
path Parameters
idProduct ID
Product ID
List product images › Responses
List of product images ordered by position
successSave product image
Attaches an uploaded image to a product by its Media Key. Upload it first: POST /api/media/uploads, send the file as the ticket says, then POST /api/media/uploads/{id}/complete.
path Parameters
idProduct ID
Product ID
Save product image › Request Body
mediaKeyA Media Key: the image's identity in the store's media. Never a URL.
altTextAlt text for accessibility
positionWhere it goes, 1 = first; the images from there move down one. Omitted or past the end: last
Save product image › Responses
Image record created
successReorder product images
Sets the display order of a product's images. Send the complete ordered array of image IDs — every existing image ID must be included exactly once. The server assigns position 1, 2, 3… based on the array order. Returns the full reordered image list.
path Parameters
idProduct ID
Product ID
Reorder product images › Request Body
imageIdsComplete ordered list of all image IDs for this product. All existing image IDs must be included — no duplicates, no omissions.
Reorder product images › Responses
Images reordered successfully. Returns updated image list in new order.
successDelete product image
Removes the image from the product; its file is deleted once nothing else shows it. Variants that showed the image are left without one.
path Parameters
idProduct ID
Product ID
imageIdImage ID
Image ID
Delete product image › Responses
Image deleted
successUpdate product status
Dedicated endpoint for status-only updates. Setting ACTIVE auto-sets publishedAt.
path Parameters
idProduct ID
Product ID
Update product status › Responses
Status updated. Returns full updated product record.
successGet product
Returns full product detail including category, variants, and images.
path Parameters
idProduct ID
Product ID
Get product › Responses
Product detail
successUpdate product
Partial update — only include fields you want to change. Setting status to ACTIVE auto-sets publishedAt. Send variantOptions: null to clear all variant options when converting a variant product to simple.
path Parameters
idProduct ID
Product ID
Update product › Request Body
namedescriptiondescriptionFormathandlepricecompareAtPricecostPricetypehasVariantsskuinventorylowStockThresholdtrackInventorycategoryIdtagsvisibilitystatusshowInStorecollectionIdsshippingProfileIdmetaTitlemetaDescriptionUpdate product › Responses
Product updated. Returns full updated product record.
successDelete product
Removes the product for good — even one that orders hold — and frees its handle and SKU. Its variants, images, reviews, stock history, offers and landing pages go with it, and its image files once nothing else shows them. Order lines that sold it keep what was sold (name, variant label, SKU, price) and lose only the link; orders a landing page of it brought lose only that attribution. GET /products/{id}/removal says all of it beforehand.
path Parameters
idProduct ID
Product ID
Delete product › Responses
Product deleted
successmessageWhat removing a product does
What DELETE /products/{id} would take with it and what stays — read before asking the merchant to confirm.
path Parameters
idProduct ID
Product ID
What removing a product does › Responses
The product's removal
successList product variants
Returns variants ordered by position, with parsed variations objects.
path Parameters
productIdProduct ID
Product ID
List product variants › Responses
List of variants ordered by position
successcountNumber of items returned
Create product variant
path Parameters
productIdProduct ID
Product ID
Create product variant › Request Body
priceskucompareAtPricebarcodeinventorylowStockThresholdweightKgimageIdisDefaultactivepositionCreate product variant › Responses
Variant created
successGet product variant
path Parameters
productIdProduct ID
Product ID
variantIdVariant ID
Variant ID
Get product variant › Responses
Variant detail
successUpdate product variant
Partial update — only include fields you want to change.
path Parameters
productIdProduct ID
Product ID
variantIdVariant ID
Variant ID
Update product variant › Request Body
pricecompareAtPriceskubarcodeinventorylowStockThresholdweightKgimageIdisDefaultactivepositionUpdate product variant › Responses
Variant updated
successDelete product variant
Permanently deletes the variant. Any order line items referencing this variant will have their variantId set to null — order history is fully preserved.
path Parameters
productIdProduct ID
Product ID
variantIdVariant ID
Variant ID
Delete product variant › Responses
Variant deleted
successGet a product's translations
The translatable fields in the store's primary language and every stored translation, each flagged outdated when its source text changed after it was written.
path Parameters
idGet a product's translations › Responses
Source and translations
successTranslate a product into one language
A JSON Merge Patch (RFC 7396) of one language: a string sets a field, null removes its translation, other fields are untouched. The language must be one the store has added, and not its primary — the resource's own fields hold that.
path Parameters
idTranslate a product into one language › Request Body
localeTranslate a product into one language › Responses
Source and translations after the patch
success