Skip to main content

Rate Limits

Axol uses Compute Unit (CU) based rate limiting for fair pricing. This page explains how rate limits work.

Two Types of Limits​

1. Throughput (CUPs)​

Compute Units Per Second - Controls how fast you can make requests.

  • Prevents bursts that could overload infrastructure
  • Measured in CUs consumed per second
  • If exceeded, you'll receive a 429 Too Many Requests error

Example: Business tier has 15,000 CUPs limit

  • Average request = 25 CUs
  • 15,000 CUPs ÷ 25 CUs = ~600 requests/second

2. Monthly CU Pool​

Total CUs available per billing cycle.

  • Controls total volume usage per month
  • Separate pools for standard and trace methods
  • Resets on your billing date
  • If exceeded, requests are throttled or billed at overage rates

Rate Limit Tiers​

TierMonthly CU PoolThroughput (CUPs)Trace CU Pool
Free150M CUs500 CUs/secNo access
Paid tiers with higher limits available at app.axol.io
Understanding the Table
  • Monthly CU Pool: Total standard API calls per month
  • Trace CU Pool: Separate allocation for trace_* and debug_* methods
  • Throughput (CUPs): Maximum CUs per second

Standard vs Trace CU Pools​

Trace and debug methods consume 50-5000x more compute than standard calls. To prevent accidental overages, they use a separate CU pool:

Pool TypeCoversPurpose
Standard Pooleth_*, net_*, web3_*, WebSocketNormal API operations
Trace Pooltrace_*, debug_*High-compute trace operations
Trace Methods Are Expensive

A single debug_traceBlockByNumber call (50,000 CUs) could cost more than 5,000 standard eth_call requests (26 CUs each). Always use trace methods sparingly.

Rate Limit Headers​

Every API response includes rate limit information:

X-RateLimit-CU-Limit: 2000000000
X-RateLimit-CU-Remaining: 1950000000
X-RateLimit-CU-Reset: 1704153600
X-RateLimit-Trace-CU-Limit: 200000000
X-RateLimit-Trace-CU-Remaining: 195000000
X-RateLimit-Trace-CU-Reset: 1704153600
HeaderDescription
X-RateLimit-CU-LimitYour monthly standard CU pool
X-RateLimit-CU-RemainingStandard CUs remaining this month
X-RateLimit-CU-ResetUnix timestamp when pool resets
X-RateLimit-Trace-CU-*Same info for trace CU pool

When Limits Are Exceeded​

Throughput Exceeded (429 Error)​

{
"error": "Rate limit exceeded",
"retryAfter": 2,
"cupsLimit": 10000,
"currentCups": 10500
}

Solution: Implement exponential backoff and retry logic

Monthly Pool Exhausted (402 Error)​

{
"error": "Monthly CU pool exhausted",
"cuLimit": 2000000000,
"cuUsed": 2000000000,
"resetDate": "2026-02-01T00:00:00Z"
}

Options:

  1. Wait until billing cycle resets
  2. Enable overage billing (charged at tier-specific rates)
  3. Upgrade to higher tier

Usage Alerts​

Automatic email alerts sent at:

  • 80% usage: Warning notification
  • 90% usage: Urgent notification
  • 100% usage: Critical notification + throttling begins
  • 110% usage: Hard limit (or overage billing if enabled)

Configure alert preferences at app.axol.io/settings/alerts.