Skip to main content
POST
Create a product

Authorizations

x-access-token
string
header
required

JWT minted from a merchant API key (mk_live_…) by POST /authenticate. Send the token value directly, with no "Bearer" prefix. Tokens last 14 days and can be renewed at POST /refresh-token; revoking the key refuses the next request made with any token minted from it.

Body

application/json
title
string
required

Product title

Required string length: 1 - 255
Example:

"Widget Pro Deluxe"

vendorId
string
required

Vendor ObjectId

Example:

"507f1f77bcf86cd799439011"

descriptionHtml
string

Product description in HTML

Example:

"<p>Premium widget with advanced features</p>"

productType
string

Product type/category

Maximum string length: 255
Example:

"Widgets"

tags
string[]

Product tags

Maximum array length: 250
Maximum string length: 255
Example:
status
enum<string>

Product status

Available options:
ACTIVE,
DRAFT,
ARCHIVED
Example:

"DRAFT"

handle
string

URL-friendly product handle

Maximum string length: 255
Example:

"widget-pro-deluxe"

options
object[]

Product options (e.g., Color, Size)

Maximum array length: 3
variants
object[]

Product variants

Maximum array length: 100
metafields
object[]

Custom metafields

seo
object

SEO settings

category
string

Product category/collection

Example:

"Electronics"

templateSuffix
string

Custom template suffix

images
object[]

Product images (replaces existing on update)

Maximum array length: 250
medias
object[]

Digital files for download after purchase. On update, omit to keep existing files.

Maximum array length: 250
vendor
string

Vendor display name on the Shopify product

brandName
string

Brand name

collections
string[]

Shopify collection ids to add the new product to.

Maximum array length: 250
Minimum string length: 1
isDigital
boolean

Marks the product as a digital product (use with medias)

Response

Created

success
enum<boolean>
Available options:
true
data
object