> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hypedexer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Limits & monthly quota

> RPC requests included in each plan, rate limits, eth_getLogs ranges and how each method counts.

Every plan includes a **monthly quota of RPC requests**, separate from your API credits. When the quota is used up, RPC keeps working on your API credits at **1 credit per 100 requests**.

## Requests included per plan

| Plan | RPC requests / month | Calls / second (burst) | `eth_getLogs` range | Batch size | WebSocket connections | Subscriptions / connection |
| - | -: | -: | -: | -: | -: | -: |
| **Free** | 1,000,000 | 10 (20) | 2,000 blocks | 10 | 2 | 5 |
| **RPC** (\$49/mo) | 15,000,000 | 50 (100) | 10,000 blocks | 50 | 5 | 50 |
| **Starter** | 25,000,000 | 50 (100) | 10,000 blocks | 50 | 10 | 50 |
| **Growth** | 150,000,000 | 150 (300) | 50,000 blocks | 100 | 25 | 200 |
| **Scale** | 500,000,000 | 300 (600) | 100,000 blocks | 100 | 50 | 500 |
| **Enterprise** | Custom | 500 (1,000) | 100,000 blocks | 100 | 100 | 1,000 |

* The quota covers a **calendar month (UTC)** and resets on the 1st at 00:00 UTC. Unused requests do not roll over.
* **The RPC plan is RPC only:** its keys are refused by the Data API (REST and WebSocket) and it includes no API credits. Top up credits to keep going past 15M requests in a month.
* **Calls per second** count JSON-RPC calls, not HTTP requests: a batch of 20 counts as 20.
* The RPC rate is **separate from the REST rate**: a busy RPC client does not slow the Data API on the same account.
* `eth_getLogs` with `blockHash` is always one block. Ranges above your plan's limit are refused with `-32005`; split them.

## How requests are counted

| Requests | Methods |
| -: | - |
| **0** | `eth_chainId`, `net_*` |
| **1** | Every other method: `eth_blockNumber`, `eth_getBalance`, `eth_call`, `eth_estimateGas`, `eth_getBlockBy*`, `eth_getTransaction*`, `eth_getTransactionReceipt`, `eth_sendRawTransaction`, filters, `web3_*`, `eth_subscribe`, `eth_unsubscribe` |
| **2** | `ots_*` |
| **3** | `eth_getLogs`, `eth_getFilterLogs`, `eth_getBlockReceipts` |

* A **batch** counts the sum of its calls.
* **WebSocket notifications** count **1 request each** (one `newHeads` event, one `logs` event).
* **Refused calls are not counted:** missing or invalid key, rate limit, blocked method, range or batch over the limit.
* Calls the node answers with an error (`execution reverted`…) are counted: the node did the work.

Example: a batch of `eth_chainId` + `eth_call` + `eth_getLogs` counts 0 + 1 + 3 = **4 requests**. The response says so in `X-RPC-Requests: 4`.

## Past the quota

* Each further block of **100 requests** uses **1 API credit** from the account's balance (the same balance as the Data API).
* When the quota is used up **and** the credit balance is empty, calls are refused with HTTP `402` (code `-32005`) and WebSocket connections close with code `4402`. Top up or upgrade in the [console](https://app.hypedexer.com).

## Response headers

| Header | Meaning |
| - | - |
| `X-RPC-Requests` | Requests counted for this HTTP call |
| `X-RPC-Requests-Used` | Requests counted this month for the account (refreshed within seconds) |
| `X-RPC-Requests-Limit` | Requests included this month |
| `X-RPC-Requests-Reset` | When the quota resets (ISO 8601, UTC) |
| `X-Credit-Balance` | API credits left, once the account has been seen at least once |

The console shows the month's usage by chain and method under **RPC**.

## Caching

Responses that can no longer change are cached at the edge: blocks, transactions, receipts and logs designated by hash, or by an explicit block number below the chain head, and calls made at such a block. A cached response carries `X-Cache: HIT` and is faster; it counts the same requests.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.