Printago API
POST /v1/materials/profiles/copy

Copy material profiles

Copy one material's slicing profiles onto others of the same filament type Every printer model and nozzle the source material has a profile for is written onto each target. A profile a target's printer model cannot use is skipped and named back, and a model the target already has a profile for is left alone unless `replaceExisting` is set. A target the write fails for is named in `failed`, and the other targets still get their profiles.

Requires: material.edit

Request Body

The source material, the materials to copy onto, and whether to overwrite

CopyMaterialProfilesRequest
fromMaterialIdrequired
string
The material whose profile assignments are read.
pattern: ^[a-z0-9]{24}$
replaceExistingoptional
boolean
Overwrite a printer model that already has a profile.
toMaterialIdsrequired
string[]
The materials the assignments are written onto.

Example Request

application/json
{
  "fromMaterialId": "string",
  "toMaterialIds": [
    "string"
  ],
  "replaceExisting": true
}

Response Schema

CopyMaterialProfilesResponse
failedrequired
object[]
materialIdrequired
string
pattern: ^[a-z0-9]{24}$
messagerequired
string
What went wrong, in a sentence a person can read.
resultsrequired
object[]
keptrequired
object[]
modelIdrequired
string
nozzleDiameterrequired
string
materialIdrequired
string
pattern: ^[a-z0-9]{24}$
replacedrequired
object[]
modelIdrequired
string
nozzleDiameterrequired
string
setrequired
object[]
modelIdrequired
string
nozzleDiameterrequired
string
profileNamerequired
string
systemProfileIdrequirednullable
number
userProfileIdrequirednullable
string
skippedrequired
object[]
modelIdrequired
string
nozzleDiameterrequired
string
reasonrequired
"incompatible" | "profile_missing"
incompatibleprofile_missing
sourceAssignmentsrequired
number
How many printer model and nozzle pairs the source has a profile for.

Example Response

201 OK — application/json
{
  "sourceAssignments": 1,
  "results": [
    {
      "materialId": "string",
      "set": [
        {
          "modelId": "string",
          "nozzleDiameter": "string",
          "userProfileId": "string",
          "systemProfileId": 1,
          "profileName": "string"
        }
      ],
      "replaced": [
        {
          "modelId": "string",
          "nozzleDiameter": "string"
        }
      ],
      "kept": [
        {
          "modelId": "string",
          "nozzleDiameter": "string"
        }
      ],
      "skipped": [
        {
          "modelId": "string",
          "nozzleDiameter": "string",
          "reason": "incompatible"
        }
      ]
    }
  ],
  "failed": [
    {
      "materialId": "string",
      "message": "string"
    }
  ]
}