Getting Started
Install and first print job
From zero to your first silent print in under 5 minutes.
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
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.
Verify the service is running
GET /status is public (no API key needed) and returns the service state.
curl http://127.0.0.1:1337/status
{
"running": true,
"version": "1.0.0",
"port": 1337,
"entitled": true,
"trialDaysRemaining": 30,
"apiKeyRequired": true,
"silentByDefault": true,
"originAllowlistActive": false,
"appSigned": true
}List your printers
Get the exact printer name you'll use in every print request. The name field is what you pass as printerName.
curl http://127.0.0.1:1337/printers \ -H "X-PrintBridge-Api-Key: YOUR_KEY"
[
{
"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"
}
]Send your first print job
Choose the tab that matches your printer:
ZPL label (Zebra, Honeywell, TSC with ZPL firmware)
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 -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 -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": true }. A 500 with an error field means the printer name didn't match or the printer is offline.