Printago API
POST
/v1/parts/extract-3mf-metadata
Extract 3MF metadata from a staged upload
Read plate and material metadata from a staged 3MF upload without creating a part. Accepts the `uploads:` path returned by signed-upload-urls.
Request Body
The staged upload to inspect
Extract3MFMetadataRequest
fileUrirequired
string
An `uploads:`-prefixed staging path returned by signed-upload-urls
Example Request
application/json
{
"fileUri": "string"
}
Response Schema
Extract3MFMetadataResponse
hasEmbeddedGcoderequired
boolean
materialsrequired
object[]
colorrequired
string
identifieroptional
string
indexrequired
number
min: 0
nameoptional
string
skipoptional
boolean
typerequired
string
metadatarequired
object
filamentColorsrequired
string[]
filamentDensitiesoptional
number[]
filamentDiametersoptional
number[]
filamentIdsoptional
string[]
filamentTyperequired
string[]
nozzleDiameterrequired
string
plateRenderSourceHashoptional
string
`fileHashes[0]` of the source that produced the plates'
`thumbnailRenderedUri`. Re-extraction carries the renders forward only
while this still matches the part's current source; a replaced file
leaves them behind rather than showing the previous model's geometry.
platesoptional
object[]
filamentIdsoptional
string[]
filamentMapModeoptional
string
filamentMapsoptional
number[]
gcodeFileoptional
string
idrequired
number
lockedoptional
boolean
nameoptional
string
patternBboxFileoptional
string
pickDataoptional
string
pickFileoptional
string
pickUploadedUrioptional
string
slicedoptional
object
extruderTypeoptional
string
filamentMapsoptional
string
filamentsoptional
object[]
colorrequired
string
idrequired
string
trayInfoIdxrequired
string
typerequired
string
usedGrequired
number
usedMrequired
number
indexoptional
number
labelObjectEnabledoptional
boolean
layerFilamentListsoptional
object[]
filamentListrequired
number
layerRangesrequired
string
nozzleDiametersoptional
string
nozzleVolumeTypeoptional
string
objectsoptional
object[]
identifyIdrequired
string
namerequired
string
skippedrequired
boolean
outsideoptional
boolean
predictionoptional
number
printerModelIdoptional
string
supportUsedoptional
boolean
timelapseTypeoptional
string
warningsoptional
object[]
errorCoderequired
string
levelrequired
number
msgrequired
string
weightoptional
number
thumbnailDataoptional
string
thumbnailFileoptional
string
thumbnailNoLightFileoptional
string
thumbnailRenderedUrioptional
string
The plate re-rendered by the three.js builder. Written by a different
flow, and to a different storage path, than the archive copy above — a
later metadata reprocess re-copies the archive image and must not be able
to overwrite this. Prefer it over `thumbnailUploadedUri`
(see `plateThumbnailUri`).
thumbnailUploadedUrioptional
string
The archive's own plate preview, copied out at metadata-extraction time.
topDataoptional
string
Base64 PNG data for the top/pick images, staged before upload then cleared.
topFileoptional
string
topUploadedUrioptional
string
Uploaded URIs for the plate's top-down image and color-coded object pick mask.
Used by the visual skip-objects picker.
printerModelrequired
string
profileCompatrequired
object
compatiblerequired
string[]
saferequired
string[]
slicedrequired
string
slicerVersionoptional
object
Example Response
201 OK — application/json
{
"metadata": {
"printerModel": "string",
"filamentType": [
"string"
],
"filamentColors": [
"string"
],
"filamentDensities": [
1
],
"filamentDiameters": [
1
],
"nozzleDiameter": "string",
"profileCompat": {
"sliced": "string",
"compatible": [
"string"
],
"safe": [
"string"
]
},
"plates": [
{
"id": 1,
"name": "string",
"locked": true,
"filamentMapMode": "string",
"filamentMaps": [
1
],
"gcodeFile": "string",
"thumbnailFile": "string",
"thumbnailUploadedUri": "string",
"thumbnailRenderedUri": "string",
"thumbnailNoLightFile": "string",
"thumbnailData": "string",
"topFile": "string",
"pickFile": "string",
"topData": "string",
"pickData": "string",
"topUploadedUri": "string",
"pickUploadedUri": "string",
"patternBboxFile": "string",
"sliced": {
"index": 1,
"extruderType": "string",
"nozzleVolumeType": "string",
"printerModelId": "string",
"nozzleDiameters": "string",
"timelapseType": "string",
"prediction": 1,
"weight": 1,
"outside": true,
"supportUsed": true,
"labelObjectEnabled": true,
"filamentMaps": "string",
"objects": [
{
"identifyId": "string",
"name": "string",
"skipped": true
}
],
"filaments": [
{
"id": "string",
"trayInfoIdx": "string",
"type": "string",
"color": "string",
"usedM": 1,
"usedG": 1
}
],
"warnings": [
{
"msg": "string",
"level": 1,
"errorCode": "string"
}
],
"layerFilamentLists": [
{
"filamentList": 1,
"layerRanges": "string"
}
]
},
"filamentIds": [
"string"
]
}
],
"filamentIds": [
"string"
],
"plateRenderSourceHash": "string"
},
"materials": [
{
"index": 0,
"skip": true
}
],
"hasEmbeddedGcode": true
}