Printago API
PATCH /v1/parts

Bulk update parts

Update the same fields on multiple parts at once

Requires: part.edit

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"
  }
]