Printago API
POST
/v1/skus/{id}/duplicate
Duplicate a SKU
Creates a copy of an existing SKU under a new, unique SKU code. The copy carries the linked parts, variant options, cost entries and description of the original.
Path Parameters
id
required
string
The unique identifier of the SKU to copy
Request Body
The new SKU code, and optionally a title, folder and which parts of the original to carry over
SkuDuplicateRequest
folderIdoptionalnullable
string
pattern: ^[a-z0-9]{24}$
includeCostEntriesoptional
boolean
includeDescriptionoptional
boolean
includeLinkedPartsoptional
boolean
includeVariantOptionsoptional
boolean
skurequired
string
titleoptional
string
Example Request
application/json
{
"sku": "string",
"title": "string",
"folderId": "string",
"includeLinkedParts": true,
"includeVariantOptions": true,
"includeCostEntries": true,
"includeDescription": true
}
Response Schema
SkuLinkedPartsRelation
createdAtrequired
string
format: date-time
customMetadataoptional
Record<string, any>
Construct a type with a set of properties K of type T
descriptionrequired
string
externalIdrequirednullable
string
externalProviderrequirednullable
"etsy" | "shopify"
etsyshopify
folderIdoptionalnullable
string
pattern: ^[a-z0-9]{24}$
idrequired
string
pattern: ^[a-z0-9]{24}$
linkedPartsrequired
object[]
createdAtrequired
string
format: date-time
exposedParametersrequired
string[]
extensionsoptionalnullable
object
3mfoptional
object
plateLabelsoptional
Record<string, string>
plateQuantitiesrequired
Record<string, number>
skipObjectsoptional
Record<string, string[]>
Construct a type with a set of properties K of type T
idrequired
string
pattern: ^[a-z0-9]{24}$
labelrequired
string
materialAssignmentsoptionalnullable
Record<string, object[]>
Construct a type with a set of properties K of type T
parameterBindingsoptionalnullable
Record<string, string>
Construct a type with a set of properties K of type T
parametersrequired
object[]
namerequired
string
typerequired
"number" | "string" | "boolean" | "file"
numberstringbooleanfile
valueoptional
number | string | boolean
partIdrequired
string
pattern: ^[a-z0-9]{24}$
plateQuantitiesBindingoptionalnullable
string
quantityrequired
number
min: 0max: 500
sequenceBindingsoptionalnullable
Record<string, string>
Construct a type with a set of properties K of type T
skuIdrequired
string
pattern: ^[a-z0-9]{24}$
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time
skurequired
string
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
titlerequired
string
totalCogsrequired
number
updatedAtrequired
string
format: date-time
Example Response
201 OK — application/json
{
"sku": "string",
"title": "string",
"description": "string",
"externalId": "string",
"externalProvider": "etsy",
"folderId": "string",
"totalCogs": 1,
"customMetadata": {},
"id": "string",
"storeId": "string",
"createdAt": "2025-01-15T12:00:00.000Z",
"updatedAt": "2025-01-15T12:00:00.000Z",
"linkedParts": [
{
"skuId": "string",
"partId": "string",
"parameters": [
{
"name": "string",
"type": "number",
"value": 1
}
],
"quantity": 0,
"label": "string",
"exposedParameters": [
"string"
],
"materialAssignments": {},
"extensions": {
"3mf": {
"skipObjects": {},
"plateQuantities": {},
"plateLabels": {}
}
},
"parameterBindings": {},
"sequenceBindings": {},
"plateQuantitiesBinding": "string",
"id": "string",
"storeId": "string",
"createdAt": "2025-01-15T12:00:00.000Z",
"updatedAt": "2025-01-15T12:00:00.000Z"
}
]
}