Printago API
GET /v1/parts/{partId}/preslice

Get a part's pre-slice results

The pre-slice results for a part: one entry per printer group in the farm, plus whether they still describe the current part and printer configuration. Staleness is answered here rather than by re-estimating every part whenever a printer changes.

Requires: part.view

Path Parameters

partId required
string
Part ID

Response Schema

GetPartPresliceResult
preslicerequirednullable
object
A pre-slice run: the part sliced once per distinct printer configuration in the farm. Stored on `part_metadata.preslice`; `slicing_estimate` keeps the rolled-up average so existing consumers are unaffected.
completedAtoptional
string
groupsrequired
object[]
estimatedPrintTimeSecondsoptional
number
filamentsoptional
object[]
filamentProfileIdrequired
string
filamentProfileNamerequirednullable
string
indexrequired
number
materialNamerequired
string
qualityrequired
"type" | "exact" | "vendor-type"
typeexactvendor-type
substitutedrequired
boolean
The matcher fell back to something other than the material the part names.
keyrequired
string
Stable identity of the printer group: model + machine/process/filament profiles.
materialsoptional
object[]
coloroptional
string
indexrequired
number
materialTyperequired
string
usedGramsrequired
number
usedMetersrequired
number
nozzleDiameterrequirednullable
string
pendingPlateIdsoptional
number[]
Plate ids still waiting on a slicer callback. Empty once the group is done.
platesoptional
object[]
estimatedPrintTimeSecondsrequired
number
materialsrequired
object[]
plateIdrequired
number
totalWeightGramsrequired
number
printerCountrequired
number
How many printers in the farm this row stands for — the weight of the average.
printerModelNamerequired
string
reasonoptional
string
reasonCodeoptional
"material-mismatch" | "profile-missing" | "no-compatible-material" | "slicer-error" | "profile-error"
material-mismatchprofile-missingno-compatible-materialslicer-errorprofile-error
slicerVersionoptional
string
statusrequired
"running" | "pending" | "failed" | "no-compatible-material" | "complete"
runningpendingfailedno-compatible-materialcomplete
totalWeightGramsoptional
number
vendorNamerequirednullable
string
inputHashrequired
string
File hashes + resolved profile ids + material selection. Re-runs skip when it matches.
parametricSourceoptional
object
The default-parameter render a parametric part is pre-sliced from.
hashrequired
string
File hashes + parameter values the render describes.
urisrequired
string[]
runIdrequired
string
sourcerequired
"file" | "parametric-defaults"
'parametric-defaults' when the geometry came from a build at default parameters.
fileparametric-defaults
sourceUrisoptional
string[]
The files that were actually sliced, when they are not the part's own — the mesh a parametric part was rendered to at its default parameters.
startedAtrequired
string
statusrequired
"running" | "pending" | "failed" | "complete"
runningpendingfailedcomplete
stalerequired
boolean
True when the results no longer describe the current part/printer set.

Example Response

200 OK — application/json
{
  "preslice": {
    "runId": "string",
    "inputHash": "string",
    "status": "running",
    "source": "file",
    "startedAt": "string",
    "completedAt": "string",
    "groups": [
      {
        "key": "string",
        "printerModelName": "string",
        "vendorName": "string",
        "nozzleDiameter": "string",
        "printerCount": 1,
        "status": "running",
        "reasonCode": "material-mismatch",
        "reason": "string",
        "filaments": [
          {
            "index": 1,
            "materialName": "string",
            "filamentProfileId": "string",
            "filamentProfileName": "string",
            "quality": "type",
            "substituted": true
          }
        ],
        "estimatedPrintTimeSeconds": 1,
        "totalWeightGrams": 1,
        "materials": [
          {
            "index": 1,
            "usedGrams": 1,
            "usedMeters": 1,
            "materialType": "string",
            "color": "string"
          }
        ],
        "plates": [
          {
            "plateId": 1,
            "estimatedPrintTimeSeconds": 1,
            "materials": [
              {
                "index": 1,
                "usedGrams": 1,
                "usedMeters": 1,
                "materialType": "string",
                "color": "string"
              }
            ],
            "totalWeightGrams": 1
          }
        ],
        "pendingPlateIds": [
          1
        ],
        "slicerVersion": "string"
      }
    ],
    "sourceUris": [
      "string"
    ],
    "parametricSource": {
      "hash": "string",
      "uris": [
        "string"
      ]
    }
  },
  "stale": true
}