Printago API
POST /v1/print-jobs/queue/group-matching

Get compatible printers per queue group

Bulk-evaluate the pending print queue and return the match verdict per printer for each queue group. The matcher runs once per group (not once per job) since every job in a group shares the same part, materials, and required tags. The response carries verdicts only (`matched`, `compatible`, `firstFailedCheck`) — for the per-check reasons behind a verdict, call `GET /v1/print-jobs/{id}/matching-troubleshoot` for the group's representative job. The number of evaluated groups is capped so the response stays bounded on large farms; when the pending queue exceeds that cap the tail is omitted and `truncated` is true. Scope the request with `printJobIds` to evaluate a specific group.

Requires: queue.view

Request Body

Optional subset of pending print job IDs to consider; defaults to the entire pending queue

QueueGroupMatchingRequest
printJobIdsoptional
string[]

Example Request

application/json
{
  "printJobIds": [
    "string"
  ]
}

Response Schema

QueueGroupMatchingResponse
groupsrequired
object[]
groupIdrequired
string
Group identifier shared by every job in the entry. Null for legacy rows that predate the queue-grouping feature — those rows form a singleton "group of one" keyed by the job id.
memberPrintJobIdsrequired
string[]
All print job IDs from the request scope that share this groupId.
printersrequired
object[]
Per-printer verdict for the representative job, ordered matched → compatible → printer name. Verdict only: the per-check messages live on the single-job troubleshooter (`GET /v1/print-jobs/{id}/matching-troubleshoot`).
compatiblerequired
boolean
firstFailedCheckoptional
any
matchedrequired
boolean
printerIdrequired
string
pattern: ^[a-z0-9]{24}$
representativePrintJobIdrequired
string
Job whose part/materials/tags drive the printer evaluation.
pattern: ^[a-z0-9]{24}$
truncatedrequired
boolean
True when the pending queue was larger than the per-request evaluation budget and the tail of the queue was not evaluated. Scope the request with `printJobIds` to get results for a specific group.

Example Response

201 OK — application/json
{
  "groups": [
    {
      "representativePrintJobId": "string",
      "memberPrintJobIds": [
        "string"
      ],
      "printers": [
        {
          "printerId": "string",
          "matched": true,
          "compatible": true
        }
      ]
    }
  ],
  "truncated": true
}