OpenZPL vs Labelary
OpenZPL is a ZPL rendering API that accepts the same v1 requests as Labelary's, so most clients switch by changing the hostname. It counts the free allowance in labels rather than requests and renders PNG and PDF only, while Labelary also converts to other printer languages.
Ažurirano 2026-10-20 · Renders made with the OpenZPL engine
Otvoriti u prikazuWho the switch is for
- You call Labelary's v1 API to render ZPL to PNG or PDF and want a second provider, or a fallback that takes the same requests.
- Your traffic is mostly single-label PNGs, where a label and a request are the same thing.
- You want the renders in the browser and from the API to come from the same engine, with a public compatibility list.
Stay on Labelary if you need output in EPL, IPL, DPL, SBPL or PCL, JSON data extraction, its image-to-ZPL or font APIs, PDF page layouts, a contracted SLA today, or an on-premise licence. OpenZPL doesn't offer those yet.
Features
| Feature | OpenZPL | Labelary |
|---|---|---|
v1 render endpoint /v1/printers/{dpmm}/labels/{w}x{h}/{index} | Yes, GET and POST | Yes, GET and POST |
| Densities | 6, 8, 12, 24 dpmm | 6, 8, 12, 24 dpmm |
PNG output, grayscale or bitonal (X-Quality) | Yes | Yes |
| PDF output, every label one page | Yes | Yes |
X-Rotation | 0, 90, 180, 270 | 0, 90, 180, 270 |
X-Total-Count response header | Yes | Yes |
Multipart upload in a file field | Yes | Yes |
PDF page size, layout and label borders (X-Page-*, X-Label-Border) | No | Yes |
Linter warnings (X-Linter, X-Warnings) | In the web viewer only | Yes |
| Output as EPL, IPL, DPL, SBPL, PCL 5, PCL 6 | No | Yes |
| JSON data extraction, ZPL transformation | No | Yes, marked experimental |
| Image to ZPL and TrueType font to ZPL APIs | No | Yes |
| Online viewer and editor | Yes | Yes |
| API keys and a usage dashboard | Yes | Keys on paid plans |
Labelary facts are from its service page as read on 2026-10-20; the header behaviour was also checked with test requests (see the migration guide).
Limits and billing units
The two free tiers count different things. Labelary counts requests per day; OpenZPL counts labels, ^PQ copies and PDF pages included, so a request that returns a 50-page PDF is 1 request but 50 labels. OpenZPL's free tier is smaller on purpose: 3 labels a day without a key and 20 with a free key, to evaluate the API. Production traffic runs on a paid plan, from $29 a month and lower by country.
| Limit | OpenZPL Free | Labelary Free |
|---|---|---|
| Sign-up or key | None to try, a free key for 20 a day | None |
| Requests per second | 3 per IP | 3 |
| Daily allowance | 3 labels per IP, 20 with a free key; paid from 100k/month | 5,000 requests |
| Labels per request | 50 | 50 |
| Request body | 1 MB | 1 MB |
| Veličina etikete | 15 in per side | 15 in |
| Render time | 10 s, then 503 | not verified |
When a limit is hit, both answer 429 with a Retry-After header. OpenZPL's message names the limit (requests per second, labels per day or shared free capacity).
Prices
OpenZPL prices as of 2026-11-08, Labelary's as published on 2026-10-28. OpenZPL's paid plans are subscriptions by card through Stripe, monthly or yearly (two months free), priced in US dollars, and you can cancel at any time. OpenZPL counts paid plans per calendar month; Labelary counts per day.
| План | Cena | Per second | Allowance |
|---|---|---|---|
| OpenZPL Pro | $29 / month | 10 requests | 100,000 labels a month |
| OpenZPL Business | $99 / month | 20 requests | 1,000,000 labels a month |
| Labelary Plus | $99 / month | 6 requests | 20,000 requests a day |
| Labelary Business | $249 / month | 10 requests | 40,000 requests a day |
| Labelary On-Premise | Prilagođeno | No limit | No limit |
Compare on your own traffic: if your requests return many labels each, multiply by labels per request before comparing OpenZPL's labels with Labelary's requests. Labelary's paid plans include zero data retention and a 99% or 99.9% SLA; its free plan has neither. OpenZPL never stores the ZPL of paid plans or API keys; anonymous renders may be sampled for up to 24 hours to find rendering bugs (see the privacy page).
Compatibility and differences
Accepting the same request doesn't mean drawing the same pixels. Two engines can differ in fonts, barcode details and how they read malformed ZPL. The compatibility page lists which commands the OpenZPL engine draws and which it doesn't support yet. Differences we measured on 2026-10-20:
- Output formats: Labelary also converts to EPL, IPL, DPL, SBPL and PCL and has experimental JSON and ZPL output. OpenZPL returns PNG and PDF only; other
Acceptvalues get406. - PDF options: Labelary's
X-Page-Size,X-Page-LayoutandX-Label-Borderaren't supported. OpenZPL puts one label per page at the label's own size. - Linting: Labelary's
X-Linterwarnings have no equivalent in the API yet. - Rendering: fonts are substitutes on both, so text widths can differ by a few dots, and the commands on the compatibility page's "not supported yet" list don't draw.
Before switching production traffic, render a sample of your real labels on both and compare them; the viewer uses the same engine as the API.
Pitanja
Is OpenZPL a drop-in replacement for Labelary?
For PNG and PDF rendering through the v1 endpoint, most clients only change the hostname. Check the differences above, and keep Labelary for the output formats and APIs OpenZPL doesn't have.
Is OpenZPL cheaper than Labelary?
Its list prices on 2026-10-20 are lower, but its paid plans aren't on sale yet and count labels, not requests, so which costs less depends on how many labels each of your requests returns. Work it out with your own traffic.
Can I use both?
Yes. Because the requests are the same, a client can send to one and fall back to the other on a 5xx or a timeout.