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).