Skip to content

GET /printers/{path}

Returns a single printer by its path (URL-encoded). The response shape matches a single element from the GET /printers array, including status, statusReasons, and loadedTape on USB P-touch printers.

Endpoint:

GET /api/v1/printers/{path}
Parameter Type Description
path string The printer’s path value, URL-encoded. For example: tcp%3A%2F%2F192.168.86.250%3A9100 or tcp_192-168-86-250_9100.
{
"status": "success",
"statusCode": 200,
"result": {
"module": "/printers/tcp_192-168-86-250_9100",
"message": "Printer retrieved.",
"content": {
"id": "MYS9QT8D",
"type": "printer",
"path": "tcp_192-168-86-250_9100",
"connection": {
"type": "network",
"host": "192.168.86.250",
"port": 9100,
"protocol": "tcp"
},
"model": "Zebra ZD421",
"content": "zpl",
"discovered": false,
"localAddress": "192.168.86.250",
"status": "online",
"statusReasons": []
}
}
}

See GET /printers for the full field reference.

loadedTape is present on supported USB P-touch printers and omitted on other printers. It has three shapes:

Shape Meaning
{ media, label, widthMm, widthPt, mediaType, readAt } Successful tape reading. media is the media name, label is its display label, widthPt is the PDF page width in points, and mediaType is the numeric Brother media-type code. widthMm is the reported width; 3.5mm tape reports 4 and uses tz-4 with widthPt: 10.
{ reason, readAt } Failed reading. reason is no-tape, unsupported-tape, printer-error, or unreadable.
null The queue is busy and this backend process has never read the tape.

For example, a successful reading is:

{
"media": "tz-24",
"label": "24 mm tape",
"widthMm": 24,
"widthPt": 68,
"mediaType": 1,
"readAt": "2026-03-28T14:30:00.000Z"
}

An idle queue gets a live reading, bounded to 3 seconds. A busy queue returns the last reading with its original readAt timestamp. Busy includes processing, pending jobs, and the 20 seconds after the queue last changed state: CUPS can report a completed job while the label is still printing and cutting, so ProxyBox does not query the printer then. A stopped queue with no pending jobs and no recent state change also permits a read.

For USB P-touch, use loadedTape.widthPt to size a PDF. capabilities.mediaSupported describes the driver default, not the loaded tape.

{
"status": "error",
"statusCode": 404,
"result": {
"module": "/printers/tcp_192-168-99-99_9100",
"message": "Printer not found",
"content": {
"message": "No printer with path: tcp_192-168-99-99_9100"
}
}
}

ProxyBox Zero Docs v1.0.29