Skip to main content
POST
/
products
Create a product
curl --request POST \
  --url https://api.salesive.com/api/v1/products \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Classic Tee",
  "description": "Soft cotton t-shirt",
  "price": 19.99,
  "weight": 0.3,
  "category": "66a1f0aae1b3a40012ab1100",
  "quantity": 120,
  "promoPrice": 14.99,
  "images": [
    "https://cdn.salesive.com/p/classic-tee.jpg"
  ],
  "featured": true,
  "listed": true,
  "lowStockAlert": 10,
  "barcode": "0123456789012"
}
'
{
  "status": 201,
  "success": true,
  "message": "Create a product",
  "data": {
    "_id": "66a1f2c4e1b3a40012ab34cd",
    "name": "Classic Tee",
    "slug": "classic-tee",
    "description": "Soft cotton t-shirt",
    "price": 19.99,
    "promoPrice": 14.99,
    "weight": 0.3,
    "quantity": 120,
    "category": "66a1f0aae1b3a40012ab1100",
    "images": [
      "https://cdn.salesive.com/p/classic-tee.jpg"
    ],
    "featured": true,
    "listed": true,
    "hasVariants": false,
    "variants": [],
    "lowStockAlert": 10,
    "barcode": "0123456789012",
    "shop": "66a1eee0e1b3a40012ab0001",
    "createdAt": "2026-06-28T09:00:00.000Z",
    "updatedAt": "2026-06-28T09:00:00.000Z"
  }
}
Creates a product in the store. The shop and owning user are set server-side from the installation and must not be supplied. Requires the WRITE_INVENTORY scope.

Authorizations

Authorization
string
header
required

Installed-app access token (prefix app_), issued by the OAuth install flow. The store is bound to the token server-side — never send a shop id.

Body

application/json
name
string
required

Product name.

description
string
required

Product description.

price
number
required

Base price (>= 0).

weight
number
required

Weight (>= 0).

category
string
required

Category ObjectId.

quantity
integer

Stock quantity (>= 0).

promoPrice
number | null

Sale/promotional price (>= 0); nullable.

images
string[]

Array of image URLs.

video
string | null

Video URL; nullable.

Whether the product is featured. Default false.

listed
boolean

Whether the product is listed in the storefront. Default true.

variants
object[] | null

Product variants. Each: attributes (object of string->string, required), price (number, required), promoPrice (number, nullable), quantity (integer), weight (number), sku (string).

lowStockAlert
number

Threshold at which the product is flagged low-stock (>= 0).

barcode
string | null

Product barcode; nullable.

Response

Create a product — success.

status
integer
required
Example:

201

success
boolean
required
Example:

true

message
string
required
Example:

"Create a product"

data
object
required

An ecommerce catalog product.

Example:
{
"_id": "66a1f2c4e1b3a40012ab34cd",
"name": "Classic Tee",
"slug": "classic-tee",
"description": "Soft cotton t-shirt",
"price": 19.99,
"promoPrice": 14.99,
"weight": 0.3,
"quantity": 120,
"category": "66a1f0aae1b3a40012ab1100",
"images": [
"https://cdn.salesive.com/p/classic-tee.jpg"
],
"featured": true,
"listed": true,
"hasVariants": false,
"variants": [],
"lowStockAlert": 10,
"barcode": "0123456789012",
"shop": "66a1eee0e1b3a40012ab0001",
"createdAt": "2026-06-28T09:00:00.000Z",
"updatedAt": "2026-06-28T09:00:00.000Z"
}