---
title: "Request Counting"
description: "How BlockReq counts authenticated HTTP and WSS usage"
url: "https://blockreq.com/docs/pricing/request-counting/"
---

# Request Counting

BlockReq meters authenticated JSON-RPC by **distinguishable Requests**. Archive or historical reads are not a separate bill. The Dashboard shows **Requests used**, **Requests remaining**, and **Wallet balance**.

## What counts as one Request

- One authenticated HTTP JSON-RPC item that was executed or served counts as **1 Request**. That includes success, empty-but-valid results, cache hits, and execution exceptions such as revert.
- Each item in a customer batch is forwarded as its own request and counted on its own method. Mixed-method batches are not combined onto one method.
- One WSS JSON-RPC request, including subscribe or unsubscribe, counts as **1 Request**.
- Each delivered WSS event or notification counts as **1 Request**. This includes EVM `eth_subscription` pushes and Solana subscription messages. WSS notification counting is not replaced by the HTTP rule.

## What counts as zero

- HTTP JSON-RPC method not found and other non-execution application errors.
- Protocol, transport, rate-limit, or cancellation failures, and unrouted early errors.
- Local admission rejection.
- WSS ping and pong frames.
- Notifications that were not delivered to the customer.
- Authentication or policy rejections.
- Rate-limit responses (`429`) and gateway failures (`5xx`).
- Public unauthenticated HTTP or WSS traffic does not decrement a customer request balance.

## HTTP and WSS logs

- HTTP `eth_getLogs` counts as **1 Request**, regardless of block range.
- WSS log and subscription traffic counts each delivered event as **1 Request**.

## Method multipliers

Each distinguishable Request starts as **1 Request**. Some method families then count as N Requests used:

| Method family                         | Counts as | Methods                                                                                                                                                                                                                             |
| ------------------------------------- | --------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ordinary chain, net, and web3 calls   |         1 | `eth_*` such as `eth_blockNumber`, `eth_call`, `eth_getBalance`, `eth_getBlockByNumber`, `eth_sendRawTransaction`, `eth_getLogs`; `net_*`; `web3_*`; `eth_subscribe` / `eth_unsubscribe`; each delivered EVM or Solana notification |
| Proof and block receipts              |         3 | `eth_getProof`, `eth_getBlockReceipts`                                                                                                                                                                                              |
| Single-call debug and trace           |         5 | `debug_traceCall`, `debug_traceTransaction`, `trace_call`, `trace_callMany`, `trace_transaction`, `trace_filter`, `trace_get`, `trace_rawTransaction`, `trace_replayTransaction`                                                    |
| Block-level debug, replay, and txpool |        20 | `debug_traceBlockByNumber`, `debug_traceBlockByHash`, other `debug_traceBlock*`; `trace_block`; `trace_replayBlockTransactions`; `txpool_status`, `txpool_inspect`, `txpool_content`, and other `txpool_*`                          |

Free does not include `debug_*`, `trace_*`, or `txpool_*`. Paid plans do not distinguish those families from each other.

Archive or historical state reads use the same multiplier as the method itself.

## Examples

| Customer event                               | Requests used |
| -------------------------------------------- | ------------: |
| `eth_blockNumber`                            |             1 |
| Historical `eth_getBalance`                  |             1 |
| HTTP `eth_getLogs` (any block range)         |             1 |
| One delivered `eth_subscription` event       |             1 |
| One delivered Solana subscription message    |             1 |
| `eth_getProof`                               |             3 |
| `debug_traceCall`                            |             5 |
| `debug_traceBlockByNumber`                   |            20 |
| `eth_call` revert                            |             1 |
| HTTP method not found                        |             0 |
| WSS ping/pong or an undelivered notification |             0 |

## Balance and PAYG

Free grants and Request Packs hold **Requests remaining** in independently expiring lots. Settlement debits eligible lots using FEFO (earliest expiry first). If PAYG is enabled after prepaid Requests are exhausted, additional Requests used accrue at **$3.90 per 1M Requests used**.

The Dashboard shows Request volume and wallet value separately:

- **Request** remaining (prepaid balance)
- **Requests** 24h / 30d
- **Wallet balance**

See [Plans & Pricing](https://blockreq.com/docs/pricing/plans/index.md) for pack sizes, validity, availability, and rate limits.
