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.
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[]
coloroptional
string
indexrequired
number
materialTyperequired
string
usedGramsrequired
number
usedMetersrequired
number
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
}