Skip to content

Product fields

Fields for a product sent through the Product API.

Required fields

Field Type Notes
external_id text, 1–255 Your own stable id or SKU. Never change it, or you get copies.
title text, up to 500 What the shopper sees on the card.
url http(s) address, up to 2048 The page the card links to.

Optional fields

Field Type Notes
description text, up to 20,000 Used for matching.
brand text, up to 255
product_type text, up to 255 e.g. "Running shoes"
tags list of text, up to 100 Each tag is cut to 100 characters.
price_min decimal as text, not negative e.g. "2850.00". Two decimals.
price_max decimal as text, not negative Same as price_min for one price. Never below it.
compare_at_min, compare_at_max decimal as text The old, higher price, shown struck through.
source_modified_at ISO 8601 Your last-modified time. Older pushes never overwrite newer data.
currency 3 letters e.g. BDT, USD. Lower case is accepted.
in_stock true/false true if you leave it out.
inventory whole number, not negative
variants list of objects, up to 500 {id, sku, size, color, price, compare_at_price, inventory, available}. See Variants.
images list of http(s) addresses, up to 30 We link to them; we don't copy the files.

Breaking a limit refuses the whole request with 422. See Product API.

Variants

Field Notes
id Numeric variant id, used by add to cart. A Shopify gid://…/123 works. Non-numeric ids are ignored.
sku Optional.
size, color What the shopper picks. colour is read too.
price Text, 0 to 100,000,000.
compare_at_price Optional. The old, higher price. compareAtPrice is read too.
inventory Units left. 0 or less means sold out.
available false marks the variant sold out whatever inventory says.
selectedOptions Optional [{name, value}] for other choices such as Fit, Material or Weight.

A card shows up to 100 choices.

Still need help?

Tell us what you were trying to do and we will help you sort it out.

Contact support