/v1/sku-variants/props
Create a new variant property
Create a variant property: something an option's value controls on the print. Each property has a type:
type |
Set per option value as | Used by a linked part through |
|---|---|---|
material |
materialValue: material specs |
a materialAssignments entry { "propertyId": "<property ID>" } |
text |
textValue: a string |
parameterBindings: { "<parameter name>": "<property ID>" } |
plate_quantities |
plateQuantitiesValue: copies per 3MF plate |
plateQuantitiesBinding: "<property ID>" |
Leave bindingId unset for a global property that every SKU bound to the option shares. Set bindingId to a SKU's binding ID (from POST /v1/sku-variants/bindings) to make the property local to that SKU. For a property that depends on a combination of options, such as a material chosen by both Color and Finish, also set bindingId2 (and bindingId3) to the bindings of the other options.
After creating a property, set its value for each option value with POST /v1/sku-variants/prop-values.
Request Body
- Variant property data
null (or omitted) for a global property. A SKU binding ID to scope the property to that SKU.
The option whose values set this property.
material, text or plate_quantities. Decides which field of a property value is used and how linked parts reference the property.
Example Request
{
"optionId": "string",
"bindingId": "string",
"bindingId2": "string",
"bindingId3": "string",
"name": "string",
"type": "text"
}
Examples
Create a Filament property on Color
{
"optionId": "v2a6r0i4a8n1t5c9o3l7o2r6",
"name": "Filament",
"type": "material"
}
{
"id": "f1l4m7n0t3p6r9q2w5e8r1t4",
"storeId": "k3m9x2p7q8r4t6v1w5y0z3a2",
"optionId": "v2a6r0i4a8n1t5c9o3l7o2r6",
"bindingId": null,
"bindingId2": null,
"bindingId3": null,
"name": "Filament",
"type": "material",
"order": 0,
"createdAt": "2026-09-23T16:26:48.213Z",
"updatedAt": "2026-09-23T16:26:48.213Z"
}
Response Schema
null (or omitted) for a global property. A SKU binding ID to scope the property to that SKU.
The option whose values set this property.
material, text or plate_quantities. Decides which field of a property value is used and how linked parts reference the property.
Example Response
{
"optionId": "string",
"bindingId": "string",
"bindingId2": "string",
"bindingId3": "string",
"name": "string",
"type": "text",
"order": 1,
"id": "string",
"storeId": "string",
"createdAt": "2025-01-15T12:00:00.000Z",
"updatedAt": "2025-01-15T12:00:00.000Z"
}