Getting Started

Install and first print job

From zero to your first silent print in under 5 minutes.

1

Download and install

Download the Windows installer from printbridge.app. No admin rights required — the per-user installer runs without UAC elevation.

  • Windows 10 or 11 (64-bit)
  • No Java, no WebSocket server, no config files
  • Installs as a user-mode application — no system services
2

Copy your API key

Open the PrintBridge app from the system tray or Start menu. Your API key is displayed on the main screen. Copy it — you'll pass it as a header in every API request.

The key is a 256-bit cryptographically random secret generated on first run. You can rotate it at any time. Store it in your application's environment variables or settings — not in client-side JavaScript.

3

Verify the service is running

GET /status is public (no API key needed) and returns the service state.

terminal
curl http://127.0.0.1:1337/status
response
{
  "running": true,
  "version": "1.0.0",
  "port": 1337,
  "entitled": true,
  "trialDaysRemaining": 30,
  "apiKeyRequired": true,
  "silentByDefault": true,
  "originAllowlistActive": false,
  "appSigned": true
}
4

List your printers

Get the exact printer name you'll use in every print request. The name field is what you pass as printerName.

terminal
curl http://127.0.0.1:1337/printers \
  -H "X-PrintBridge-Api-Key: YOUR_KEY"
response
[
  {
    "name": "Zebra ZD620",
    "displayName": "Zebra ZD620",
    "isDefault": false,
    "healthScore": 100,
    "healthLabel": "ready"
  },
  {
    "name": "Epson TM-T88VII",
    "displayName": "Epson TM-T88VII Receipt",
    "isDefault": true,
    "healthScore": 100,
    "healthLabel": "ready"
  }
]
5

Send your first print job

Choose the tab that matches your printer:

ZPL label (Zebra, Honeywell, TSC with ZPL firmware)

curl
curl -X POST http://127.0.0.1:1337/print \
  -H "X-PrintBridge-Api-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "printerName": "Zebra ZD620",
    "format": "zpl",
    "content": "^XA^FO50,50^ADN,36,20^FDHello PrintBridge^FS^XZ"
  }'

TSPL label (TSC TE-series, DA-series, Rollo)

curl
curl -X POST http://127.0.0.1:1337/print \
  -H "X-PrintBridge-Api-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "printerName": "TSC DA210",
    "format": "tspl",
    "content": "SIZE 4 inch, 2 inch
GAP 0.12 inch, 0
CLS
TEXT 25,50,"5",0,1,1,"Hello PrintBridge"
PRINT 1,1"
  }'

HTML invoice / packing slip (any printer)

curl
curl -X POST http://127.0.0.1:1337/print \
  -H "X-PrintBridge-Api-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "printerName": "HP LaserJet Pro",
    "format": "html",
    "content": "<html><body><h1>Hello from PrintBridge</h1></body></html>",
    "options": { "silent": true }
  }'
Success response: { "success": true }. A 500 with an error field means the printer name didn't match or the printer is offline.