DEVELOPERS / REST API / ZEBRA
A Zebra Printer API That Works From Anywhere
A REST API for Zebra label printers: send ZPL or a template with data from any server, get job status back, queue when the printer is offline. SDKs for Python, Node.js, .NET and Go.
curl https://labelinn.com/v1/print/jobs \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"printer_id":"prt_abc123","payload_type":"template","design_id":"dsg_shipping","data":{"order_id":"ORD-9876"}}'THE PROBLEM
Zebra printers speak ZPL and listen on the network, and Zebra provides SDKs and printer-side connectivity features to build on. What you get from them is building blocks: turning them into a print service that a cloud web app or ERP can call, with a queue, status and many sites, is still a project of its own.
LabelInn is that service, ready-made. A small runtime on a computer next to the printer registers it and connects out. Your application calls one REST API.
🔌 POST a job, get a label. From any server, to any registered Zebra, TSC, Toshiba or Epson printer. Get an API key →
01 / ZEBRA
What the API covers
| You need to | Call |
|---|---|
| Print raw ZPL | POST /v1/print/jobs with payload_type: "zpl" |
| Print a visual design with data | POST /v1/print/jobs with payload_type: "template" |
| Print up to 100 labels at once | POST /v1/print/batch |
| Know whether it printed | GET /v1/print/jobs/{id}, or a webhook |
| See printers and their state | GET /v1/fleet/printers |
| Know when labels or ribbon run low | GET /v1/fleet/supply-alerts |
| Prove what was printed | GET /v1/audit/print-history |
02 / REST API
A first call
curl https://labelinn.com/v1/print/jobs \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"printer_id":"prt_abc123","payload_type":"template","design_id":"dsg_shipping","data":{"order_id":"ORD-9876"}}'03 / SDK
What you do not have to build
- Network access to the printer. The runtime connects out; no VPN, no port forwarding.
- A queue. Jobs wait while a printer is off and print in order when it is back.
- Printer status. Paper out, ribbon out and head open come back as job state and webhook events.
- Duplicate protection. Send an idempotency key; retries return the original job.
- Other brands. Templates are converted to ZPL, TSPL, TPCL or ESC/Label per printer, so a TSC on another site needs no code change.
04 / CLOUD PRINTING
On the same network instead?
The same runtime also exposes a local API on your LAN, for web apps that print at the bench without going through the cloud. See printing from a web app. Factory systems can also use MQTT or gRPC.
Printing through the API is part of the Pro plan, and the free trial includes it. Keys that start with sk_test_ run against a sandbox that never prints, so you can build and test before going live. See pricing.
QUESTIONS / FAQ
Frequently asked questions
Does Zebra have a cloud printing API?
Zebra provides SDKs and printer connectivity features that you can build a print service on. LabelInn is a ready-made REST API in front of registered printers, so an application anywhere can print to them, with queueing and job status, across Zebra and other brands.
Can I print to a Zebra printer from a cloud server?
Yes. A LabelInn runtime next to the printer connects out to LabelInn; your server calls POST /v1/print/jobs and never needs network access to the printer.
How do I know if the label printed?
Read the job with GET /v1/print/jobs/{id}, or subscribe to webhook events for completed and failed jobs.
Is there an SDK?
Yes: official SDKs for Python (pip install labelinn), Node.js (npm install labelinn), .NET (dotnet add package LabelInn) and Go.
KEEP GOING
Related
NEXT STEP / LABELINN
Give your app a printer API
Register a printer and send your first job from any server. · REST + official SDKs · Queue, status and webhooks · Zebra, TSC, Toshiba, Epson