Skip to main content
POST
/
products
/
{id}
/
duplicate
Duplicate a product
curl --request POST \
  --url https://api.salesive.com/api/v1/products/{id}/duplicate \
  --header 'Authorization: Bearer <token>'
{
  "status": 201,
  "success": true,
  "message": "Duplicate a product",
  "data": {
    "_id": "66a1f9aae1b3a40012ab9999",
    "name": "Classic Tee (Copy)",
    "slug": "classic-tee-copy",
    "description": "Soft cotton t-shirt",
    "price": 19.99,
    "weight": 0.3,
    "quantity": 120,
    "category": "66a1f0aae1b3a40012ab1100",
    "images": [
      "https://cdn.salesive.com/p/classic-tee.jpg"
    ],
    "featured": true,
    "listed": true,
    "shop": "66a1eee0e1b3a40012ab0001",
    "createdAt": "2026-06-28T09:05:00.000Z",
    "updatedAt": "2026-06-28T09:05:00.000Z"
  }
}
Creates a copy of an existing product in the same store. The copy’s name is suffixed with “(Copy)” and a fresh slug, IDs and timestamps are generated. 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.

Path Parameters

id
string
required

ObjectId of the product to duplicate.

Response

Duplicate a product — success.

status
integer
required
Example:

201

success
boolean
required
Example:

true

message
string
required
Example:

"Duplicate a product"

data
object
required

An ecommerce catalog product.

Example:
{
  "_id": "66a1f9aae1b3a40012ab9999",
  "name": "Classic Tee (Copy)",
  "slug": "classic-tee-copy",
  "description": "Soft cotton t-shirt",
  "price": 19.99,
  "weight": 0.3,
  "quantity": 120,
  "category": "66a1f0aae1b3a40012ab1100",
  "images": [
    "https://cdn.salesive.com/p/classic-tee.jpg"
  ],
  "featured": true,
  "listed": true,
  "shop": "66a1eee0e1b3a40012ab0001",
  "createdAt": "2026-06-28T09:05:00.000Z",
  "updatedAt": "2026-06-28T09:05:00.000Z"
}