# Limits

> Rate limits and per-method weights for RPC across plans.

All RPC limits by plan, in one place.

## What are the RPC rate limits per plan?

| Limit | STARTER | FOCUS | BUILD | GROW | PROFESSIONAL | Dedicated |
|---|---|---|---|---|---|---|
| Price | \$40/mo | \$99/mo | \$159/mo | \$259/mo | \$459/mo | custom |
| RPS (shared with gRPC) | 15 | 25 | 200 | 300 | 500 | unlimited |
| TPS | 5 | 10 | 30 | 50 | 100 | unlimited |

RPS is shared between RPC HTTP calls and gRPC `SubscribeRequest` updates (where applicable). WebSocket subscribe / unsubscribe also counts toward RPS.

## Aggregation window

RPS is calculated over a **10-second sliding window**. This makes the limit burst-friendly - a brief spike that averages within your plan won't be rate-limited.

## Which RPC methods cost more than one request unit?

Some methods cost more than 1 RPS unit per call:

| Method | Cost (RPS units) |
|---|---|
| `getProgramAccounts` | 30 |
| `getTransaction` | 10 |
| `getTokenAccountsByOwner` | 10 |
| `getTokenAccountsByDelegate` | 10 |
| `getTokenLargestAccounts` | 10 |
| `getMultipleAccounts` | 5 RPS units per 100 accounts (high-throughput pattern) or 2 RPS units per account (standard) |
| `getAccountInfo` | 2 |
| `getTokenAccountBalance` | 2 |
| All others | 1 |

Weights are the same on every plan - only your RPS limit changes.

## What happens when I hit a rate limit?

- **RPS exceeded** - standard `429 Too Many Requests`. Back off and retry.
- **TPS exceeded** - `sendTransaction` rejected with `429`. Back off, then retry the transaction.

## External references

- [Solana RPC HTTP methods](https://solana.com/docs/rpc/http)

## See also

- [What's available](https://supanode.xyz/docs/solana/rpc/whats-available)
- [Restrictions](https://supanode.xyz/docs/solana/rpc/restrictions)
- [All limits at a glance](https://supanode.xyz/docs/solana/pricing/limits)
- [Plans](https://supanode.xyz/docs/solana/pricing/plans)
