文档目录

价格查询 — API 参考

价目表、报价凭证与无状态预估。

方法路径概览
GET/v1/prices当前完整价目表
GET/v1/market公开全网能量租赁行情看板
GET/v1/market/history特定服务商的历史行情趋势
GET/v1/orderbook指定资源与周期的阶梯报价深度(Ask ladder)
GET/v1/estimate无状态快速价格预估
POST/v1/quotes创建具有约束力的锁价报价单
GET/v1/quotes/{quoteId}读取报价单详情

基于 openapi.yaml 在构建时生成。基准 URL 为 https://api.tenergy.me/v1,Nile 测试网环境为 https://api-nile.tenergy.me/v1(详见环境说明)。下述每个请求均遵循身份鉴权规范进行签名,除非鉴权行另有说明。

当前完整价目表

GET /v1/prices · getPrices

鉴权: 公开 —— 无需凭据;亦接受附带 API 密钥 (HMAC) 的请求。

包含当前所有可售资源、各租赁周期单价及适用的阶梯大额优惠。由于价格随全天不同时段动态调整,响应中包含当前价格承诺有效窗口(valid_until)、当前所属计价时段以及全天各个时段的 1h 能量价格计划表(schedule)。

主要用于前端展示资费价格表。下单锁价请使用报价单(POST /v1/quotes)—— 价目表展示的数据仅供参考,不构成强制约束。

公开接口。 无需认证凭据;匿名调用按来源 IP 限流。带签名的请求则计入密钥专属调用限额。

请求参数

参数名位置类型必选说明
resourcequeryenum: energy, bandwidth, activation仅筛选特定的资源类型。

响应

状态码含义
200OK
401缺少、格式错误或已被拒绝的凭据。
429请求过于频繁。
500服务端内部错误。

响应字段 (PriceTable)

字段类型必选说明
networkenum: mainnet, nile是
as_ofstring (date-time)是
valid_untilstring (date-time)是当前牌价可能发生变动的时间点。超过此时间请重新拉取,切勿过度缓存。
periodobject当前生效的计价时段。
period.idstring
period.labelstring
period.startstringHH:MM UTC
period.endstringHH:MM UTC
schedulearray of object当天所有计价时段列表,按开始时间排序,包含每个时段对应的 1 小时能量价格。
schedule[].idstring是
schedule[].labelstring是
schedule[].start_utc_minuteinteger是时段起始时间(UTC 00:00 起经过的分钟数)。
schedule[].end_utc_minuteinteger是时段截止时间(UTC 00:00 起经过的分钟数)。
schedule[].factor_bpsinteger是时段系数(基点,10,000 = ×1.00)。
schedule[].price_sun_per_unitnumber | null是该时段 1 小时能量单价(SUN/点)。未发售时为 null。
available_energyinteger (int64)当前平台立即可售的能量总量(1 小时周期的订单簿总深度)。
delivered_todayinteger (int64)自今日 UTC 00:00 以来已累计交付的能量总额。
payment_addressesobject无账户“直接转账 TRX”快捷通道收款地址。
available_bandwidthinteger (int64)
itemsarray of object是
items[].resourceenum: energy, bandwidth, activation是
items[].tierenum: 5m, 15m, 1h, 1d, 3d, 30d是租赁周期。
items[].price_sun_per_unitinteger是整个租赁周期内每单位资源的 SUN 单价。
items[].min_amountinteger是
items[].max_amountinteger是
items[].volume_tiersarray of object大额梯度优惠。
items[].volume_tiers[].min_amountinteger是
items[].volume_tiers[].price_sun_per_unitinteger是
activationobject激活未激活接收地址的单笔手续费。
activation.price_suninteger (int64)以 SUN 为单位的金额(1 TRX = 1,000,000 SUN)。始终为整数。

来自规范的 200 响应示例(示意数值):

json
{
  "network": "mainnet",
  "as_of": "2026-09-11T18:04:05.123Z",
  "valid_until": "2026-09-11T18:09:05.123Z",
  "period": {"id":"peak_late","label":"Late peak","start":"16:00","end":"00:00"},
  "schedule": [
    {
      "id": "drop",
      "label": "Drop",
      "start_utc_minute": 0,
      "end_utc_minute": 60,
      "factor_bps": 13500,
      "price_sun_per_unit": 27
    },
    {
      "id": "off_peak",
      "label": "Off-peak",
      "start_utc_minute": 60,
      "end_utc_minute": 540,
      "factor_bps": 10000,
      "price_sun_per_unit": 20
    },
    {
      "id": "ramp_9",
      "label": "Morning ramp",
      "start_utc_minute": 540,
      "end_utc_minute": 660,
      "factor_bps": 11000,
      "price_sun_per_unit": 22
    },
    {
      "id": "ramp_11",
      "label": "Midday ramp",
      "start_utc_minute": 660,
      "end_utc_minute": 720,
      "factor_bps": 12000,
      "price_sun_per_unit": 24
    },
    {
      "id": "ramp_12",
      "label": "Pre-peak ramp",
      "start_utc_minute": 720,
      "end_utc_minute": 840,
      "factor_bps": 15000,
      "price_sun_per_unit": 30
    },
    {
      "id": "peak",
      "label": "Peak",
      "start_utc_minute": 840,
      "end_utc_minute": 960,
      "factor_bps": 17000,
      "price_sun_per_unit": 34
    },
    {
      "id": "peak_late",
      "label": "Late peak",
      "start_utc_minute": 960,
      "end_utc_minute": 1440,
      "factor_bps": 15000,
      "price_sun_per_unit": 30
    }
  ],
  "available_energy": 412000000,
  "delivered_today": 80600000,
  "available_bandwidth": 1800000,
  "items": [
    {
      "resource": "energy",
      "tier": "1h",
      "price_sun_per_unit": 30,
      "min_amount": 32000,
      "max_amount": 3000000,
      "volume_tiers": []
    }
  ],
  "activation": {"price_sun":1200000}
}

公开全网能量租赁行情看板

GET /v1/market · getMarket

鉴权: 公开 —— 无需凭据;亦接受附带 API 密钥 (HMAC) 的请求。

各大公共服务商最新采集的 1 小时 / 1 天能量报价(由后台任务每 5 分钟轮询),并包含 TEnergy 自身的官方报价行。按 price_sun_1h 升序排序。savings_pct = 1 − price / burn_sun;stale 标识该行数据是否超过 15 分钟未更新。

响应

状态码含义
200行情看板数据。
401缺少、格式错误或已被拒绝的凭据。
429请求过于频繁。
500服务端内部错误。

响应字段 (MarketBoard)

字段类型必选说明
as_ofstring (date-time)是
burn_sunnumber是链上直接销毁 TRX 的基准价格(100 SUN/点)。
providersarray of object是
providers[].slugstring是
providers[].namestring是
providers[].rankinteger | null是1 = 1 小时价格最低排名;未报价为 null。
providers[].price_sun_1hnumber | null是
providers[].price_sun_1dnumber | null是
providers[].savings_pctnumber | null是相比燃烧 TRX 的节省百分比(保留 2 位小数)。
providers[].available_energyinteger | null是
providers[].total_energyinteger | null是
providers[].kindsarray of enum: api, bot, pool, market, web是
providers[].linksobject是
providers[].links.sitestring | null
providers[].links.telegramstring | null
providers[].links.twitterstring | null
providers[].links.githubstring | null
providers[].links.docsstring | null
providers[].links.referralstring | null
providers[].links.logostring | null
providers[].tsstring (date-time) | null是
providers[].staleboolean是
summaryobject是
summary.avg_price_sun_1hnumber | null是有效报价的 1 小时能量平均价格。
summary.active_providersinteger是

特定服务商的历史行情趋势

GET /v1/market/history · getMarketHistory

鉴权: 公开 —— 无需凭据;亦接受附带 API 密钥 (HMAC) 的请求。

返回指定服务商的历史采样点序列(按时间正序排列)。不存在的标识符返回空数组。

请求参数

参数名位置类型必选说明
slugquerystring是服务商唯一标识符。
hoursqueryinteger查询的历史小时跨度。

响应

状态码含义
200时间序列数据。
400格式错误的请求 —— 无效 JSON、未知字段或字段类型错误。
401缺少、格式错误或已被拒绝的凭据。
429请求过于频繁。
500服务端内部错误。

响应字段

字段类型必选说明
slugstring是
hoursinteger是
pointsarray of object是
points[].tsstring (date-time)是
points[].price_sun_1hnumber | null是
points[].price_sun_1dnumber | null是
points[].available_energyinteger | null是

指定资源与周期的阶梯报价深度(Ask ladder)

GET /v1/orderbook · getOrderBook

鉴权: 公开 —— 无需凭据。

按订单规模阶梯定价保障 100% 履约交付。平台公布由多个档位组成的阶梯报价表(价格 @ 额度,按价格由低到高排列)。大单自动沿阶梯逐层消耗吃单:最便宜的一档优先成交,耗尽后进入次便宜档,依此类推。规模越大或高峰期下单综合单价略有提升,但始终保证有货可买,杜绝“售罄”状态。

订单簿各档位的交付来源类型(class):

class含义
instant平台自有独家储备,毫秒级快速到账
market平台向批发同业市场即时采购
deep链上深层储备市场,无限量兜底保障

请求参数

参数名位置类型必选说明
resourcequeryenum: energy, bandwidth
tierqueryenum: 5m, 15m, 1h, 1d, 3d, 30d
amountqueryinteger测算消耗该额度所需的成交档位明细与加权单价。

响应

状态码含义
200OK
429请求过于频繁。
500服务端内部错误。

响应字段 (OrderBook)

字段类型必选说明
resourceenum: energy, bandwidth是
tierenum: 5m, 15m, 1h, 1d, 3d, 30d是
as_ofstring (date-time)是
valid_untilstring (date-time)是订单簿每数秒重新刷新;切勿超期缓存。
floor_sunnumber是牌价基准底价。
depthinteger是当前阶梯总可交付深度。
levelsarray of object (OrderBookLevel)是深度档位明细。
levels[].price_sunnumber是该档位的单价(SUN)。
levels[].amountinteger是该档位可提供的数量。
levels[].classenum: instant, market, deep是交付来源分类。
walkobject (OrderBookWalk) | null传递了 amount 时的吃单测算详情。
walk.amountinteger是
walk.fillsarray of object (OrderBookFill)是
walk.fills[].price_sunnumber是
walk.fills[].amountinteger是
walk.fills[].classenum: instant, market, deep是
walk.unit_price_sunnumber是吃单后的成交量加权平均单价。
walk.total_suninteger (int64)是最终成交总价(SUN)。始终为整数。
walk.completeboolean是
walk.outstandinginteger
cheaper_fromstring (date-time) | null下个更便宜计价时段的开始时间。

来自规范的 200 响应示例(示意数值):

json
{
  "resource": "energy",
  "tier": "1h",
  "as_of": "2026-09-19T18:04:05.123Z",
  "valid_until": "2026-09-19T18:04:08.123Z",
  "floor_sun": 20,
  "depth": 14200000,
  "levels": [
    {"price_sun":30,"amount":1200000,"class":"instant"},
    {"price_sun":34,"amount":3000000,"class":"market"},
    {"price_sun":58,"amount":10000000,"class":"deep"}
  ],
  "walk": null,
  "cheaper_from": "2026-09-20T01:00:00.000Z"
}

无状态快速价格预估

GET /v1/estimate · estimateOrder

鉴权: 公开 —— 无需凭据;亦接受附带 API 密钥 (HMAC) 的请求。

实时预估当前采购指定数量资源所需的花费,不产生任何副作用也不提前锁定价格。轻量快速,可随前端输入逐字发起请求。

此预估不具备约束力。若需要向最终用户保证预估金额即为最终扣款金额,请调用报价单接口生成 quote_id,并在调用 POST /v1/orders 下单时传入该字段。

请求参数

参数名位置类型必选说明
resourcequeryenum: energy, bandwidth, activation是
amountqueryinteger (int64)是采购的能量或带宽数量。
tierqueryenum: 5m, 15m, 1h, 1d, 3d, 30d是租赁周期。
receiverquerystring接收地址。如果提供,且该地址尚未在链上激活,将自动计算包含激活费。

响应

状态码含义
200OK
400格式错误的请求 —— 无效 JSON、未知字段或字段类型错误。
401缺少、格式错误或已被拒绝的凭据。
429请求过于频繁。
500服务端内部错误。

响应字段 (Estimate)

字段类型必选说明
resourceenum: energy, bandwidth, activation是
amountinteger是
tierenum: 5m, 15m, 1h, 1d, 3d, 30d是
receiverstring | null
price_sun_per_unitinteger是
energy_amount_suninteger (int64)仅资源的费用(不含激活费)。
activate_amount_suninteger (int64)目标地址未激活时的激活费。
total_amount_suninteger (int64)是最终总金额(以 SUN 为单位,1 TRX = 1,000,000 SUN)。始终为整数。
receiver_activatedboolean | null
as_ofstring (date-time)是

来自规范的 200 响应示例(示意数值):

json
{
  "resource": "energy",
  "amount": 65000,
  "tier": "1h",
  "receiver": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
  "price_sun_per_unit": 20,
  "energy_amount_sun": 1300000,
  "activate_amount_sun": 0,
  "total_amount_sun": 1300000,
  "receiver_activated": true,
  "as_of": "2026-09-11T18:04:05.123Z"
}

创建具有约束力的锁价报价单

POST /v1/quotes · createQuote

鉴权: API 密钥 (HMAC)。

在短暂的时间窗口内锁定购买价格。在创建订单时将返回的 id 传入 quote_id,即可确保扣款金额严格等于报价单中的 total_amount_sun,即使期间时段切换导致全网牌价发生变动。

报价单锁定的是价格,而非现货库存。若在真正创建订单前全网现货已全部售罄,订单将返回 5001 insufficient_supply 并不产生任何实际扣费。

请求参数

参数名位置类型必选说明
Idempotency-Keyheaderstring客户端指定的安全重试幂等键(8–128 个字符)。

请求体

JSON (QuoteRequest),必填。

字段类型必选说明
resourceenum: energy, bandwidth, activation是
amountinteger数量(能量与带宽必填;账户激活时忽略)。
tierenum: 5m, 15m, 1h, 1d, 3d, 30d是
receiverstringBase58Check 编码的 TRON 地址(以 T 开头,34 个字符)。

来自规范的请求体示例(示意数值):

json
{"resource":"energy","amount":65000,"tier":"1h","receiver":"TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"}

响应

状态码含义
201报价单已创建
400格式错误的请求 —— 无效 JSON、未知字段或字段类型错误。
401缺少、格式错误或已被拒绝的凭据。
422语法合法但逻辑上无法满足操作要求。
429请求过于频繁。
500服务端内部错误。

响应字段 (Quote)

字段类型必选说明
idstring是
resourceenum: energy, bandwidth, activation是
amountinteger
tierenum: 5m, 15m, 1h, 1d, 3d, 30d是
receiverstring | null
price_sun_per_unitinteger向上取整的整点单价(兼容旧客户端)。
unit_price_sunnumber本次报价锁定的精确成交量加权平均单价(精确至 0.01 SUN)。
fillsarray of object (OrderBookFill)阶梯报价深度匹配分布。单价统一成交时为空数组。
fills[].price_sunnumber是
fills[].amountinteger是
fills[].classenum: instant, market, deep是
energy_amount_suninteger (int64)
activate_amount_suninteger (int64)
total_amount_suninteger (int64)是最终总金额(以 SUN 为单位,1 TRX = 1,000,000 SUN)。始终为整数。
created_atstring (date-time)是
expires_atstring (date-time)是报价单过期时间。报价有效期为 120 秒。

来自规范的 201 响应示例(示意数值):

json
{
  "id": "qt_01J9Z5NB2K4R",
  "resource": "energy",
  "amount": 65000,
  "tier": "1h",
  "receiver": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
  "price_sun_per_unit": 20,
  "energy_amount_sun": 1300000,
  "activate_amount_sun": 0,
  "total_amount_sun": 1300000,
  "created_at": "2026-09-11T18:04:05.123Z",
  "expires_at": "2026-09-11T18:06:05.123Z"
}

读取报价单详情

GET /v1/quotes/{quoteId} · getQuote

鉴权: API 密钥 (HMAC)。

返回已生成的报价单详情及其有效性(expires_at 是否晚于当前时间)。

请求参数

参数名位置类型必选说明
quoteIdpathstring是

响应

状态码含义
200OK
401缺少、格式错误或已被拒绝的凭据。
404目标对象不存在或属于其他账户。
429请求过于频繁。
500服务端内部错误。

响应字段 (Quote)

与 POST /v1/quotes 响应字段相同。

    ↑ ↓ 切换 · Enter 打开 · Esc 关闭