Skip to main content
POST
/
admin
/
products
curl -X POST 'http://localhost:9000/admin/products' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Linen Shirt",
    "seller_ids": ["sel_01HXYZABCDEF"],
    "options": [{ "title": "Size", "values": ["S", "M"] }],
    "variants": [
      { "title": "S", "sku": "LS-S", "options": { "Size": "S" } },
      { "title": "M", "sku": "LS-M", "options": { "Size": "M" } }
    ],
    "attributes": [{ "title": "Material", "type": "single_select", "values": ["Linen"] }]
  }'
{
  "product": {
    "id": "prod_01HXYZABCDEF",
    "title": "Linen Shirt",
    "handle": "linen-shirt",
    "status": "draft",
    "variants": [
      { "id": "variant_01HXYZABCDEF", "title": "S", "sku": "LS-S" },
      { "id": "variant_01HXYZABCDEG", "title": "M", "sku": "LS-M" }
    ]
  }
}
Creates a shared master product that sellers can be made eligible to sell.
Pass seller_ids to set which sellers may sell the product. The attributes array accepts a unified input: reference an existing catalog attribute by id, or create an inline product-scoped attribute by title.

Body parameters

title
string
required
Product title.
subtitle
string
Product subtitle.
description
string
Product description.
handle
string
Unique URL-safe handle, generated from the title if omitted.
status
string
One of draft, proposed, published, rejected.
is_giftcard
boolean
default:"false"
Whether the product is a gift card.
discountable
boolean
default:"true"
Whether discounts can apply to the product.
thumbnail
string
URL of the product thumbnail.
images
object[]
Product images.
external_id
string
ID of the product in an external system.
type_id
string
ID of the product type.
collection_id
string
ID of the collection to assign the product to.
seller_ids
string[]
IDs of sellers eligible to sell the product.
categories
object[]
Categories to assign the product to.
tags
object[]
Tags to assign to the product.
options
object[]
Product options used to build variants.
attributes
object[]
Unified attribute input — one of two shapes per item.
variants
object[]
Product variants.
weight
number
Product weight.
length
number
Product length.
height
number
Product height.
width
number
Product width.
hs_code
string
Harmonized System code.
mid_code
string
Manufacturer identification code.
origin_country
string
Country of origin.
material
string
Product material.
metadata
object
Custom key-value data.
additional_data
object
Custom data passed to workflow hooks.

Response

product
object
curl -X POST 'http://localhost:9000/admin/products' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Linen Shirt",
    "seller_ids": ["sel_01HXYZABCDEF"],
    "options": [{ "title": "Size", "values": ["S", "M"] }],
    "variants": [
      { "title": "S", "sku": "LS-S", "options": { "Size": "S" } },
      { "title": "M", "sku": "LS-M", "options": { "Size": "M" } }
    ],
    "attributes": [{ "title": "Material", "type": "single_select", "values": ["Linen"] }]
  }'
{
  "product": {
    "id": "prod_01HXYZABCDEF",
    "title": "Linen Shirt",
    "handle": "linen-shirt",
    "status": "draft",
    "variants": [
      { "id": "variant_01HXYZABCDEF", "title": "S", "sku": "LS-S" },
      { "id": "variant_01HXYZABCDEG", "title": "M", "sku": "LS-M" }
    ]
  }
}