Printago API
PATCH
/v1/print-jobs/groups/reorder
Reorder group
Reorder an entire print-queue group as a contiguous block.
Request Body
Group id and target index in the pending queue
ReorderGroupRequest
afterGroupIdrequired
string
Place the target group immediately after this group in the priority
lane, or at the top when null. The server rebalances the lane so every
group ends up at a clean 1000-spaced queueOrder — this avoids the
"same-queueOrder collision" pitfall where midpoint-averaging between
two groups at the same qo produces that qo and collapses the insert.
groupKeyrequired
object
Identifies a print-queue group. `groupId` is assigned at emission time by
`queuePrintJobs` (one groupId per distinct plate cluster within a build),
so every emitted job has a non-null groupId. Pre-feature legacy rows with
null groupId are not addressable by this API.
groupIdrequired
string
pattern: ^[a-z0-9]{24}$
Example Request
application/json
{
"groupKey": {
"groupId": "string"
}
}
Response Schema
ReorderGroupResponse
affectedJobsrequired
object[]
Every PrintJob whose queueOrder changed as a result of the rebalance.
Clients should upsert these into their local cache to reflect the
authoritative post-state without re-fetching the full queue.
assignedPrinterIdrequired
string
assignmentCompletedAtrequired
string
assignmentStartedAtrequired
string
attemptNumberrequired
number
1-based counter of print attempts (bumped on requeue once the attempt
printed or reached a terminal state). Keys per-attempt media/telemetry
objects and aligns with `print_history.attemptNumber`.
boundingBoxrequired
object
{x,y,z} mm bounding box of what this job prints. Null until computed.
buildThumbnailUrirequired
string
A URL to a recolored thumbnail that reflects any material customizations applied to the print job. Populated after material assignments are made, giving a more accurate preview of the expected output colors.
cameraThumbnailUrirequired
string
Camera-captured snapshot from the moment Fuse detected the last
layer of the print. Persisted to the files bucket. Null unless Fuse
successfully captured and uploaded.
cancelledAtrequired
string
coloredThumbnailUrirequired
string
A URL to a thumbnail recolored to match the specific filament loaded in the assigned printer. Populated once the print job is assigned to a printer, and cleared if the job is unassigned.
createdAtrequired
string
format: date-time
errorMessagerequired
string
extensionsoptional
object
filesToPrintrequired
string[]
fuseTelemetryUrirequired
string
Fuse flight-recorder artifact for the current attempt (gzipped JSONL
under the permanent `telemetry/` prefix). Confirmed asynchronously by
Fuse after the print ends, like `timelapseUri`.
gcodeAnalysisSha256required
string
SHA256 hash of analyzed gcode content — stable key for extrusion lookup
groupIdrequired
string
Group identifier for visually-collapsed print-queue rows. Assigned at
emission (one per plate cluster within a build). Split mints fresh
groupIds for non-first buckets. May be null for legacy rows that predate
the grouping feature.
hiddenrequired
boolean
idrequired
string
pattern: ^[a-z0-9]{24}$
isGcodeCachedrequired
boolean
labelrequired
string
linkedPartIdrequired
string
logsUrirequired
string
materialAssignmentsrequired
Record<string, object[]>
materialMappingrequired
object[]
orderIdrequired
string
orderItemIdrequired
string
overriddenProcessProfileIdrequired
string
parameterOverridesrequired
object[]
namerequired
string
typerequired
any
valueoptional
number | string | boolean
parentJobIdrequired
string
Set on jobs merged onto a shared plate; points at the merged (parent)
job. Children mirror the parent's status and are excluded from
independent matching.
partBuildIdrequired
string
pattern: ^[a-z0-9]{24}$
partIdrequired
string
partNamerequired
string
printingCompletedAtrequired
string
printingStartedAtrequired
string
priorityrequired
any
profileUrisrequired
string[]
quantityIndexrequired
number
quantityTotalrequired
number
queueOrderrequired
number
min: 0
requiredPrinterTagsrequired
object
filament.typeoptional
string
printer.idoptional
string
printer.modelNameoptional
string
printer.nozzleDiameteroptional
string
printer.provideroptional
string
user.tagsoptional
string
sendFailureCountrequired
number
Consecutive send-give-up cycles (EnsureJobStarted exhausted its retries
without the printer starting). Reset on retry from a terminal state.
skipObjectIdsoptional
string[]
User-selected objects to skip on this job's plate, as identifyId strings
(resolved at queue time from the part's plate object list). When the print
starts, a Bambu `skip_objects` command is auto-sent for these. Null/empty
means print everything. Stored as strings; converted to integer obj_list at
send time.
skipObjectsDataoptional
object
skuIdrequired
string
skuInstancerequired
number
skuNamerequired
string
slicedGcodeUrirequired
string
slicerInputHashrequired
string
statusrequired
any
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
taskIdrequired
number
thumbnailUrirequired
string
A URL to the part's original thumbnail image, carried over from the part at the time the print job was created.
timelapseUrirequired
string
MP4 timelapse Fuse encoded from frames captured during the print and
uploaded to the snapshots bucket under the `timelapses/` prefix.
Null unless the store has timelapses enabled and Fuse uploaded
successfully.
updatedAtrequired
string
format: date-time
Example Response
200 OK — application/json
{
"affectedJobs": [
{
"partBuildId": "string",
"quantityIndex": 1,
"quantityTotal": 1,
"attemptNumber": 1,
"sendFailureCount": 1,
"filesToPrint": [
"string"
],
"isGcodeCached": true,
"partName": "string",
"parameterOverrides": [
{
"name": "string"
}
],
"label": "string",
"queueOrder": 0,
"requiredPrinterTags": {
"printer.provider": "string",
"printer.id": "string",
"printer.nozzleDiameter": "string",
"printer.modelName": "string",
"filament.type": "string",
"user.tags": "string"
},
"taskId": 1,
"hidden": true,
"id": "string",
"storeId": "string",
"createdAt": "2026-08-24T03:58:55.929Z",
"updatedAt": "2026-08-24T03:58:55.929Z"
}
]
}