Recommended fees

Get recommended fees for a chain: fastest, medium and normal (fast, standard, slow) miner fees in sat/vB, ETH gas in Gwei or TRON energy price in sun.

# Recommended fees

`GET https://api.rarebl.com/open/fees/recommended` or `POST https://api.rarebl.com/open/fees/recommended`

Recommended fees for every chain at three speeds — fastest, medium and normal: the miner fee on BTC, LTC, BCH and DASH (sat/vB), the gas price on ETH (Gwei) and the energy price on TRON (sun).

**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/fees/recommended?chain=btc"`

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `chain` | string | Yes | The chain to query. One of: btc, ltc, bch, dash, eth, tron. |

## Responses

### API200 (HTTP 200): OK

Bitcoin fees from the node estimator.

```json
{
  "status": 1,
  "code": "API200",
  "message": "success",
  "data": {
    "fees": {
      "chain": "btc",
      "unit": "sat/vB",
      "slow": "0.12",
      "standard": "0.13",
      "fast": "1",
      "baseFee": null,
      "details": [
        {
          "key": "source",
          "label": "Source",
          "value": "Node fee estimator (estimatesmartfee)",
          "kind": "text"
        },
        {
          "key": "slow",
          "label": "Slow target",
          "value": "24 blocks",
          "kind": "text"
        },
        {
          "key": "standard",
          "label": "Standard target",
          "value": "6 blocks",
          "kind": "text"
        },
        {
          "key": "fast",
          "label": "Fast target",
          "value": "2 blocks",
          "kind": "text"
        },
        {
          "key": "mempoolMinFee",
          "label": "Mempool minimum fee",
          "value": "0.1",
          "kind": "number",
          "unit": "sat/vB"
        }
      ],
      "updatedAt": "2026-11-14T22:39:36Z"
    }
  },
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

| Field | Type | Description |
| --- | --- | --- |
| `data.fees.unit` | string | `sat/vB` (UTXO), `Gwei` (ETH) or `sun` (TRON). |
| `data.fees.fast` | string \| null | Fastest: aims for the next block or two (UTXO estimator target 2 blocks), in `unit`. |
| `data.fees.standard` | string \| null | Medium: about 6 blocks on UTXO chains (about an hour on BTC). On TRON this is the energy price. |
| `data.fees.slow` | string \| null | Normal: the cheapest sensible rate, about 24 blocks on UTXO chains. |
| `data.fees.baseFee` | string \| null | ETH base fee in Gwei; null elsewhere. |
| `data.fees.details` | DetailRow[] | Estimator targets, TRON energy and bandwidth prices, ETH priority fee percentiles. |
| `data.fees.updatedAt` | string | When the value was computed (ISO 8601 UTC). |

### API200 (HTTP 200): OK (TRON)

TRON: `standard` is the energy price in sun per energy unit; `slow` and `fast` are null.

```json
{
  "status": 1,
  "code": "API200",
  "message": "success",
  "data": {
    "fees": {
      "chain": "tron",
      "unit": "sun",
      "slow": null,
      "standard": "100",
      "fast": null,
      "baseFee": null,
      "details": [
        {
          "key": "energyPrice",
          "label": "Energy price",
          "value": "100",
          "kind": "number",
          "unit": "sun",
          "hint": "Cost of one unit of energy when burning TRX (1 TRX = 1,000,000 sun)."
        },
        {
          "key": "bandwidthPrice",
          "label": "Bandwidth price",
          "value": "1000",
          "kind": "number",
          "unit": "sun",
          "hint": "Cost of one byte of bandwidth when burning TRX."
        },
        {
          "key": "newAccountFee",
          "label": "Account activation fee",
          "value": "1",
          "kind": "amount",
          "unit": "TRX"
        }
      ],
      "updatedAt": "2026-11-14T22:39:44Z"
    }
  },
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

### API400 (HTTP 400): Bad Request

A parameter is missing or malformed. `data.param` names it (here `chain`).

```json
{
  "status": 0,
  "code": "API400",
  "message": "Unknown or missing chain.",
  "data": {
    "param": "chain"
  },
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

### 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": []
  }
}
```

### API502 (HTTP 502): Bad Gateway

The node is unavailable, still syncing or timed out. Retry later with a short back-off.

```json
{
  "status": 0,
  "code": "API502",
  "message": "The node is unavailable or timed out. Please try again.",
  "data": null,
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

## Notes

- Speeds: `fast` = fastest, `standard` = medium, `slow` = normal. Pass the same names as `priority` to [Build a transaction](https://docs.rarebl.com/api/tx/build), or a value from here as `feeRate`.
- UTXO miner fees are in sat/vB on all four chains. Bitcoin Cash has no estimator on the node: all three values are the relay minimum.
- The older path `/open/gas/oracle` returns the same reply.
- On TRON `standard` is the energy price in sun per energy unit, and `slow` and `fast` are null. 1 TRX = 1,000,000 sun.
- Fees are cached for 5 to 15 seconds. To read the standard fee of every chain in one call, use [Live stats](https://docs.rarebl.com/api/stats/live).

Back to the Rarebl AI documentation index