Printago API
PATCH
/v1/parts
Bulk update parts
Update the same fields on multiple parts at once
Request Body
Part IDs and shared update data
UpdateManyRequestPartUpdateWithMaterials
idsrequired
string[]
updaterequired
object
Make all properties in T optional
arrangeableoptional
boolean
assignedMaterialsoptional
Record<string, object[]>
descriptionoptional
string
fileUrisoptional
string[]
min items: 1
folderIdoptional
string
nameoptional
string
overriddenProcessProfileIdoptional
string
parametersoptional
object[]
acceptedContentTypesoptional
string[]
File-parameter-only fields (populated when
`type === PartParameterVariableType.File`). Kept optional on the
shared interface so scalar-parameter call sites do not need
union-narrowing. See `FilePartParameter` for the strict shape.
`acceptedContentTypes` is intentionally an OPEN `string[]` (not a
narrow union). The customizer emits SVG, but Etsy attachments and
direct API order ingestion can carry ANY mime type (PNG / JPG / PDF /
AI / etc). Builders enforce kind constraints; the shared type stays
open.
defaultoptional
number | string | boolean
defaultUrioptional
string
Optional fallback file URI (e.g. a known SVG in storage).
descriptionoptional
string
maxoptional
number
minoptional
number
multipleoptional
boolean
Whether the slot accepts >1 file. Reserved for forward compat — the
Phase 5 resolver assumes single-file per slot for v1.
namerequired
string
optionsoptional
object[]
labeloptional
string
valuerequired
string | number
stepoptional
number
typerequired
any
valueoptional
number | string | boolean
printTagsoptional
object
filament.typeoptional
string
printer.idoptional
string
printer.modelNameoptional
string
printer.nozzleDiameteroptional
string
printer.provideroptional
string
user.tagsoptional
string
slicerOverrideoptional
string
typeoptional
any
use3MFProcessProfileoptional
boolean
userTagsoptional
string[]
max items: 10
Example Request
application/json
{
"ids": [
"string"
],
"update": {
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"min": 1,
"max": 1,
"step": 1,
"acceptedContentTypes": [
"string"
],
"multiple": true,
"defaultUri": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"assignedMaterials": {}
}
}
Response Schema
Response
value
object[]
Example Response
200 OK — application/json
[
{
"name": "string",
"description": "string",
"fileUris": [
"string"
],
"fileHashes": [
"string"
],
"parameters": [
{
"options": [
{
"label": "string"
}
],
"description": "string",
"min": 1,
"max": 1,
"step": 1,
"acceptedContentTypes": [
"string"
],
"multiple": true,
"defaultUri": "string",
"name": "string"
}
],
"printTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"use3MFProcessProfile": true,
"arrangeable": true,
"userTags": [
"string"
],
"id": "string",
"storeId": "string",
"createdAt": "2026-08-24T03:58:55.792Z",
"updatedAt": "2026-08-24T03:58:55.792Z"
}
]