Skip to main content
Rate limits apply per user. All of your API keys share a single budget, and so do the Solana regionseu. and us. draw on one allowance rather than one each.

What counts

Every request to /api/v1/swap and /api/v1/deploy consumes one unit from each window — including one that ends in an error, and including a swap that skip_if_bought suppressed. /api/v1/ping and /api/v1/wallets are the exceptions: they consume nothing. Ping holds a connection warm or reads your remaining budget without spending any of it; the wallet list is an in-memory lookup you can make before every trade. Rejected 429 requests are not counted either.

Response headers

Every response (including errors) includes your current budget: Counts are shared across regions and reconciled continuously, so the Remaining-* values are accurate within a moment rather than to the request. Right after you move traffic to another region its headers can read high until they catch up. A sudden increase in remaining budget is stale reporting, not new headroom — if you pace against these headers, keep your own counter as a floor.

HTTP 429: Too Many Requests

When any window is exhausted the server responds with 429 (code RATE_LIMITED) and adds a Retry-After header: The details field contains retry_after=<seconds>. The rejected request is not counted against your budget.