One API to send labels to any thermal printer. Ship faster with ZPL, templates, or images — 6 lines of code.
# Print a shipping label in one call curl https://labelinn.com/v1/print/jobs \ -H "Authorization: Bearer sk_live_xxx" \ -H "Content-Type: application/json" \ -d '{"printer_id":"abc","payload_type":"template", "design_id":"tmpl_shipping", "data":{"name":"Jane Doe","order":"ORD-4521"}}'
From raw ZPL to visual templates — one unified API.
ZPL, ESC/POS, TSPL, SLCS — Zebra, TSC, Bixolon, Honeywell, Brother and more. TCP, USB, and Bluetooth.
Submit up to 100 labels in a single API call. Perfect for order fulfillment and warehouse operations.
Design once in the LabelInn app, fill with data via API. Variables, barcodes, images — all dynamic.
Render any template with data and get a PNG/PDF preview. Verify labels before committing to paper.
Get notified on job completion, failures, printer status changes, and low supply alerts.
Push XML, CSV, JSON, or TSV from any ERP/WMS. Auto-parse, map fields to labels, and print — one API call.
Track API calls, print volumes, and endpoint breakdown. See your usage in real-time.
Use sk_test_ keys to simulate everything without physical prints. Full API parity.
OpenAPI spec + ai-plugin.json manifest. ChatGPT, Claude, and Copilot can discover and use your printing setup.
SHA-256 key hashing, HMAC webhook signatures, SSRF protection, and per-key permission scoping.
Local LAN API on port 6631. Print via USB/TCP without internet — offline queue syncs back automatically.
Discover USB, network, and Bluetooth printers via API. Trigger scans on remote devices and add printers to your fleet in one flow.
Get started in your language with type-safe, idiomatic client libraries.
npm install labelinn
pip install labelinn
dotnet add package LabelInn
go get github.com/labelinn/labelinn-go
Print directly to USB and network printers over your LAN — zero cloud round-trips, works offline.
GET /local/v1/health — Server statusPOST /local/v1/print/jobs — Submit a print jobGET /local/v1/jobs/{id} — Poll job statusGET /local/v1/fleet/printers — List printersPOST /local/v1/fleet/discover — Auto-discover printersGET /local/v1/fleet/discover/{id} — Poll discovery// 1. Discover the Edge Server on your LAN
const health = await fetch('http://192.168.1.100:6631/local/v1/health');
// → { status: "ok", server: "LabelInn Edge Server", mode: "hybrid", ... }
// 2. List connected printers
const printers = await fetch('http://192.168.1.100:6631/local/v1/fleet/printers', {
headers: { 'Authorization': 'Bearer YOUR_EDGE_TOKEN' }
});
// → { printers: [{ id: "usb_zebra_01", name: "ZD420", ... }], count: 1 }
// 3. Print a label — returns instantly (HTTP 202)
const job = await fetch('http://192.168.1.100:6631/local/v1/print/jobs', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_EDGE_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
printerId: 'usb_zebra_01',
payloadType: 'zpl',
payloadData: '^XA^FO50,50^ADN,36,20^FDHello Edge^FS^XZ',
copies: 1
})
});
// → { jobId: "abc-123", status: "accepted" }
// 4. Poll for result
const result = await fetch('http://192.168.1.100:6631/local/v1/jobs/abc-123', {
headers: { 'Authorization': 'Bearer YOUR_EDGE_TOKEN' }
});
// → { jobId: "abc-123", success: true, printedLabels: 1 }
Scan for printers on any device running LabelInn. USB, mDNS, network scan, and ZPL validation — all from one API call.
POST /v1/fleet/discoverGET /v1/fleet/discover/{sessionId}POST /v1/fleet/discover/{sessionId}/add
POST /local/v1/fleet/discoverGET /local/v1/fleet/discover/{sessionId}
// ── Cloud API: Discover printers on a remote device ──
// 1. Start a discovery session (target a specific device or any online device)
const session = await fetch('https://labelinn.com/v1/fleet/discover', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({ device_id: 'dev_warehouse_pc' })
});
// → { data: { session_id: "abc123", status: "pending" } }
// 2. Poll until discovery is complete
const results = await fetch('https://labelinn.com/v1/fleet/discover/abc123', {
headers: { 'Authorization': 'Bearer sk_live_xxx' }
});
// → { data: { status: "complete", printers: [
// { name: "ZD420", address: "192.168.1.50", brand: "ZEBRA", is_thermal: true },
// { name: "Brother QL-820", address: "USB001", connection_type: "usb" }
// ], count: 2 } }
// 3. Add a discovered printer to your fleet
const printer = await fetch('https://labelinn.com/v1/fleet/discover/abc123/add', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_xxx',
'Content-Type': 'application/json'
},
body: JSON.stringify({ address: '192.168.1.50', name: 'Warehouse Zebra #3' })
});
// → { data: { id: "prt_a1b2c3d4e5f6", name: "Warehouse Zebra #3", status: "registered" } }
// 4. Now print to it!
await fetch('https://labelinn.com/v1/print/jobs', {
method: 'POST',
headers: { 'Authorization': 'Bearer sk_live_xxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
printer_id: 'prt_a1b2c3d4e5f6',
payload_type: 'template',
design_id: 'tmpl_shipping',
data: { name: 'Jane Doe', order: 'ORD-4521' }
})
});
Universal enterprise data ingestion — connect any data source to label printing.
// 1. Test-parse your data first (no storage, no cost)
const preview = await fetch('https://labelinn.com/v1/connect/test-parse', {
method: 'POST',
headers: { 'Authorization': 'Bearer sk_test_YOUR_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({
payload: 'name,sku,qty,price\nWidget,SKU-001,50,9.99\nGadget,SKU-002,30,14.50',
format: 'csv'
})
});
// → { schema: [{path:"name",type:"string"}, {path:"qty",type:"number"}, ...], records_preview: [...] }
// 2. Push real data & print labels — 2 API calls
const result = await client.connect.ingest({
source_id: "conn_sap_orders",
payload: xmlFromSAP,
format: "xml",
config: { repeatPath: "IDOC.E1EDP01" }
});
await client.connect.sources.print("conn_sap_orders", {
printer_id: "prt_warehouse_01",
design_id: "dsg_shipping_label",
ingest_id: result.data.ingest_id
});
Connect LabelInn to your existing stack — code-free.
108 operations across 16 categories — every backend route, machine-readable
via OpenAPI 3.0.3 spec v2.0.0.
AI agents discover this at https://labelinn.com/.well-known/ai-plugin.json.
API access is included with Pro and Enterprise plans.
Create an account, generate an API key, send your first print job.