Simple REST api for Brother P-touch printers
  • Rust 40.6%
  • JavaScript 37.1%
  • Nix 13%
  • CSS 5.2%
  • HTML 4.1%
Find a file
2025-09-18 19:27:13 +02:00
.forgejo/workflows init 2025-09-18 01:00:16 +02:00
nix initial version 2025-09-18 02:59:36 +02:00
src change status output 2025-09-18 19:27:13 +02:00
.envrc init 2025-09-18 01:00:16 +02:00
.gitignore initial version 2025-09-18 02:59:36 +02:00
51-ptouch-api.rules initial version 2025-09-18 02:59:36 +02:00
Cargo.lock change status output 2025-09-18 19:27:13 +02:00
Cargo.toml change status output 2025-09-18 19:27:13 +02:00
flake.lock init 2025-09-18 01:00:16 +02:00
flake.nix initial version 2025-09-18 02:59:36 +02:00
README.md change status output 2025-09-18 19:27:13 +02:00

ptouch-api

Simple REST api for Brother P-touch label printers.

Configuring

[listen]
# by default the server listens over tcp
# address = "0.0.0.0" # defaults to "127.0.0.1"
# port = 1234 # defaults to 7074
# you can set it to listen over a unix socket instead.
socket = "/run/ptouch-api.sock"

In additional to the listen configuration, the server will automatically detect if it get's activated trough systemd socket activation and takes the provided socket.

Usage

ptouch-api [--config config.toml]

API

  • GET /status: get printer and tape status for details about the fields.
  • PUT /print: print the uploaded image, supports png, jpg and bmp

Status

The returned status is a json with the following fields

  • media_width: width of the loaded tape in mm.
  • pixel_width: the width of the printed image in pixels.
  • media_type: material type of the loaded tape.
  • text_color: text color for the loaded tape.
  • tape_color: tape color for the loaded tape.

Supported printers

The following printers are currently supported

  • PT-9200DX
  • PT-2300
  • PT-2420PC
  • PT-2450PC
  • PT-1950
  • PT-2700
  • PT-1230PC
  • PT-2430PC
  • PT-1230PC_PLite
  • PT-2430PC_PLite
  • PT-2730
  • PT-H500
  • PT-E500
  • PT-P700
  • PT-P750W
  • PT-P700_PLite
  • PT-P750W_PLite
  • PT-D410
  • PT-D450
  • PT-D460BT
  • PT-D600
  • PT-D610BT
  • PT-P710BT