Rate Limits
The Aevum Zenth API enforces rate limits to ensure stability, fairness, and high availability across our global infrastructure serving 400+ subsidiaries. Understanding rate limits is essential for building resilient integrations.
Tier-Based Limits
Rate limits scale based on your access tier. Upgrading your plan increases your request quota and unlocks higher burst capabilities for time-sensitive operations.
| Access Tier | Requests / Minute | Requests / Second (Burst) | Concurrent Streams | Dedicated Infrastructure |
|---|---|---|---|---|
| Starter | 1,000 | 20 | 2 | No |
| Commercial | 20,000 | 100 | 10 | No |
| Enterprise | 200,000 | 500 | 100 | Yes |
| Defense / Critical Infrastructure | Unlimited* | Unlimited* | Unlimited | Dedicated |
* Defense and Critical Infrastructure tiers require separate security clearance agreements and are managed directly by Aevum Zenth Security Operations.
Rate Limit Headers
Every API response includes headers indicating your current rate limit status. Monitor these headers to proactively manage your request flow.
| Header | Description |
|---|---|
X-Aevum-RateLimit-Limit |
Maximum requests allowed in the current window. |
X-Aevum-RateLimit-Remaining |
Remaining requests in the current window. |
X-Aevum-RateLimit-Reset |
Unix timestamp when the rate limit window resets. |
X-Zenth-Quota-Used |
Percentage of daily quota consumed (Enterprise+). |
Retry-After |
Seconds to wait before retrying (present on 429 responses). |
Response Example
HTTP/2 200 OK
Content-Type: application/json
X-Aevum-RateLimit-Limit: 20000
X-Aevum-RateLimit-Remaining: 19847
X-Aevum-RateLimit-Reset: 1718400120
X-Zenth-Quota-Used: 12.4%
{ "data": { ... },
"meta": {
"request_id": "az_req_7f3k9d2m1p",
"timestamp": "2026-06-15T10:23:45Z"
}
}
Handling 429 Too Many Requests
When you exceed your rate limit, the API returns a 429 Too Many Requests status code. Implement exponential backoff with jitter to handle these errors gracefully.
{
"error": {
"code": 429,
"message": "Rate limit exceeded. Please retry after 15 seconds.",
"details": {
"limit": 20000,
"remaining": 0,
"reset_at": "2026-06-15T10:24:00Z",
"retry_after": 15
}
}
}
Best Practices
- Implement Backoff: Use exponential backoff with jitter when receiving 429 errors. Start with 1 second, doubling each attempt up to a maximum of 60 seconds.
- Caching: Leverage the
ETagandCache-Controlheaders to reduce redundant requests. Cached responses do not count against your rate limit. - Batch Operations: Use batch endpoints where available to process multiple records in a single request, reducing overhead and rate limit consumption.
- Async Processing: For bulk operations exceeding rate limits, use our async job queue API. Jobs are processed server-side without consuming client-side rate limits.
- Monitor Quotas: Enterprise customers should monitor the
X-Zenth-Quota-Usedheader and configure alerts via the Webhooks API.
WebSocket & Real-Time Limits
Real-time streaming endpoints have separate limits from REST endpoints. WebSocket connections are rate-limited by concurrent connections and message throughput.
| Metric | Starter | Commercial | Enterprise |
|---|---|---|---|
| Max Concurrent Connections | 5 | 50 | 500 |
| Messages / Second (Inbound) | 100 | 1,000 | 10,000 |
| Messages / Second (Outbound) | 500 | 5,000 | 50,000 |
Increasing Your Limits
If your integration requires higher throughput:
- Plan Upgrade: Upgrade your access tier via the Developer Dashboard. Limits take effect immediately upon payment confirmation.
- Enterprise Support: Enterprise customers can request custom limit configurations. Submit a ticket via Enterprise Support or contact your dedicated solutions architect.
- Burst Allowance: Temporary burst increases can be provisioned for short-term events. Request up to 7 days in advance.