Printago API
POST /v1/materials/variants

Create variant

Create a new material variant (e.g., "Bambu PLA Basic - Red") Variant names are unique per material, ignoring case and surrounding whitespace. Reusing an existing variant's name returns 409 Conflict.

Requires: material.create

Request Body

Variant data including material type and color

MaterialVariantInsert
colorrequired
string
customMetadataoptional
Record<string, any>
Construct a type with a set of properties K of type T
externalIdoptional
string
filamentSystemProfileIdrequired
number
filamentUserProfileIdrequired
string
materialIdrequired
string
pattern: ^[a-z0-9]{24}$
namerequired
string
pressureAdvanceoptional
number
pricePer1000goptional
number
sourceoptional
string
tagsrequired
string[]

Example Request

application/json
{
  "name": "string",
  "customMetadata": {},
  "tags": [
    "string"
  ],
  "materialId": "string"
}

Response Schema

MaterialVariant
colorrequired
string
createdAtrequired
string
format: date-time
customMetadataoptional
Record<string, any>
Construct a type with a set of properties K of type T
externalIdoptional
string
filamentSystemProfileIdrequired
number
filamentUserProfileIdrequired
string
idrequired
string
pattern: ^[a-z0-9]{24}$
materialIdrequired
string
pattern: ^[a-z0-9]{24}$
namerequired
string
pressureAdvanceoptional
number
pricePer1000goptional
number
sourceoptional
string
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
tagsrequired
string[]
updatedAtrequired
string
format: date-time

Example Response

201 OK — application/json
{
  "name": "string",
  "materialId": "string",
  "tags": [
    "string"
  ],
  "customMetadata": {},
  "id": "string",
  "storeId": "string",
  "createdAt": "2026-09-09T20:31:46.711Z",
  "updatedAt": "2026-09-09T20:31:46.711Z"
}