# Live stats

`GET https://api.rarebl.com/open/stats/live` or `POST https://api.rarebl.com/open/stats/live`

One cheap call with the head of every chain: tip, mempool size and the current fee. Refreshed about every 2 seconds, so it is the one to poll.

**Rate class:** read (5 requests per second, burst 20, per IP). **Available since:** Open API v1.

## Request

Send the parameters as query parameters (GET) or as a JSON object (POST with `Content-Type: application/json`). They are identical either way. No API key is needed: `X-API-KEY` is reserved and ignored.

Example: `curl "https://api.rarebl.com/open/stats/live"`

## Parameters

This endpoint takes no parameters.

## Responses

### API200 (HTTP 200): OK

Heads of all six chains in the same order as Chains.

```json
{
  "status": 1,
  "code": "API200",
  "message": "success",
  "data": {
    "serverTime": "2026-11-14T22:39:43Z",
    "chains": [
      {
        "id": "btc",
        "status": "ok",
        "tip": {
          "height": 975854,
          "hash": "00000000000000000000ac4918a89711fb90ab487b7e21d02995f39d88a83b9c",
          "time": "2026-11-14T22:25:13Z"
        },
        "mempool": {
          "count": 70161,
          "bytes": 25261120
        },
        "fee": {
          "unit": "sat/vB",
          "standard": "0.13"
        },
        "checkedAt": "2026-11-14T22:39:43Z"
      },
      {
        "id": "ltc",
        "status": "ok",
        "tip": {
          "height": 3213201,
          "hash": "e7b72ef9f34b8f61b2b5dabec238088bf1198fe9779df88f5b1a87c8e3f276e7",
          "time": "2026-11-14T22:38:19Z"
        },
        "mempool": {
          "count": 172,
          "bytes": 50642
        },
        "fee": {
          "unit": "sat/vB",
          "standard": "1"
        },
        "checkedAt": "2026-11-14T22:39:43Z"
      },
      {
        "id": "bch",
        "status": "ok",
        "tip": {
          "height": 977391,
          "hash": "00000000000000000130fbfa0ec402f4fca4b414cdff8d264e4caa225c9ea81e",
          "time": "2026-11-14T22:39:19Z"
        },
        "mempool": {
          "count": 2,
          "bytes": 1163
        },
        "fee": {
          "unit": "sat/vB",
          "standard": "1"
        },
        "checkedAt": "2026-11-14T22:39:43Z"
      },
      {
        "id": "dash",
        "status": "ok",
        "tip": {
          "height": 2572373,
          "hash": "0000000000000008ef6f834cf172cb739f5542f0ad1f7103c9a22d65be56f064",
          "time": "2026-11-14T22:37:02Z"
        },
        "mempool": {
          "count": 26,
          "bytes": 18576
        },
        "fee": {
          "unit": "sat/vB",
          "standard": "1"
        },
        "checkedAt": "2026-11-14T22:39:43Z"
      },
      {
        "id": "eth",
        "status": "lagging",
        "tip": null,
        "mempool": null,
        "fee": null,
        "checkedAt": "2026-11-14T22:39:43Z"
      },
      {
        "id": "tron",
        "status": "lagging",
        "tip": {
          "height": 88007289,
          "hash": "00000000053ee279103116c09576a469acc68fe6ab27ffa89d3358ca59a3fc78",
          "time": "2026-11-14T22:36:06Z"
        },
        "mempool": {
          "count": 0,
          "bytes": null
        },
        "fee": {
          "unit": "sun",
          "standard": "100"
        },
        "checkedAt": "2026-11-14T22:39:43Z"
      }
    ]
  },
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

| Field | Type | Description |
| --- | --- | --- |
| `data.serverTime` | string | When the reply was built (ISO 8601 UTC). |
| `data.chains[].id` | string | Chain id. |
| `data.chains[].status` | string | `ok`, `lagging` or `down`. Height 0 (syncing) shows as lagging with a null tip. |
| `data.chains[].tip` | object \| null | Latest block `{height, hash, time}`. |
| `data.chains[].mempool` | object \| null | `{count, bytes}`; null where the chain has no mempool view (ETH today). |
| `data.chains[].fee` | object \| null | `{unit, standard}` in the same unit as Gas oracle. |
| `data.chains[].checkedAt` | string | When the backend last asked this node (ISO 8601 UTC). |

### API429 (HTTP 429): Too Many Requests

Rate limited (5 requests per second per IP, burst 20). A `Retry-After` header says how long to wait, in seconds.

```json
{
  "status": 0,
  "code": "API429",
  "message": "Too many requests. Please retry shortly.",
  "data": null,
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

## Notes

- Each chain head is cached for at most about 2 seconds. A slow or down node never delays the others: that chain is reported `down` for a few seconds.
- Poll no faster than once per 2 seconds. Compare `tip.hash` between polls to detect a new block, then fetch only what you need.
- See [Data freshness](https://docs.rarebl.com/data-freshness) and the guide [Market data and fees](https://docs.rarebl.com/guides/market-data).
