zpl.tools
Compatibility LayersLabelary Compatibility

Authentication

API key setup and required authentication

Every request must carry a valid API key in the X-API-Key header.

Create an API key

  1. Go to your API Keys page
  2. Click Create API Key
  3. Copy your API key and store it securely

Send your API key

curl -X POST "https://api.zpl.tools/compatibility/labelary/v1/printers/8dpmm/labels/4x6/0" \
  -H "X-API-Key: your_api_key_here" \
  --data "^XA^FO50,50^FDHello World^FS^XZ"

For more examples, see the Quickstart guide.

Rate Limits

New keys have no per-key rate limits. You can set soft limits per key on the API Keys page:

  • Requests per second — the API enforces this immediately, and returns a 429 with a Retry-After header.
  • Pages per day — rendered label pages per UTC day. The analytics pipeline aggregates the usage, so the API enforces this within a few minutes. The limit resets at midnight UTC.

A platform-level abuse limit also applies per organization. The API returns a structured 429 for any limit. See the Error Reference for the response shape.

Fix an error

401 Unauthorized

Check each item in order:

  1. Send the X-API-Key header.
  2. Spell the key correctly.
  3. Send the full key, not a truncated one.
  4. Check that the key is not expired or revoked. An expired key returns {"error": "key_expired"}. An unknown or revoked key returns {"error": "invalid_key"}.
  5. Write the header name exactly as X-API-Key, in the same case.
  6. Check that no proxy or middleware removes the header.

403 Forbidden

A 403 with {"error": "scope_denied"} means the key is valid, but its scope does not accept the output format in the Accept header. Use a key scoped to that format or to all formats. Create one on the API Keys page.