Rate Limits
Elfa applies request-rate limits and credit limits by access model. Use this page when sizing an integration, configuring retry behavior, or deciding between API key and x402 access.
API Key Limits
| Plan | Requests per minute | Monthly credits |
|---|---|---|
| Free | 60 RPM | 1,000 |
| Grow | 120 RPM | 120,000 |
| PAYG | 60 RPM | Prepaid balance |
| Enterprise | Custom | Custom |
API key limits apply per key. Subscription credits reset monthly. PAYG keys have no monthly allocation. They draw down a prepaid credit balance at $0.0145 per credit; accounts already on PAYG before the price change keep $0.009 until 28 September 2026, 16:00 UTC (29 September, 00:00 SGT). See Pricing for plan costs and top-up details.
API v3
v3 has a per-minute limit per key, set by the plan and shared with your /v2
requests. /v3/key-status returns it as
credits.requestsPerMinute, and responses carry it in headers:
RateLimit-Limit: 60
RateLimit-Remaining: 59
RateLimit-Reset: 42
Over it, you get 429 ERR_RATE_LIMIT_EXCEEDED: wait RateLimit-Reset
seconds. The limits per plan are in API Key Limits.
x402
x402 endpoints use server-side request limiting. Unlike API-key plans, x402 has one baseline and no tiered subscription limits. Each request carries payment headers and is charged in USDC per call or per credit consumed by the endpoint.
| x402 | |
|---|---|
| Limit | 1,000 requests |
| Window | 60 seconds |
| Scope key | Client IP address |
| Applies to | Documented /x402/v2 data, chat, and auto endpoints |
| Response on exceed | 429 Too Many Requests |
Chat flows also include abuse protections (temporary/permanent blocking logic) that are separate from the RPM limiter. These are behavior-based and not published as fixed RPM quotas.
Avoid large traffic bursts from a single egress IP: the limit is counted per client IP. For payment details, see x402 Payments.
Handling Limits
When an integration receives an HTTP 429 rate-limit response:
- Honor
Retry-Afterwhen present; otherwise start with a short delay and increase exponentially, with jitter. - Reuse cached responses when freshness requirements allow it.
- Avoid parallel duplicate calls for the same symbol, account, or time window.
- Track credit usage and request rate per API key, wallet, or agent identity.
- Monitor
429frequency and tune concurrency.