API 参考

本参考以当前 production 应用实际挂载的路由为准。下列路径与结构是已实现的合约,而不是路线图。

请求约定

API 密钥认证

Authorization: Bearer <YOUR_API_KEY>

将完整密钥作为 Bearer 令牌发送。API 会拒绝查询字符串中的 api_key。密钥具有明确的 read、buy 与 sell 作用域。

浏览器会话写操作

X-CSRF-Token: <SESSION_CSRF>

通过浏览器会话修改订单、续租、自动补充规则或卖家设置时需要此请求头。API 密钥不使用 CSRF。

幂等写操作

Idempotency-Key: <UNIQUE_VALUE>

创建单个或批量订单、创建多签会话以及准备再投资时,必须提供最长 128 个字符的非空 Idempotency-Key。续租同样使用幂等键。仅在重试完全相同的操作时复用该值。

JSON 请求体

Content-Type: application/json

带 JSON 请求体的请求应发送此媒体类型。成功响应直接返回文档所述对象,不使用额外的成功信封。

游标分页

{ "items": [], "next_cursor": null, "has_more": false }

列表路由返回 items、next_cursor 与 has_more。将游标视为不透明值,并在下一次请求中原样传回;不要据此构造 offset。

标准错误信封

{ "error": { "code": "invalid_request", "message": "...", "request_id": "..." } }

所有错误使用同一信封。代码包括 invalid_request、unauthorized、forbidden、not_found、conflict、rate_limited、unavailable、insufficient_balance 与 internal。字段验证详情仅出现在 422 响应中。

公开市场

这些路由不需要凭证。请使用下列查询参数名称;启用严格查询校验的路由会拒绝未知名称,而不是忽略它们。

GET /v1/price 公开

返回最近已结算价格、24 小时区间与成交量,以及价格和 APY 计算所用的实时网络比率。

关键字段
query: resource
响应
PriceResponse { resource, last_price_sun, change_24h_pct, high_24h_sun, low_24h_sun, volume_24h, network_ratio, burn_fee_sun_per_unit, trx_usd, updated_at }
GET /v1/market/depth 公开

返回指定资源、租期与最小数量的聚合卖盘和买盘档位。

关键字段
query: resource, duration, min_lot
响应
DepthResponse { resource, duration_sec, min_lot, asks[], bids[], spread_sun, updated_at }
GET /v1/market/trades 公开

仅返回已结算成交,按时间倒序排列,并在可用时附带卖家与链上证据。

关键字段
query: resource, limit, cursor
响应
Page<TradeItem> { items[], next_cursor, has_more }
GET /v1/market/orders 公开

返回当前可成交的公开需求,包括剩余数量、卖家净收入、最低成交量与租期。

关键字段
query: resource, duration_sec, min_amount, limit, cursor
响应
Page<MarketOrderItem> { items[], next_cursor, has_more }
GET /v1/market/stats 公开

返回指定资源的主要活动与可用容量汇总。

关键字段
query: resource
响应
MarketStats { resource, open_orders, available_amount, volume_24h, fills_24h, active_sellers, avg_seller_apy_percent, network_ratio, updated_at }
GET /v1/market/ohlcv 公开

返回有界、按时间正序的 K 线窗口。tf 可为 1m、5m、15m、1h、4h 或 1d。

关键字段
query: resource, tf, limit
响应
Page<OhlcvBar> { items[{ t, o, h, l, c, v }], next_cursor: null, has_more: false }
GET /v1/sellers 公开

按所选资源的实测履约表现,返回当前符合条件的卖家。

关键字段
query: resource, limit, cursor
响应
Page<SellerPublic> { items[], next_cursor, has_more }
GET /v1/sellers/{address} 公开

返回一个有效 TRON 卖家地址的公开履约记录。

关键字段
path: address; query: resource
响应
SellerPublic { address, resource, fills_total, fill_rate_pct, rating, typical_delivery_ms, volume_trx, active_since }
WS /v1/stream 公开频道;用户频道需要会话 cookie

推送公开价格、深度、成交与订单事件。已登录会话还可订阅自己的用户频道。

关键字段
frame: { op, channels[] }; public prefixes: price:, depth:, trades:, orders:
响应
welcome | subscribed | unsubscribed | event | pong | error

已认证买家

读取需要 read 作用域;订单、续租和自动补充变更需要 buy 作用域;浏览器会话还需提供 CSRF 令牌。

POST /v1/orders buy 作用域;会话写操作还需 CSRF

预留买家余额、匹配可用供给,并在同一事务中发布未成交余量。供应商回退当前不可用:省略 allow_provider_fallback 或传 false;传 true 会返回 HTTP 422。

关键字段
body: resource, amount, duration_sec, price_sun, receiver_address, allow_partial, extension_required, smart_matching (optional; prefers a previously successful seller only within the same price level), allow_provider_fallback (optional; omit or false only while provider fallback is unavailable; true returns 422), slippage_pct, min_fill_amount, ttl_sec, scheduled_at (optional ISO-8601; naive=UTC, offset-aware normalized to UTC; for a new request, strictly future and no more than 7 days ahead); header: Idempotency-Key
响应
OrderResponse { id, status, extension_required, smart_matching, cost_trx, price_improvement_trx, fills[], scheduled_at, expires_at, created_at, ... }
POST /v1/orders/batch buy 作用域;会话写操作还需 CSRF

以相同条件为 1–25 个唯一且已激活的 TRON 接收地址原子创建订单。系统会在提交托管资金前验证所有接收地址,完全相同的重试返回已有批次。

关键字段
body: the same shared order terms plus receiver_addresses (1–25 unique activated TRON addresses); header: Idempotency-Key. The basket is atomic and a changed retry body returns 409.
响应
OrderBatchResponse { id, target_count, orders: OrderResponse[] }
POST /v1/multisig/sessions buy 作用域;会话写操作还需 CSRF

准备一笔发送到调用方平台充值地址的未签名转账。服务器既不签名也不广播;所有者在 TronLink 中签名。签名权重未达到阈值时状态为 pending,达到后为 ready,超过交易期限后为 expired。

关键字段
body: owner_address, amount_trx, permission_id; header: Idempotency-Key
响应
MultisigSessionResponse { id, owner_address, destination_address, amount_trx, permission_id, tx_id, transaction, signatures_collected, required_weight, current_weight, status: pending | ready | expired, expires_at, created_at }
POST /v1/multisig/sessions/{session_id}/signatures buy 作用域;会话写操作还需 CSRF

添加一份用户提供的签名,针对已准备交易验证签名,并重新计算其链上权限权重。服务器仍不会广播交易。

关键字段
path: session_id; body: signature (130 hexadecimal characters)
响应
MultisigSessionResponse
GET /v1/multisig/sessions/{session_id} read 作用域:会话或 API 密钥

返回调用方当前签名会话、已收集签名与已验证权重,不暴露其他用户的会话。

关键字段
path: session_id
响应
MultisigSessionResponse
GET /v1/orders read 作用域:会话或 API 密钥

按时间倒序返回调用者自己的订单,并可仅保留活跃订单。

关键字段
query: limit, cursor, active_only
响应
Page<OrderResponse> { items[], next_cursor, has_more }
GET /v1/rentals read 作用域:会话或 API 密钥

返回调用者作为买家拥有且仍在生效的已确认 P2P 租赁,包括链上验证的交付量与解锁时间;接收地址可以是其他钱包。供应商成交会保留在订单历史中,直到具备其租期证据。

关键字段
query: limit, cursor
响应
Page<RentalItem> { items[{ id, order_id, resource, receiver_address, amount, delivered_amount, duration_sec, delegated_at, expires_at, status, cost_trx, can_extend, extension_order_id, extension_scheduled_at, extension_status }], next_cursor, has_more }
GET /v1/rentals/incoming read 作用域:会话或 API 密钥

返回调用者由服务器确定的主要已验证钱包收到的、已结算且仍在生效的 TET P2P 委托,包括链上验证的交付量与解锁时间;响应不包含买家订单与商业字段。

关键字段
query: limit, cursor
响应
Page<IncomingDelegationItem> { items[{ id, resource, receiver_address, delivered_amount, delegated_at, expires_at, status }], next_cursor, has_more }
POST /v1/rentals/{rental_id}/extend buy 作用域;会话写操作还需 CSRF

立即预留买家内部余额,并在原租约解锁时安排一个 P2P 子订单,保留已交付数量、接收地址与租期。

关键字段
path: rental_id; optional header: Idempotency-Key; no body
响应
RentalExtensionRequestResponse { id, rental_id, status, order_id, created_at, executed_at }; 202 accepted, 200 replay
GET /v1/mandates read 作用域:会话或 API 密钥

返回调用者的自动补充规则,包括当前状态、观测到的资源量、预算使用情况与最近子订单。

关键字段
query: limit, cursor
响应
Page<MandateResponse> { items[], next_cursor, has_more }
POST /v1/mandates buy 作用域;会话写操作还需 CSRF

使用内部余额创建自动补充规则,并明确设置触发阈值、目标、价格、租期、预算与截止时间。

关键字段
body: resource, target_address, trigger_level, target_level, duration_sec, max_price_sun, budget_trx, deadline, enabled
响应
MandateResponse { id, status, budget_used_trx, budget_remaining_trx, last_observed_available, last_order_id, ... }
PATCH /v1/mandates/{mandate_id} buy 作用域;会话写操作还需 CSRF

修改自有自动补充规则的限制或启用状态,但不改变资源类型与目标地址。

关键字段
path: mandate_id; body: trigger_level, target_level, duration_sec, max_price_sun, budget_trx, deadline, enabled
响应
MandateResponse
GET /v1/orders/{order_id} read 作用域:会话或 API 密钥

返回调用者拥有的一个订单;他人订单与不存在的订单不可区分。

关键字段
path: order_id
响应
OrderResponse
PATCH /v1/orders/{order_id} buy 作用域;会话写操作还需 CSRF

在编辑窗口内修改订单的绝对条件,并返回托管预留变化。

关键字段
path: order_id; body: price_sun, amount, receiver_address
响应
OrderResponse { ..., escrow_delta_trx }
DELETE /v1/orders/{order_id} buy 作用域;会话写操作还需 CSRF

取消符合条件的订单,并返回两个独立的精确 TRX 金额:refunded_trx 是释放的托管退款,cancellation_fee_trx 是条件性取消费用。费用为零表示未收取费用。

关键字段
path: order_id
响应
OrderResponse { ..., refunded_trx, cancellation_fee_trx }

已认证卖家

卖家报表使用 read 作用域;同步或修改自动出售池需要 sell 作用域。

GET /v1/seller/pool read 作用域:会话或 API 密钥

返回调用者的卖家状态、精确权限要求、容量、待结算收益与自动出售设置。

关键字段
响应
SellerPoolResponse { status, permissions, stake and capacity, pending_payout_trx, smart_reuse, auto_extend, reinvest, settings }
POST /v1/seller/pool/sync sell 作用域;会话写操作还需 CSRF

将已验证钱包与实时链上权限、质押和 bandwidth 状态对账,并在需要时创建卖家记录。

关键字段
响应
SellerPoolResponse
PATCH /v1/seller/pool sell 作用域;会话写操作还需 CSRF

保存自动出售条件与卖方策略。smart_reuse 只在同一价格层级内优先选择曾服务同一接收地址的卖方;auto_extend 允许买方请求相同租期的续租;reinvest 启用非托管再投资准备。

关键字段
body: auto_sell_enabled, bandwidth_auto_sell_enabled, smart_reuse, auto_extend, reinvest, min_price_sun, bandwidth_min_price_sun, allowed_durations_sec, min_order_amount, max_order_amount, min_delegation
响应
SellerPoolResponse
GET /v1/seller/delegations read 作用域:会话或 API 密钥

返回调用者的对外代理及已记录的交付与收益证据。

关键字段
query: resource, active_only, limit, cursor
响应
Page<DelegationItem> { items[], next_cursor, has_more }
GET /v1/seller/earnings read 作用域:会话或 API 密钥

返回卖方待结算、累计已支付与今日收益、当前已达到支付条件时的下一支付策略时间点,以及 30 天逐日历史。

关键字段
响应
EarningsResponse { pending_trx, paid_total_trx, today_trx, apy_30d_percent, next_payout_at, history[] }
POST /v1/seller/reinvestment/sessions sell 作用域;会话写操作还需 CSRF

为一笔已完成的卖方支付准备未签名 FreezeBalanceV2。服务器绝不签名或广播;卖方通过 TronLink 签名并广播。同一笔支付只能关联一个会话。

关键字段
header: Idempotency-Key; no body
响应
SellerReinvestmentSessionResponse { id, payout_entry_id, amount_trx, tx_id, transaction, status: pending | signed | expired, expires_at, signed_at, created_at }
POST /v1/seller/reinvestment/sessions/{session_id}/confirmation sell 作用域;会话写操作还需 CSRF

确认签名交易与已准备的 FreezeBalanceV2 完全一致,验证签名权重,并在不广播的情况下把会话记录为 signed。

关键字段
path: session_id; body: signed_transaction
响应
SellerReinvestmentSessionResponse
GET /v1/seller/reinvestment/sessions/{session_id} read 作用域:会话或 API 密钥

返回调用方自己的再投资会话,状态为 pending、signed 或 expired。

关键字段
path: session_id
响应
SellerReinvestmentSessionResponse

认证与账户

钱包登录会创建浏览器会话。API 密钥生命周期写操作仅限会话,防止被盗密钥签发或替换凭证。

POST /v1/auth/nonce 公开

返回钱包必须签署的、与本站绑定的精确消息。

关键字段
body: address
响应
NonceResponse { nonce, message, expires_at }
POST /v1/auth/verify 公开

验证 nonce 消息与 TIP-191 签名,然后创建浏览器会话。可选推荐码仅在该钱包创建新账户时生效。

关键字段
body: address, message, signature, ref? (6–32 URL-safe characters)
响应
SessionResponse { user_id, address, role, csrf, expires_at, created } + session cookie
POST /v1/auth/logout 浏览器会话

撤销并清除当前浏览器会话。

关键字段
响应
{ ok: true }
GET /v1/auth/me 会话或 API 密钥

返回当前主体、认证方式与有效作用域。

关键字段
响应
MeResponse { user_id, role, method, scopes[], preferred_lang }
GET /v1/balance read 作用域:会话或 API 密钥

以精确十进制字符串返回账户余额、可为 null 的 deposit_address 与 deposit_minimum_trx,以及必需的 recent_deposits 数组。充值功能已配置且扫描器与地址分配就绪时,地址是调用者稳定的个人平台充值地址,最低金额是自动入账所需的精确 TRX 十进制字符串;充值功能禁用或不可用时两字段均为 null。不传 deposit_txid 时,recent_deposits 最多包含调用者最新的五笔充值,每项含 txid、amount_trx、status、confirmations_required、observed_at 与 credited_at。传入恰好 64 个十六进制字符的 deposit_txid 时,该数组返回零条或一条调用者所有的精确匹配,即使该记录更早。seen 表示等待确认;confirmed 表示已确认但因低于当前最低金额而未入账;credited 表示已计入可用余额;orphaned 表示已脱离规范链,任何入账均已冲销。

关键字段
query: deposit_txid (optional; exactly 64 hexadecimal characters)
响应
BalanceResponse { user_id, available_trx, escrow_held_trx, seller_pending_trx, deposit_address, deposit_minimum_trx, recent_deposits[{ txid, amount_trx, status, confirmations_required, observed_at, credited_at }] }
GET /v1/referrals read 作用域:会话或 API 密钥

返回调用者的稳定推荐链接、待结算与累计奖励、受邀账户及订单状态,以及已持久化的结算历史。只有实际安排结算批次后,next_payout_at 才会非 null。

关键字段
响应
ReferralsResponse { code, link, pending_trx, earned_total_trx, active_count, awaiting_first_order, next_payout_at, referred[], payouts[] }
POST /v1/keys 浏览器会话 + CSRF

创建带作用域的 API 密钥。完整密钥仅返回一次,之后无法恢复。

关键字段
body: name, can_read, can_buy, can_sell
响应
ApiKeyResponse { id, name, key_prefix, secret, can_read, can_buy, can_sell, last_used_at, created_at, revoked_at }; secret appears once
GET /v1/keys 浏览器会话

返回调用者拥有的完整密钥生命周期记录,包括已撤销密钥。

关键字段
响应
Page<ApiKeyResponse> { items[], has_more: false }
DELETE /v1/keys/{key_id} 浏览器会话 + CSRF

撤销一个自有 API 密钥,同时不泄露他人密钥是否存在。

关键字段
path: key_id
响应
ApiKeyResponse { ..., revoked_at }