Get printer detail
const url = 'https://example.com/api/v1/printers/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'GET', headers: {'X-Label-Hub-Key': '<X-Label-Hub-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/printers/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'X-Label-Hub-Key: <X-Label-Hub-Key>'Returns full metadata for a single printer, including the paused flag joined from printer_state. Returns 404 when the printer is not registered.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”Successful Response
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
object
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
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
How the label content runs on endless tape.
The built-in QL 62 mm across-width layouts (docs/design/ql-layout-presets).
Example
{ "layout_defaults": { "additionalProperty": { "orientation": "across", "preset": "compact" } }, "pause": { "source": "user" }, "slug": ""}Validation Error
object
object
object
Example generated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}