文档目录

自动订阅 — API 参考

指定地址的资源自动监控与补仓。

方法路径概览
GET/v1/subscriptions/plans保底能量预定套餐及平均单次使用成本
GET/v1/subscriptions列出订阅列表
POST/v1/subscriptions为指定地址配置自动补仓订阅
GET/v1/subscriptions/{subscriptionId}读取单项订阅详情
PATCH/v1/subscriptions/{subscriptionId}修改或暂停订阅
DELETE/v1/subscriptions/{subscriptionId}取消订阅

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

保底能量预定套餐及平均单次使用成本

GET /v1/subscriptions/plans · listSubscriptionPlans

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

公开接口;附带 API 密钥时会进行凭据校验。grid(动态阶梯)模式的套餐按当前时段计算 per_use 价格。服务端预先计算每日 10、50、200 和 1,000 次转账场景下的 average_price 平均单次成本。

响应

状态码含义
200当前可用套餐列表,按保底能量从低到高排序。

响应字段

字段类型必选说明
dataarray of object (SubscriptionPlan)是
data[].slugstring是
data[].namestring是
data[].reserve_energyinteger是始终保持委托质押在地址上的保底能量额度。
data[].daily_fee_suninteger是
data[].daily_fee_trxnumber是
data[].per_useobject是
data[].per_use.modeenum: flat, grid是grid = 当前时段 1 小时能量单价 × 65,000。
data[].per_use.energy_per_useinteger是
data[].per_use.price_suninteger | null是当 1 小时能量暂停发售时为 null。
data[].per_use.price_trxnumber | null是
data[].per_use.day_partstring | null是动态时段 ID;固定费率模式为 null。
data[].throughput_rulestring是
data[].refillobject是
data[].refill.lowinteger是当可用能量低于此数值时触发补仓。
data[].refill.highinteger是自动补足至此数值。
data[].uses_within_reserve_per_dayinteger是
data[].average_pricearray of object是平均每次使用成本:日租金 / N + 单次使用费用(N = 10, 50, 200, 1000)。
data[].average_price[].uses_per_dayinteger是
data[].average_price[].average_suninteger | null是
data[].average_price[].average_trxnumber | null是
data[].average_price[].within_reserveboolean是
atstring (date-time)是

列出订阅列表

GET /v1/subscriptions · listSubscriptions

鉴权: API 密钥 (HMAC)。

请求参数

参数名位置类型必选说明
statusqueryenum: active, paused, suspended, cancelled按订阅状态过滤。
receiverquerystring按接收地址过滤。
limitqueryinteger
cursorquerystring上次响应中 next_cursor 返回的不透明游标。

响应

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

响应字段

字段类型必选说明
dataarray of object (Subscription)是
data[].idstring是
data[].receiverstring是Base58Check 编码的 TRON 地址(以 T 开头,34 个字符)。
data[].resourceenum: energy, bandwidth是
data[].modeenum: refill, renewal是
data[].tierenum: 5m, 15m, 1h, 1d, 3d, 30d是租赁周期。
data[].threshold_amountinteger
data[].refill_amountinteger
data[].max_price_suninteger (int64) | null
data[].max_refills_per_dayinteger | null
data[].daily_fee_suninteger (int64)订阅未取消时按自然日收取的监控服务费。
data[].statusenum: active, paused, suspended, cancelled是paused 由用户主动设置;suspended 在余额不足以完成下次补仓时由平台自动挂起(充值后自动恢复);cancelled 为终止态。
data[].labelstring | null
data[].last_refill_atstring (date-time) | null
data[].last_order_idstring | null
data[].refills_todayinteger
data[].created_atstring (date-time)是
data[].updated_atstring (date-time)
data[].planstring套餐标识符(仅适用于套餐类订阅)。
data[].reserve_energyinteger | null
data[].delegated_energyinteger当前实际委托在地址上的能量数量。
data[].next_billing_atstring (date-time) | null
data[].grace_untilstring (date-time) | null扣费失败时质押保持宽限期截止时间。
data[].eventsarray of object (SubscriptionEvent)仅在套餐订阅的 GET /v1/subscriptions/{id} 中返回:最近 20 条事件。
data[].events[].idstring是
data[].events[].kindenum: refill, charge, pause, resume, cancel, top_up_failed是
data[].events[].energy_deltainteger | null
data[].events[].amount_suninteger | null
data[].events[].txidstring | null
data[].events[].tsstring (date-time)是
next_cursorstring | null是

为指定地址配置自动补仓订阅

POST /v1/subscriptions · createSubscription

鉴权: API 密钥 (HMAC)。

持续监控指定地址,并在其空闲资源低于 threshold_amount 时自动购买补充。支持两种模式:

  • mode: "refill" —— 按需自动补仓。定期轮询地址资源,一旦低于设定阈值即触发补仓订单。需为每次补仓订单付费,同时每日计取监控基础费。
  • mode: "renewal" —— 自动无缝续期。在当前 tier 租赁到期前自动续约重购,确保地址上的资源额度永不归零掉线。

计费机制:每次补仓或续约均作为普通订单按当时生效价格扣款,同时在订阅处于活跃期间按自然日收取 daily_fee_sun 服务费。当账户余额不足以支付下次补仓时,订阅转入 suspended 挂起状态(不会被删除),并触发 subscription.suspended 回调;充值到账后系统会自动恢复监控。

同一地址针对同一种资源类型最多只能存在一个订阅。重复创建将返回 3011 subscription_exists。

请求参数

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

请求体

JSON (SubscriptionRequest),必填。

字段类型必选说明
receiverstring是Base58Check 编码的 TRON 地址(以 T 开头,34 个字符)。
resourceenum: energy, bandwidth是
modeenum: refill, renewal是refill 余额不足自动补仓;renewal 到期前自动续订保活。
tierenum: 5m, 15m, 1h, 1d, 3d, 30d是租赁周期。
threshold_amountinteger是触发补仓的可用资源下限。
refill_amountinteger是每次补仓购买的资源数量。
max_price_suninteger (int64)最高可接受单笔总价(SUN),避免在市场极端行情高峰时高位补仓。超过时跳过当次补仓。
max_refills_per_dayinteger每日自动补仓次数上限熔断,防止地址发生高频交易意外抽干账户余额。强烈推荐设置。
labelstring | null

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

json
{
  "receiver": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
  "resource": "energy",
  "mode": "refill",
  "tier": "1h",
  "threshold_amount": 65000,
  "refill_amount": 131000,
  "max_price_sun": 3000000,
  "max_refills_per_day": 48
}

响应

状态码含义
201创建成功
400格式错误的请求 —— 无效 JSON、未知字段或字段类型错误。
401缺少、格式错误或已被拒绝的凭据。
402账户余额不足以支付。
409存在相同资源的重复订阅冲突。
422语法合法但逻辑上无法满足操作要求。
429请求过于频繁。
500服务端内部错误。

响应字段 (Subscription)

与 GET /v1/subscriptions 响应中的字段结构相同。

读取单项订阅详情

GET /v1/subscriptions/{subscriptionId} · getSubscription

鉴权: API 密钥 (HMAC)。

请求参数

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

响应

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

响应字段 (Subscription)

与订阅列表中的字段结构相同。

修改或暂停订阅

PATCH /v1/subscriptions/{subscriptionId} · updateSubscription

鉴权: API 密钥 (HMAC)。

可传入任意一个或多个可修改字段。status 仅接受 active 与 paused 两种输入值。suspended 是由系统在余额耗尽时自动标记并会在充值后自动解除;cancelled 需通过 DELETE 方法达成。空请求体将被拒绝并返回 2002 empty_patch。

请求参数

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

请求体

JSON (SubscriptionPatch),必填。

字段类型必选说明
statusenum: active, paused
tierenum: 5m, 15m, 1h, 1d, 3d, 30d
threshold_amountinteger
refill_amountinteger
max_price_suninteger (int64)
max_refills_per_dayinteger
labelstring | null

响应

状态码含义
200已更新
400格式错误的请求 —— 无效 JSON、未知字段或字段类型错误。
401缺少、格式错误或已被拒绝的凭据。
404目标对象不存在或属于其他账户。
422语法合法但逻辑上无法满足操作要求。
500服务端内部错误。

响应字段 (Subscription)

与 Subscription 对象字段相同。

取消订阅

DELETE /v1/subscriptions/{subscriptionId} · cancelSubscription

鉴权: API 密钥 (HMAC)。

终止未来的自动补仓动作。此前已经成功完成交付的质押资源不受影响,将继续维持至其租期正常到期;不支持提前退费或强制回收。订阅对象仍可通过接口读取,状态变为 status: "cancelled"。

请求参数

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

响应

状态码含义
204已取消。无响应体。
401缺少、格式错误或已被拒绝的凭据。
404目标对象不存在或属于其他账户。
500服务端内部错误。

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