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

# Calcular preço de bandwidth

> Preço exato de um pedido de bandwidth para um volume e uma duração, taxa fixa incluída

## Calcular preço de bandwidth

Retorna o valor exato que será cobrado por um pedido de bandwidth com este volume e esta duração — aluguel e
taxa fixa juntos, pela **sua** tarifa. A cotação é calculada pelo mesmo código que cobra o
pedido; por isso, enquanto o preço não muda, a compra custa exatamente `total_trx`.

**Este endpoint é público — a autenticação é opcional.** Envie sua chave de API para receber a sua
tarifa e a sua taxa fixa; sem ela você obtém o preço público.

> [!TIP]
>
> Mostre `total_trx` ao seu usuário e envie-o como `max_price_trx` em
> [Comprar bandwidth](https://docs.tronrental.com/pt/api-reference/bandwidth/buy-bandwidth.md). Se o preço mudar entre a cotação e
> a compra, a compra é recusada com `409 PRICE_CHANGED` e nada é cobrado — cote
> novamente e repita.

### Parâmetros de consulta

**volume** `integer` *required*

Unidades de bandwidth a cotar. Entre 1 e 100.000.

**duration** `string` (default: 1h)

Período de aluguel: `1h`, `1d` ou um número inteiro de minutos de `5m` a `59m` — os mesmos valores de
[Comprar bandwidth](https://docs.tronrental.com/pt/api-reference/bandwidth/buy-bandwidth.md).

### Cabeçalhos

**X-API-Key** `string`

Opcional. Com uma chave válida a resposta reflete sua tarifa negociada e sua taxa fixa. Chave
ausente, inválida ou revogada não é erro — você recebe o preço público com
`personal_price: false`.

### Resposta

**volume** `number`

Unidades de bandwidth para as quais a cotação foi calculada

**duration** `string`

Período de aluguel para o qual a cotação foi calculada

**price\_sun** `string`

Tarifa em SUN por 1 unidade de bandwidth, arredondada a 0,01 para exibição. Os prazos em minutos têm
desconto, por isso a tarifa deles é fracionária, e os valores abaixo são calculados a partir da tarifa
exata — use `total_trx` em vez de multiplicar você mesmo este valor arredondado.

**rental\_trx** `string`

Custo de aluguel para este volume e esta duração, sem a taxa fixa

**fixed\_fee\_trx** `string`

Taxa fixa, cobrada **uma vez por pedido**, independentemente do volume e da duração. Reflete a sua
taxa caso haja taxa personalizada, desconto ou isenção na sua conta.

**total\_trx** `string`

**O que será cobrado**: `rental_trx + fixed_fee_trx`. Envie-o como `max_price_trx` em
[Comprar bandwidth](https://docs.tronrental.com/pt/api-reference/bandwidth/buy-bandwidth.md).

**personal\_price** `boolean`

`true` quando sua tarifa negociada foi aplicada, `false` quando a cotação usa o preço público.
Verifique este campo: um cabeçalho `X-API-Key` esquecido parece uma resposta normal, e você estaria
cotando o preço público aos seus clientes enquanto é cobrado pelo seu.

### Exemplo

```bash cURL theme={null}
curl "https://api.tronrental.com/v1/bandwidth/quote?volume=1000&duration=5m" \
  -H "X-API-Key: your_api_key"
```

```python Python theme={null}
import requests

resp = requests.get(
    "https://api.tronrental.com/v1/bandwidth/quote",
    params={"volume": 1000, "duration": "5m"},
    headers={"X-API-Key": "your_api_key"},
)
print(resp.json()["total_trx"])
```

```javascript JavaScript theme={null}
const resp = await fetch(
  "https://api.tronrental.com/v1/bandwidth/quote?volume=1000&duration=5m",
  { headers: { "X-API-Key": "your_api_key" } }
);
const quote = await resp.json();
console.log(quote.total_trx);
```

> [!NOTE]
>
> Os valores abaixo são um exemplo, com `price_sun_1h` igual a 400 e `short_max_discount_pct` igual a 5. As
> tarifas e o desconto atuais estão em [Consultar preços de bandwidth](https://docs.tronrental.com/pt/api-reference/bandwidth/get-prices.md).

```json Response theme={null}
{
  "volume": 1000,
  "duration": "5m",
  "price_sun": "380.00",
  "rental_trx": "0.380000",
  "fixed_fee_trx": "0.2",
  "total_trx": "0.580000",
  "personal_price": false
}
```

### O que a cotação não inclui

> [!WARNING]
>
> A cotação — e `max_price_trx` — cobre apenas o pedido de bandwidth. Se o endereço de destino ainda
> não estiver ativado on-chain, [Comprar bandwidth](https://docs.tronrental.com/pt/api-reference/bandwidth/buy-bandwidth.md) o ativa e
> cobra a ativação à parte (`activation_cost_trx` na resposta). Essa cobrança não faz parte de
> `total_trx` e não entra na verificação de `max_price_trx`.

### Agindo em nome de outra conta: `GET /v1/bandwidth/quote/me`

`/bandwidth/quote` calcula o preço para o **dono da chave de API**. Se a sua chave age em nome de outra
conta com o cabeçalho `X-Account-Id`, a compra é cobrada pela tarifa e pela taxa dessa conta — a cotação
pode diferir da cobrança, e um `max_price_trx` tirado dela pode ser recusado com `409 PRICE_CHANGED`.

Nesse caso, use `GET /v1/bandwidth/quote/me`. Ele aceita os mesmos parâmetros de consulta e retorna a
mesma resposta, mas exige autenticação, e a conta é determinada exatamente como na compra,
`X-Account-Id` incluído. Ele exige o escopo `view`, que toda chave sempre tem.

```bash cURL theme={null}
curl "https://api.tronrental.com/v1/bandwidth/quote/me?volume=1000&duration=5m" \
  -H "X-API-Key: your_api_key" \
  -H "X-Account-Id: 12345"
```

### Erros

| Código | Significado |
| - | - |
| `400 INVALID_VOLUME` | Volume fora de 1–100.000 |
| `400 INVALID_DURATION` | Duração diferente de `1h`, `1d` ou `5m` … `59m` |
| `401 INVALID_TOKEN` | Apenas `/quote/me`: chave de API ausente, desconhecida ou desativada |
| `403 FORBIDDEN` | Apenas `/quote/me`: sua chave não tem acesso ativo à conta em `X-Account-Id` |

Em `/bandwidth/quote` uma `X-API-Key` inválida ou revogada **não** é erro: a cotação é retornada
ao preço público com `personal_price: false`.


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