Tronergydocs

Pricing

Current energy price and hourly price history, public and without an API key.

These two endpoints need no API key and allow any origin (CORS), so you can call them from a browser, a price widget or a script. They show our price. To get the exact cost of a relay for your account, use Estimate.

Current price

Returns what an amount of energy costs right now. It uses the same provider choice and pricing rules as Estimate, and provider prices are refreshed every minute. An answer can be up to a minute old. Limit: 60 requests per minute per IP address.

GET/api/relayer_tron/public/rate
curl "https://apiv2.tronergy.io/api/relayer_tron/public/rate?energy=65000" \
  -H "x-api-key: $TRONERGY_API_KEY"
Parameters
energynumberquery

Energy units to price, 10,000 to 10,000,000, rounded up to a whole thousand. Defaults to 65,000, enough for one USDT transfer to an address that already holds USDT. A transfer to an address with no USDT needs about 131,000.

Response
{
  "ok": true,
  "currency": "TRX",
  "energy": 65000,
  "billedEnergy": 65000,
  "priceTrx": "1.120000",
  "priceSun": "1120000",
  "sunPerEnergy": 17.2308,
  "quotedAt": "2026-10-27T09:12:30.000Z"
}
FieldMeaning
energyThe amount priced: your energy, rounded up to a whole thousand.
priceTrxPrice for the energy, in TRX, as a decimal string.
priceSunThe same price in sun (1 TRX = 1,000,000 sun), as an integer string.
billedEnergyEnergy you get for that price. It can be more than energy when the cheapest provider sells a larger minimum amount.
sunPerEnergypriceSun divided by billedEnergy.
quotedAtWhen the price was calculated.

The price is for energy only. Bandwidth and activating a new address are not included; Estimate adds them for a real transaction, and can come out lower if the address already has energy. Prices follow the market and can change between calls.

Errors use the standard format:

StatuserrorMeaning
422Invalid query parametersenergy is not a whole number from 10,000 to 10,000,000.
429Over 60 requests in a minute from your IP address. Wait and retry.
502PRICE_QUOTE_FAILEDThe price could not be calculated.
503PRICE_UNAVAILABLENo energy provider can be priced right now. Try again in a minute.
curl "https://apiv2.tronergy.io/api/relayer_tron/public/rate?energy=131000"

Price history

Returns our price for each hour over a recent window, for a price chart. An answer can be up to five minutes old.

GET/api/relayer_tron/public/price-history
curl "https://apiv2.tronergy.io/api/relayer_tron/public/price-history?hours=48&energy=65000" \
  -H "x-api-key: $TRONERGY_API_KEY"
Parameters
hoursnumberquery

Hours to return, 1 to 168. Defaults to 48.

energynumberquery

Energy units each price is for, 10,000 to 10,000,000. Defaults to 65,000.

Response
{
  "ok": true,
  "currency": "TRX",
  "energy": 65000,
  "interval": "hour",
  "window": { "from": "2026-10-25T10:00:00.000Z", "to": "2026-10-27T10:00:00.000Z" },
  "latest": { "time": "2026-10-27T09:00:00.000Z", "priceTrx": 1.12, "sunPerEnergy": 17.2308, "basis": "quote" },
  "points": [
    { "time": "2026-10-27T08:00:00.000Z", "priceTrx": 1.12, "sunPerEnergy": 17.2308, "basis": "quote" },
    { "time": "2026-10-27T09:00:00.000Z", "priceTrx": 1.12, "sunPerEnergy": 17.2308, "basis": "quote" }
  ]
}

Each point is one hour. priceTrx is a number here, not a string. Hours with no known price have priceTrx, sunPerEnergy and basis set to null. latest is the newest point with a price, or null if there is none. basis says where a point comes from:

  • quote: the price we quoted in that hour.
  • sale: the average price of energy we sold in that hour. Used only for hours before we started recording quotes.
  • carried: no new price in that hour, so the previous price is repeated.

A point's price is the per-unit price multiplied by energy, so for amounts far from 65,000 it is approximate. Use Current price for an exact amount.

A bad hours or energy answers 400 with error: "Invalid query". If the history cannot be loaded you get 502.