Skip to content

List all printers

GET
/api/v1/printers
curl --request GET \
--url https://example.com/api/v1/printers \
--header 'X-Label-Hub-Key: <X-Label-Hub-Key>'

Returns every registered printer. The paused flag is joined from printer_state; it is false when no state row exists yet. Pass ?slug=<slug> to filter to a single printer by exact slug match (returns 404 when no printer with that slug exists).

slug
Slug

Filter by exact slug

Any of:
string

Filter by exact slug

Successful Response

Media typeapplication/json
Response List Printers Api V1 Printers Get
Array<object>
PrinterRead

Full representation of a Printer row, augmented with the paused flag.

paused is joined from the printer_state table; it defaults to False for printers whose state row was not yet created (safe — the DB lifespan helper creates state rows at startup, so this only matters in tests or during the very first boot).

object
backend
required
Backend
string
connection
required
Connection
object
key
additional properties
any
created_at
required
Created At
string
enabled
required
Enabled
boolean
hardware_id
Hardware Id

Stored device serial, IPP printer-uuid or MAC; admin callers only, else null

Any of:
string
hardware_id_kind
Hardware Id Kind

Serial | ipp_uuid | mac; admin callers only, else null

Any of:
string
hardware_id_seen_at
Hardware Id Seen At

When a probe last saw the stored device; admin callers only

Any of:
string
id
required
Id
string format: uuid
layout_defaults
Layout Defaults

Stored label layout per tape width in mm (#258), keyed by the width as a string; the print dialog preselects it. A missing width uses the tape default (62 mm across/compact, else along)

object
key
additional properties
LayoutDefault

A stored layout default for one tape width of one printer.

None fields fall back to the built-in default for the tape (62 mm: across, compact; every other width: along).

object
orientation
Any of:
LabelOrientation

How the label content runs on endless tape.

string
Allowed values: across along
preset
Any of:
QlLayoutPreset

The built-in QL 62 mm across-width layouts (docs/design/ql-layout-presets).

string
Allowed values: compact small_qr standard
model
required
Model
string
name
required
Name
string
observed_id
Observed Id

The differing device of a flagged swap; admin callers only

Any of:
string
observed_kind
Observed Kind

Serial | ipp_uuid | mac; admin callers only, else null

Any of:
string
pause
Any of:
PauseRead

Why a printer is paused: user (manual) or printer_error (automatic).

object
reason_code
required
Reason Code
string
since
required
Since
string
source
required
Source
string
Allowed values: user printer_error
paused
required
Paused
boolean
slug
Slug
string
""
updated_at
required
Updated At
string

Example

[
{
"layout_defaults": {
"additionalProperty": {
"orientation": "across",
"preset": "compact"
}
},
"pause": {
"source": "user"
},
"slug": ""
}
]

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string

Example generated

{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}