Printago API
POST /v1/sku-variants/prop-values

Create multiple property values

Set what a variant property resolves to for specific option values. Send any number of entries in values. Each one ties a property (propertyId) to an option value (optionValueId) and carries the setting that matches the property's type:

  • materialValue for material properties: a list of material specs in order of preference, each { "variantId" }, { "materialId" }, { "groupId" } or { "materialType" }.
  • textValue for text properties.
  • plateQuantitiesValue for plate_quantities properties: copies to print per 3MF plate, keyed by plate name as it appears in the part's metadata.plates. Plates not listed get 0.

For a property that combines options (it has bindingId2 or bindingId3), also set optionValueId2 and optionValueId3 to the values of the other options. When a build or order selects values, the entry that matches the most selected values wins. If no entry matches, a bound text parameter is set to an empty string and a material channel keeps the part's own material assignment.

Requires: sku.edit

Request Body

- Bulk create request with property values

BulkCreatePropertyValuesRequest
valuesrequired
object[]
materialValueoptionalnullable
object[]
optionValueIdrequired
string
Value from bindingId's option (always required)
pattern: ^[a-z0-9]{24}$
optionValueId2optionalnullable
string
Value from bindingId2's option (required if property has bindingId2)
pattern: ^[a-z0-9]{24}$
optionValueId3optionalnullable
string
Value from bindingId3's option (required if property has bindingId3)
pattern: ^[a-z0-9]{24}$
plateQuantitiesValueoptionalnullable
Record<string, number>
Construct a type with a set of properties K of type T
propertyIdrequired
string
pattern: ^[a-z0-9]{24}$
textValueoptionalnullable
string

Example Request

application/json
{
  "values": [
    {
      "optionValueId": "string",
      "optionValueId2": "string",
      "optionValueId3": "string",
      "propertyId": "string",
      "textValue": "string",
      "materialValue": [
        {
          "groupId": "string"
        }
      ],
      "plateQuantitiesValue": {}
    }
  ]
}

Examples

Map two colors to filaments

Request
{
  "values": [
    {
      "propertyId": "f1l4m7n0t3p6r9q2w5e8r1t4",
      "optionValueId": "r3e7d1v5a9l2u6e0q4w8e3r7",
      "materialValue": [
        {
          "variantId": "m6a0t4v8a2r5i9a3n7t1j2w4"
        }
      ]
    },
    {
      "propertyId": "f1l4m7n0t3p6r9q2w5e8r1t4",
      "optionValueId": "b4l8u2e6v0a3l7u1e5q9w3e8",
      "materialValue": [
        {
          "variantId": "m2b6l0u4e8v1a5r9i3a7n2t6"
        }
      ]
    }
  ]
}
Response
[
  {
    "id": "q8p2v6a0l4u7e1s5d9f3g7h1",
    "storeId": "k3m9x2p7q8r4t6v1w5y0z3a2",
    "propertyId": "f1l4m7n0t3p6r9q2w5e8r1t4",
    "optionValueId": "r3e7d1v5a9l2u6e0q4w8e3r7",
    "optionValueId2": null,
    "optionValueId3": null,
    "textValue": null,
    "materialValue": [
      {
        "variantId": "m6a0t4v8a2r5i9a3n7t1j2w4"
      }
    ],
    "plateQuantitiesValue": null,
    "createdAt": "2026-09-23T16:29:05.371Z",
    "updatedAt": "2026-09-23T16:29:05.371Z"
  },
  {
    "id": "q3w7e1r5t9y2u6i0o4p8a1s5",
    "storeId": "k3m9x2p7q8r4t6v1w5y0z3a2",
    "propertyId": "f1l4m7n0t3p6r9q2w5e8r1t4",
    "optionValueId": "b4l8u2e6v0a3l7u1e5q9w3e8",
    "optionValueId2": null,
    "optionValueId3": null,
    "textValue": null,
    "materialValue": [
      {
        "variantId": "m2b6l0u4e8v1a5r9i3a7n2t6"
      }
    ],
    "plateQuantitiesValue": null,
    "createdAt": "2026-09-23T16:29:05.371Z",
    "updatedAt": "2026-09-23T16:29:05.371Z"
  }
]

Response Schema

SkuOptionPropertyValue[]
Array of SkuOptionPropertyValue, each with:
createdAtrequired
string
format: date-time
idrequired
string
pattern: ^[a-z0-9]{24}$
materialValueoptionalnullable
object[]
optionValueIdrequired
string
pattern: ^[a-z0-9]{24}$
optionValueId2optionalnullable
string
pattern: ^[a-z0-9]{24}$
optionValueId3optionalnullable
string
pattern: ^[a-z0-9]{24}$
plateQuantitiesValueoptionalnullable
Record<string, number>
Construct a type with a set of properties K of type T
propertyIdrequired
string
pattern: ^[a-z0-9]{24}$
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
textValueoptionalnullable
string
updatedAtrequired
string
format: date-time

Example Response

201 OK — application/json
[
  {
    "propertyId": "string",
    "optionValueId": "string",
    "optionValueId2": "string",
    "optionValueId3": "string",
    "textValue": "string",
    "materialValue": [
      {
        "groupId": "string"
      }
    ],
    "plateQuantitiesValue": {},
    "id": "string",
    "storeId": "string",
    "createdAt": "2025-01-15T12:00:00.000Z",
    "updatedAt": "2025-01-15T12:00:00.000Z"
  }
]