Rate Limiting

Per-tenant rate limits for API and UI endpoints.

The Bizzlink API enforces per-tenant rate limits to protect backend resources and ensure fair usage across all tenants. Rate limits are applied at the Cloud Gateway level, based on your tenant identity (from your API key).

Rate Limit Tiers

EndpointMethodLimitBurst
/bizzlink/document/create-and-send/invoicePOST60/min80
/bizzlink/document/create-and-send/credit-notePOST60/min80
/bizzlink/document/create-and-send/ubl21v2POST60/min80
/bizzlink/document/send/ubl21POST60/min80
/bizzlink/document/send/zugferd/xmlPOST60/min80
/bizzlink/document/send/zugferd/pdfPOST60/min80
/bizzlink/document/{id}/pdfGET30/min40
/bizzlink/document/validatePOST60/min80
/bizzlink/convert/*POST60/min80
/bizzlink/webhooksPOST10/min15
/bizzlink/webhooks/{id}/actions/testPOST5/min5

All other endpoints are not rate-limited at the application level.

Burst allows short spikes above the sustained rate. For example, a 60/min limit with burst 80 means you can send up to 80 requests in a quick burst, but over time the average must stay at or below 60 per minute.

How Tenants Are Identified

  • Your tenant is identified by the tenant code embedded in your API key.

Each tenant has its own independent rate limit counters per endpoint tier.

Response When Rate Limited

When you exceed the rate limit, the API returns:

HTTP/1.1 429 Too Many Requests
Retry-After: 60
X-RateLimit-Remaining: 0
X-RateLimit-Burst-Capacity: 80
X-RateLimit-Replenish-Rate: 60

Response Headers

Every response from a rate-limited endpoint includes these headers:

HeaderDescription
X-RateLimit-RemainingNumber of requests remaining in the current window
X-RateLimit-Burst-CapacityMaximum burst capacity for this endpoint
X-RateLimit-Replenish-RateRequests per minute allowed for this endpoint
Retry-AfterSeconds to wait before retrying (only on 429 responses)

Best Practices

  • Respect Retry-After — When you receive a 429, wait at least the indicated number of seconds before retrying.
  • Implement exponential backoff — For batch processing, add increasing delays between retries.
  • Spread requests over time — Instead of sending 60 documents at once, distribute them evenly across the minute.
  • Monitor rate limit headers — Check X-RateLimit-Remaining to proactively slow down before hitting the limit.