Labelixa plan tiers, monthly label and request quotas, the daily label ceiling, per-second request limits and request-size limits.
| Plan | Rate | Labels/month | Requests/month | Daily label ceiling | Labels/request | On-premise | Support response |
|---|---|---|---|---|---|---|---|
| Free | 3/s | 5,000 | 10,000 | 5,000 | 50 | — | — |
| Starter | 5/s | 25,000 | 50,000 | 25,000 | 50 | — | 3 business days |
| Professional | 10/s | 100,000 | 200,000 | 100,000 | 100 | — | 1 business day |
| Business | 20/s | 500,000 | 1,000,000 | 250,000 | 250 | — | same business day |
| Enterprise On-Premise | 20/s | by contract | by contract | by contract | 250 | yes | same business day |
The free tier needs no key, and no plan watermarks the output. Paid plans raise the limits. Current tiers can be fetched with GET /v1/plans.
The islem_ay field is NOT your monthly quota. It is kept for older integrations and still equals the daily label ceiling (islem_gun) x 30 — it is never used in a gating decision. Your real monthly quotas are the separate fields etiket_ay (labels) and istek_ay (requests).
Support response is a commitment about how quickly we reply, not about how quickly an issue is resolved, and it is not an availability commitment: we publish no uptime SLA. See Terms of Service §24.5-24.6.
A label is one rendered label; a request is one API call. If a single call sends a multi-label ZPL (^PQ or consecutive ^XA...^XZ blocks), it spends one request and as many labels as it produces. Validation and conversion calls spend one request and no labels.
Quotas are monthly, counted separately for labels and requests, and renew on your subscription day (calendar month on the free plan). A yearly subscription is still measured month by month.
A daily label ceiling applies inside the monthly quota; it is not additional quota. Both windows are checked together: a request that does not fit either one is rejected upfront and no counter moves.
Unused quota does not roll over.
When a window is full, requests are rejected with 429; X-Quota-Reason says which window (gunluk, aylik_etiket, aylik_istek), X-Quota-Reset gives the renewal time (ISO-8601 UTC) and X-Quota-Action: yukselt the only remedy. The response body names the next plan and its monthly price and links to the pricing page; X-Quota-Next-Plan and X-Quota-Upgrade-Url carry the same two values for clients that do not parse text.
Extra usage packs are no longer sold (30 August 2026). They were withdrawn when quotas were daily and they stay withdrawn under the monthly model: a pack is a one-off top-up at a unit price many times the plan's, while a plan renews every month. If the monthly quota is not enough, the right answer is the next plan up — cheaper and permanent. The POST /v1/addons endpoint was not removed: it returns 410 Gone that says why and points to GET /v1/plans. A 404 would not tell an existing integration whether the address was wrong or the feature was withdrawn.
| Limit | Value |
|---|---|
| Request body | ZPL rendering at most 1 MB; EPL/TSPL/CPCL, DPI and compatibility endpoints at most 512 KB |
| Commands per label | at most 20,000 (document total is free; multi-label documents are unaffected) |
| Label size | at most 15 inches (width/height) |
| Print density (dpmm) | 6, 8, 12, 24 |
/v1/graphics image | at most 200 KB, 2000×2000 pixels |
| Barcode data length | at most 1000 characters |
When the quota or rate limit is exceeded, the API returns HTTP 429 and a Retry-After header.