aster-api-websocket-v3

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Aster API WebSocket

Aster API WebSocket

Base: wss://fstream.asterdex.com. Raw:
/ws/<streamName>
. Combined:
/stream?streams=name1/name2/...
{"stream":"<name>","data":<payload>}
. Stream names lowercase (e.g. btcusdt).
Limits: 24h; ping 5 min → pong within 15 min; 10 msg/s; max 200 streams.
基础地址: wss://fstream.asterdex.com。单流地址:
/ws/<streamName>
组合流地址:
/stream?streams=name1/name2/...
→ 返回格式
{"stream":"<name>","data":<payload>}
。流名称必须小写(例如 btcusdt)。
连接限制: 最长24小时有效;每5分钟需发送ping帧,需在15分钟内返回pong;每秒最多发送10条消息;最多同时订阅200个流。

Market: subscribe / unsubscribe

行情流:订阅/取消订阅

JSON: Subscribe
{"method":"SUBSCRIBE","params":["btcusdt@aggTrade","btcusdt@depth"],"id":1}
{"result":null,"id":1}
. Unsubscribe:
UNSUBSCRIBE
+ params. List:
LIST_SUBSCRIPTIONS
.
id
= unsigned int.
JSON格式:订阅
{"method":"SUBSCRIBE","params":["btcusdt@aggTrade","btcusdt@depth"],"id":1}
→ 响应
{"result":null,"id":1}
取消订阅: 方法改为
UNSUBSCRIBE
,参数格式相同。查询已订阅列表: 方法为
LIST_SUBSCRIPTIONS
id
为无符号整数。

Stream names (market)

流名称(行情类)

StreamDescription
<symbol>@aggTrade
Aggregate trades (100ms)
<symbol>@depth
Diff. book depth (250/500/100ms:
@depth@500ms
,
@depth@100ms
)
<symbol>@depth5
,
@depth10
,
@depth20
Partial book depth
<symbol>@kline_<interval>
Kline (e.g. 1m, 1h); interval as in REST
<symbol>@markPrice
,
<symbol>@markPrice@1s
Mark price (3s or 1s)
!markPrice@arr
,
!markPrice@arr@1s
All symbols mark price
<symbol>@miniTicker
24h mini ticker (500ms)
!miniTicker@arr
All mini tickers (1000ms)
<symbol>@ticker
24h ticker (500ms)
!ticker@arr
All tickers (1000ms)
<symbol>@bookTicker
Best bid/ask (real-time)
!bookTicker
All book tickers
<symbol>@forceOrder
Liquidation snapshot (1000ms)
!forceOrder@arr
All liquidations
Stream说明
<symbol>@aggTrade
聚合成交数据(每100ms推送一次)
<symbol>@depth
订单簿深度增量(支持250/500/100ms间隔:
@depth@500ms
@depth@100ms
<symbol>@depth5
@depth10
@depth20
部分档位订单簿深度
<symbol>@kline_<interval>
K线数据(例如1m、1h);时间间隔与REST接口定义一致
<symbol>@markPrice
<symbol>@markPrice@1s
标记价格(每3秒或1秒推送一次)
!markPrice@arr
!markPrice@arr@1s
全交易对标记价格
<symbol>@miniTicker
24小时精简行情(每500ms推送一次)
!miniTicker@arr
全交易对24小时精简行情(每1000ms推送一次)
<symbol>@ticker
24小时完整行情(每500ms推送一次)
!ticker@arr
全交易对24小时完整行情(每1000ms推送一次)
<symbol>@bookTicker
最优买卖盘口(实时推送)
!bookTicker
全交易对最优买卖盘口
<symbol>@forceOrder
强平订单快照(每1000ms推送一次)
!forceOrder@arr
全交易对强平订单

User data stream

用户数据流

  1. Start:
    POST /fapi/v3/listenKey
    (signed) →
    { "listenKey": "..." }
    . If account already has active listenKey, same key returned and validity extended 60 min.
  2. Connect:
    wss://fstream.asterdex.com/ws/<listenKey>
    .
  3. Keepalive:
    PUT /fapi/v3/listenKey
    (signed) at least every <60 min (e.g. every 30 min).
  4. Close:
    DELETE /fapi/v3/listenKey
    (signed).
User data events are not guaranteed in order during heavy load; order updates by event time
E
.
Events:
ACCOUNT_UPDATE
(balance/position),
ORDER_TRADE_UPDATE
,
ACCOUNT_CONFIG_UPDATE
(leverage, multi-asset, position mode),
MARGIN_CALL
,
listenKeyExpired
.
  1. 创建流: 调用
    POST /fapi/v3/listenKey
    (需签名) → 返回
    { "listenKey": "..." }
    。如果账号已有活跃的listenKey,会返回相同的key并将有效期延长60分钟。
  2. 建立连接:
    wss://fstream.asterdex.com/ws/<listenKey>
  3. 保活: 至少每小于60分钟调用一次
    PUT /fapi/v3/listenKey
    (需签名)(例如每30分钟调用一次)。
  4. 关闭流: 调用
    DELETE /fapi/v3/listenKey
    (需签名)。
高负载场景下不保证用户数据事件的推送顺序,可通过事件时间
E
对订单更新进行排序。
事件类型:
ACCOUNT_UPDATE
(余额/持仓变动)、
ORDER_TRADE_UPDATE
(订单/成交更新)、
ACCOUNT_CONFIG_UPDATE
(杠杆、多资产模式、持仓模式配置更新)、
MARGIN_CALL
(追加保证金通知)、
listenKeyExpired
(listenKey过期通知)。

Order book sync (depth stream)

订单簿同步(深度流)

  1. Connect to
    btcusdt@depth
    (or combined).
  2. Buffer incoming events.
  3. Get snapshot:
    GET /fapi/v3/depth?symbol=BTCUSDT&limit=1000
    .
  4. Drop events with
    u
    < snapshot
    lastUpdateId
    .
  5. First valid event:
    U
    lastUpdateId
    and
    u
    lastUpdateId
    .
  6. Then each event’s
    pu
    must equal previous event’s
    u
    ; else re-sync from step 3.
  7. Quantity in events is absolute; quantity 0 means remove that price level.
Payload shapes: reference.md.
  1. 连接到
    btcusdt@depth
    流(或组合流)。
  2. 缓存收到的事件。
  3. 获取深度快照:调用
    GET /fapi/v3/depth?symbol=BTCUSDT&limit=1000
  4. 丢弃
    u
    值小于快照
    lastUpdateId
    的事件。
  5. 第一个有效事件需要满足:
    U
    lastUpdateId
    u
    lastUpdateId
  6. 后续每个事件的
    pu
    值必须等于上一个事件的
    u
    值,否则从第3步开始重新同步。
  7. 事件中的数量是绝对值,数量为0表示移除该价格档位。
负载结构参考:reference.md