更新日志
重要文档通知
Binance 推出了全新的 API 文档门户。现有的 GitHub API 文档 已废弃,并将在用户迁移完成后的几个月内下线(2024-06-17);具体日期将在适当时候确定并通知。
在此过渡阶段,两者网站将同时维持。然而,任何新服务将只会在新的门户上发布。
下面是当前和新 API 文档的链接的参考表:
功能 | 当前文档 | 新文档 |
---|---|---|
现货交易 | 当前文档 | 新文档 |
现货Websocket API | 当前文档 | 新文档 |
杠杆交易 | 当前文档 | 新文档 |
U本位合约 | 当前文档 | 新文档 |
币本位合约 | 当前文档 | 新文档 |
欧式期权 | 当前文档 | 新文档 |
统一账户 | 当前文档 | 新文档 |
钱包 | 当前文档 | 新文档 |
子母账户 | 当前文档 | 新文档 |
赚币 | 当前文档 | 新文档 |
双币投资 | 当前文档 | 新文档 |
定投 | 当前文档 | 新文档 |
ETH质押 | 当前文档 | 新文档 |
矿池接口 | 当前文档 | 新文档 |
策略交易 | 当前文档 | 新文档 |
跟单交易 | 当前文档 | 新文档 |
统一账户专业版 | 当前文档 | 新文档 |
法币 | 当前文档 | 新文档 |
C2C | 当前文档 | 新文档 |
VIP借币 | 当前文档 | 新文档 |
质押借币 | 当前文档 | 新文档 |
Pay | 当前文档 | 新文档 |
闪兑 | 当前文档 | 新文档 |
返佣 | 当前文档 | 新文档 |
NFT | 当前文档 | 新文档 |
礼品卡 | 当前文档 | 新文档 |
2024-07-24
REST API
新增查询账户信息的接口:
GET /fapi/v1/symbolConfig
: 查询用户交易对配置。GET /fapi/v1/accountConfig
: 查询用户账户配置。GET /fapi/v3/account
: 相较于GET /fapi/v2/account
,此接口仅返回用户有持仓或挂单的交易对。账户/交易对配置相关字段已被移除,现在可以通过GET /fapi/v1/symbolConfig
和GET /fapi/v1/accountConfig
查询。V3接口还提供了更好的性能。GET /fapi/v3/balance
: 查询用户账户余额。
新增查询交易信息的接口:
GET /fapi/v3/positionRisk
: 相较于GET /fapi/v2/positionRisk
,此接口仅返回用户有持仓或挂单的交易对。交易对配置相关字段已被移除,现在可以通过GET /fapi/v1/symbolConfig
查询。V3接口还提供了更好的性能。
WebSocket API
- 新增查询账户信息的接口:
v2/account.status
: 相较于account.status
,此接口仅返回用户有持仓或挂单的交易对。配置相关字段已被移除,现在可以通过GET /fapi/v1/symbolConfig
和GET /fapi/v1/accountConfig
查询。V2接口还提供了更好的性能。v2/account.balance
: 查询用户账户余额。v2/account.position
: 相较于account.position
,此接口仅返回用户有持仓或挂单的接口。配置相关字段已被移除,现在可以通过GET /fapi/v1/symbolConfig
查询。V2接口还提供了更好的性能。
弃用通知:
- 以下接口将在未来几个月内弃用(具体日期待定)。请切换到上述新接口:
- REST API:
- GET /fapi/v2/balance
- GET /fapi/v2/account
- GET /fapi/v2/positionRisk
- Websocket API:
- account.status
- account.balance
- account.position
2024-06-19
GET /fapi/v1/userTrades
的响应字段marginAsset
将在2024-06-25被移除
2024-05-28
GET /fapi/v1/exchangeInfo
中autoAssetExchange
仅仅对vip 2-9的用户有效,vip 0-1用户的兑换阈值参考公告
2024-05-24
- 新增BNB抵扣开关接口:
POST /fapi/v1/feeBurn
BNB 合约交易抵扣开关。GET /fapi/v1/feeBurn
获取 BNB 抵扣开关状态。
2024-04-19
{
"listenKey": "3HBntNTepshgEdjIwSUIBgB9keLyOCg5qv3n6bYAtktG8ejcaW5HXz9Vx1JgIieg"
}
- 调用
PUT /fapi/v1/listenKey
或Websocket ApiuserDataStream.ping
时会增加新的返回字段listenKey
以显示有效期被延长的listenkey,改动将于2024-04-25生效
2024-04-09
- Good-Till-Cancel(GTC)订单变为仅有一年的有效期。 超过一年的GTC订单将被自动取消。改动适用于所有订单类型,包括仅减仓订单(reduceOnly),但不影响部分成交订单或策略交易或跟单交易订单。
2024-04-01
WEBSOCKET API
- Websocket API 现已推出,可通过以下 URL 访问:“wss://ws-fapi.binance.com/ws-fapi/v1”
- WebSocket API 允许通过 WebSocket 连接下单、取消订单等。
- WebSocket API 是独立于 WebSocket 市场数据流的服务。也就是说,下订单和收听市场数据需要两个独立的 WebSocket 连接。
- WebSocket API 受与 REST API 相同的过滤器和速率限制规则的约束。
- WebSocket API 和 REST API 在功能上是等效的:它们提供相同的功能,接受相同的参数,返回相同的状态和错误代码。
2024-03-11
REST
- 新增账户接口:
GET /fapi/v1/rateLimit/order
: 查询用户下单频率限制
2024-02-09
币安合约在进行Websocket服务升级,升级影响以下逻辑:
升级前:
- 服务端每3分钟会发送ping帧,客户端应当在10分钟内回复pong帧,否则服务端会主动断开链接。允许客户端发送不成对的pong帧(即客户端可以以高于10分钟每次的频率发送pong帧保持链接)
- 服务端每3分钟会发送ping帧,客户端应当在10分钟内回复pong帧,否则服务端会主动断开链接。允许客户端发送不成对的pong帧(即客户端可以以高于10分钟每次的频率发送pong帧保持链接)
升级后
- Websocket 服务器每3分钟发送Ping消息。
- 如果Websocket服务器在10分钟之内没有收到Pong消息应答,连接会被断开。
- 当客户收到ping消息,必需尽快回复pong消息,同时payload需要和ping消息一致。
- 未经请求的pong消息是被允许的,但是不会保证连接不断开。对于这些pong消息,建议payload为空
- Websocket 服务器每3分钟发送Ping消息。
2024-01-24
测试网WEBSOCKET
- testnet的 Websocket baseurl 更新为 "wss://fstream.binancefuture.com"
2024-01-08
REST
- 账号与交易接口更新(将于2023-01-11更新):
PUT /fapi/v1/order
: 新增入参priceMatch
以支持改单价格保护PUT /fapi/v1/batchOrders
: 新增入参priceMatch
以支持改单价格保护- 改单会保留该订单原有的
selfTradePreventionMode
2023-12-12
WEBSOCKET
- 行情推送
!bookTicker
的更新速度将从实时更改为每5秒一次,该更改将从2023年12月20日开始。单个交易对的Book Ticker流<symbol>@bookticker
不会受到此次更新的影响。
2023-11-15
REST
- 新增市场数据接口:
GET /fapi/v2/ticker/price
: 查询最新价格v2接口。与GET /fapi/v1/ticker/price
相比,v2接口入参和响应相同,但接口延迟更低且占用限频更少。GET /fapi/v1/ticker/price
将在未来被弃用,时间待定
WEBSOCKET
- 币安合约将于2023-12-15 06:00停用
wss://fstream-auth.binance.com
域名,建议API用户在此时间前迁移websocket连接到wss://fstream.binance.com
。需要特别注意的是,wss://fstream.binance.com
的连接方法与wss://fstream-auth.binance.com
不同,例如:wss://fstream-auth.binance.com/ws/<ListenKey>?listenKey=<ListenKey>
should change towss://fstream.binance.com/ws/<ListenKey>
2023-11-01
REST
新增市场数据接口:
GET /futures/data/basis
: 查询基差
GET /fapi/v1/fundingRate
更新:- 增加返回字段
markPrice
以显示特定资金费对应的标记价格
- 增加返回字段
2023-10-19
REST
- 新增行情接口:
GET /futures/data/delivery-price
: 查询季度合约历史交割价格
- 调整下列接口限频为1000/5min/IP:
GET /futures/data/openInterestHist
GET /futures/data/topLongShortAccountRatio
GET /futures/data/topLongShortPositionRatio
GET /futures/data/globalLongShortAccountRatio
GET /futures/data/takerlongshortRatio
- 调整下列接口限频为500/5min/IP:
GET /fapi/v1/fundingRate
和GET /fapi/v1/fundingInfo
共享接口限频500/5min/IP
2023-10-16
REST
- 新增行情接口:
GET /fapi/v1/constituents
: 查询指数成分
2023-10-11
REST
- 账户接口IP权重调整:
GET /fapi/v1/income/asyn
: 5->1000GET /fapi/v1/order/asyn
: 5->1000GET /fapi/v1/trade/asyn
: 5->1000GET /fapi/v1/income/asyn/id
: 5->10GET /fapi/v1/order/asyn/id
: 5->10GET /fapi/v1/trade/asyn/id
: 5->10
2023-09-25
REST
- 新增行情接口:
GET /fapi/v1/fundingInfo
: 查询有调整的资金费率信息
2023-09-20
REST
GET /fapi/v1/ticker/bookTicker
更新:- 增加返回字段
lastUpdateId
- 增加返回字段
2023-09-19
{
"code": -1008,
"msg": "Server is currently overloaded with other requests. Please try again in a few minutes."
}
- 新增HTTP
503
可能的错误响应及错误码,下列接口在请求高峰期可能出现此响应:POST /fapi/v1/order
PUT /fapi/v1/order
DELETE /fapi/v1/order
POST /fapi/v1/batchOrder
PUT /fapi/v1/batchOrder
DELETE /fapi/v1/batchOrder
POST /fapi/v1/order/test
DELETE /fapi/v1/allOpenOrders
- 此响应表示本次API请求失败。这种情况下您如果需要的话可以选择立即重试。
2023-09-05
- 根据此公告,自成交保护(Self-Trade Prevention)已于 2023-09-05 发布。
- 价格匹配/有效方式GTD/盈亏平衡价等功能(详情见2023-08-29更新日志)已于2023-09-05 发布。
2023-08-31
币安合约在进行Websocket服务升级,升级影响以下逻辑:
升级前:
- 服务端每5分钟会发送ping帧,客户端应当在15分钟内回复pong帧,否则服务端会主动断开链接。允许客户端发送不成对的pong帧(即客户端可以以高于15分钟每次的频率发送pong帧保持链接)
- 服务端每5分钟会发送ping帧,客户端应当在15分钟内回复pong帧,否则服务端会主动断开链接。允许客户端发送不成对的pong帧(即客户端可以以高于15分钟每次的频率发送pong帧保持链接)
升级后
- 服务端每3分钟会发送ping帧,客户端应当在10分钟内回复pong帧,否则服务端会主动断开链接。允许客户端发送不成对的pong帧(即客户端可以以高于10分钟每次的频率发送pong帧保持链接)
- 服务端每3分钟会发送ping帧,客户端应当在10分钟内回复pong帧,否则服务端会主动断开链接。允许客户端发送不成对的pong帧(即客户端可以以高于10分钟每次的频率发送pong帧保持链接)
2023-08-29
自成交保护(发布时间待定)
U本位合约系统中将支持Self-Trade Prevention(STP)自成交保护。此功能将阻止订单与来自同一账户或者同一
tradeGroupId
账户的订单交易。详情请参考 FAQ合约所有交易对支持通过下单时设置
selfTradePreventionMode
为下面之一的STP模式:- NONE: 不设置自成交保护
- EXPIRE_TAKER: 自成交过期taker订单
- EXPIRE_MAKER: 自成交过期maker订单
- EXPIRE_BOTH: 自成交过期taker和maker订单
REST更新:
- 新的订单状态:
EXPIRED_IN_MATCH
- 订单由于 STP 触发而过期GET /fapi/v2/account
中响应新增字段tradeGroupId
显示用户的tradeGroupId
- 以下接口新增可选参数
selfTradePreventionMode
以设置该订单的自成交保护模式:POST /fapi/v1/order
POST /fapi/v1/batchOrders
- 以下接口新增响应字段
selfTradePreventionMode
以显示订单的自成交保护模式:POST /fapi/v1/order
POST /fapi/v1/batchOrders
POST /fapi/v1/order
POST /fapi/v1/order
GET /fapi/v1/order
GET /fapi/v1/openOrders
GET /fapi/v1/allOrders
PUT /fapi/v1/order
PUT /fapi/v1/batchOrders
DELETE /fapi/v1/order
DELETE /fapi/v1/batchOrders
- 新的订单状态:
WEBSOCKET账户信息推送更新:
ORDER_TRADE_UPDATE
中新增字段V
显示用户订单的自成交保护模式
价格匹配(发布时间待定)
U本位合约系统中将支持价格匹配功能(priceMatch)。此功能将允许用户的LIMIT/STOP/TAKE_PROFIT订单无需输入价格,价格匹配功能将根据订单的价格匹配模式和订单簿实时自动确定订单价格。
合约LIMIT/STOP/TAKE_PROFIT订单支持设置
priceMatch
以价格匹配模式:- NONE: 设置价格匹配
- OPPONENT: 盘口对手价
- OPPONENT_5: 盘口对手5档价
- OPPONENT_10: 盘口对手10档价
- OPPONENT_20: 盘口对手20档价
- QUEUE: 盘口同向价
- QUEUE_5: 盘口同向排队5档价
- QUEUE_10: 盘口同向排队10档价
- QUEUE_20: 盘口同向排队20档价
例子:
- 用户下买单,设置
priceMatch
为QUEUE_5
,则订单价格为订单薄买方向(盘口同向)第五档价格 - 用户下买单,设置
priceMatch
为OPPONENT
,则订单价格为订单薄卖方向(盘口对手)第一档价格
- 用户下买单,设置
REST更新:
- 以下接口新增可选参数
priceMatch
以设置价格匹配类型:POST /fapi/v1/order
POST /fapi/v1/batchOrders
- 以下接口新增响应字段
priceMatch
以显示订单的价格匹配模式:POST /fapi/v1/order
POST /fapi/v1/batchOrders
POST /fapi/v1/order
POST /fapi/v1/order
GET /fapi/v1/order
GET /fapi/v1/openOrders
GET /fapi/v1/allOrders
PUT /fapi/v1/order
PUT /fapi/v1/batchOrders
DELETE /fapi/v1/order
DELETE /fapi/v1/batchOrders
- 以下接口新增可选参数
Websocket账户信息推送更新:
ORDER_TRADE_UPDATE
中新增字段pm
显示用户订单的价格匹配模式
有效方式GTD(发布时间待定)
U本位合约系统中将支持有效方式GTD(Good Till Date)。有效方式(TIF)为GTD的订单到
goodTillDate
时间仍未完结会被自动取消合约订单新增timeInForce(有效时间):
- GTD (Good till date): 订单到期自动取消
REST更新:
- 以下接口新增响应字段
goodTillDate
以配置GTD订单过期时间:POST /fapi/v1/order
POST /fapi/v1/batchOrders
- 以下接口新增响应字段
goodTillDate
以显示GTD订单过期时间:POST /fapi/v1/order
POST /fapi/v1/batchOrders
POST /fapi/v1/order
POST /fapi/v1/order
GET /fapi/v1/order
GET /fapi/v1/openOrders
GET /fapi/v1/allOrders
PUT /fapi/v1/order
PUT /fapi/v1/batchOrders
DELETE /fapi/v1/order
DELETE /fapi/v1/batchOrders
- 以下接口新增响应字段
Websocket账户信息推送更新:
ORDER_TRADE_UPDATE
中新增字段goodTillDate
显示用户GTD订单的自动取消时间
盈亏平衡价(发布时间待定)
REST更新
- 以下接口返回新增
breakEvenPrice
字段代表仓位盈亏平衡价:GET /fapi/v2/account
GET /fapi/v2/positionRisk
- 以下接口返回新增
WEBSOCKET更新
- Position更新推送payload
ACCOUNT_UPDATE
中P
新增bep
字段代表仓位盈亏平衡价
- Position更新推送payload
2023-08-19
- 币安合约在进行Websocket服务升级,升级影响以下连接方式:
- 无信息流订阅连接Websocket服务:
- 升级前, 用户可以用以下方式连接:
wss://fstream.binance.com/ws
wss://fstream.binance.com/stream
wss://fstream.binance.com/ws/
wss://fstream.binance.com/stream/
- 升级后,用户可以用以下方式连接:
wss://fstream.binance.com/ws
wss://fstream.binance.com/stream
/
在url结尾不再支持
- 带信息流订阅连接Websocket服务:
- 不支持如下类型的stream:
wss://fstream.binance.com/illegal_parameter/stream?steams=<streamName>
或wss://fstream.binance.com/illegal_parameter/ws/<streamName>
,请移除/ws
和/stream
前的illegal_parameter/
2023-08-14
- 更新账户和交易接口:
GET /fapi/v1/income
:增加字段page
用以分页
2023-07-18
REST
GET /fapi/v1/leverageBracket
新增字段notionalCoef
显示用户相对默认bracket的调整倍数
2023-07-04
REST
- 以下接口将改为仅保留最近3个月数据:
GET /fapi/v1/order
(2023-07-27生效)GET /fapi/v1/allOrders
(2023-07-27生效)GET /fapi/v1/userTrades
(具体时间待定)
- 请自行维护和保留3个月之前的历史数据或使用以下新接口获得历史订单/交易信息:
- 新增接口
GET /fapi/v1/order/asyn
获取合约订单历史下载id - 新增接口
GET /fapi/v1/order/asyn/id
通过下载id获取合约订单历史下载链接 - 新增接口
GET /fapi/v1/trade/asyn
获取合约交易历史下载id - 新增接口
GET /fapi/v1/trade/asyn/id
通过下载id获取合约交易历史下载链接
- 新增接口
2023-06-28
注意:
REST
- 以下接口将于2023-07-15后不再支持:
GET /fapi/v1/account
GET /fapi/v1/balance
GET /fapi/v1/positionRisk
- 请及时替换为对应的v2接口:
GET /fapi/v2/account
GET /fapi/v2/balance
GET /fapi/v2/positionRisk
2023-06-22
注意:
WEBSOCKET
- 订阅格式 /ws?<streamName> 不被支持, 如
wss://fstream.binance.com/ws?btcusdt@depth
会被认为是非法请求. - 发送带有不合法JSON格式的websocket消息将导致连接断开,返回错误
{"error":{"code":3,"msg":"Invalid JSON: expected value at line 1 column 1"}}
2023-06-16
注意:
建议使用标准的 HTTP 请求格式,fapi 中将不支持非标准请求格式。以下是一些正确的代码实践示例:
不再支持使用 '\x22' 进行转义("),请改用标准的 '%22',需要对中括号[]和中括号内部的双引号进行URL encode
DELETE /fapi/v1/batchOrders?origClientOrderIdList=
不支持:
[\x229151944646313025900\x22]
建议:
["9151944646313025900"]
--经过 URL 编码后--
DELETE /fapi/v1/batchOrders?origClientOrderIdList=%5B%229151944646313025900%22%5D
不支持非标准嵌套 JSON 格式
POST /fapi/v1/batchOrders?batchOrders=
不支持:
["{\"type\":\"LIMIT\",\"timeInForce\":\"GTC\"}"]
建议:
[{"type":"LIMIT","timeInForce":"GTC"}]
--经过 URL 编码后--
POST /fapi/v1/batchOrders?batchOrders=%5B%7B%22type%22%3A%22LIMIT%22%2C%22timeInForce%22%3A%22GTC%22%7D%5D
不支持使用不正确的数据类型
DELETE /fapi/v1/batchOrders?orderIdList=
由于 'orderIdList' 参数的数据类型为 LIST<LONG> 不支持:
["159856286502","159856313662"]
建议:
[159856286502,159856313662]
--经过 URL 编码后--
DELETE /fapi/v1/batchOrders?orderIdList=%5B159856286502%2C159856313662%5D
不支持从请求参数中的无效空白字符
不支持:
POST symbol=BTCUSDT& price= 40000.0 & signature=2d24a314
建议:
POST symbol=BTCUSDT&&price=40000.0&signature=2d24a314
不支持请求参数传空值
不支持:
GET symbol=BTCUSDT&orderId=&signature=2d24a314
建议:
GET symbol=BTCUSDT&signature=2d24a314
2023-06-14
注意:
- 新增市场信息流
!assetIndex@arr
OR<assetSymbol>@assetIndex
推送多资产模式资产指数价格
2023-05-31
WEBSOCKET
- 新增账户信息流:
- 新增推送
CONDITIONAL_ORDER_TRIGGER_REJECT
以显示被触发的止盈止损单被拒绝原因
- 新增推送
2023-05-24
REST
- 因统一账户专业版移除
notionalLimit
限制,GET /fapi/v1/pmExchangeInfo
将于5月29日停用
2023-05-05
REST
- 新增
PUT /fapi/v1/order
和PUT /fapi/v1/batchOrders
接口以支持限价订单修改功能 - 新增
GET /fapi/v1/orderAmendment
接口以查询订单修改历史
WEBSOCKET
- 订单/交易 更新推送
ORDER_TRADE_UPDATE
中本次事件的具体执行类型x
新增 "AMENDMENT" 代表订单修改
2023-04-17
发布日期 2023-04-18
recvWindow
校验也将在订单到达撮合后进行。recvWindow
校验在下单相关接口更加精确。
{
"code": -5028,
"msg": "Timestamp for this request is outside of the ME recvWindow"
}
发布前recvWindow逻辑:
- 下单类请求在
recvWindow
+timestamp
=> REST API服务器timestamp
时有效
发布后recvWindow逻辑:
新增校验:下单类请求在
recvWindow
+timestamp
=> 撮合timestamp
时有效受影响接口:
- POST /fapi/v1/order
- PUT /fapi/v1/order
- POST /fapi/v1/batchOrders
- PUT /fapi/v1/batchOrders
2023-03-28
发布前推荐返佣逻辑:
- 每笔交易实时返佣,用户会在 USER-DATA-STREAM 的
ACCOUNT_UPDATE
事件中收到如下推送:
{
"e": "ACCOUNT_UPDATE",
"T": 1679974782150,
"E": 1679974782155,
"a": {
"B": [
{
"a": "USDT",
"wb": "685.31478079",
"cw": "677.17212454",
"bc": "0.00258637"
}
],
"P": [],
"m": "ADMIN_DEPOSIT"
}
}
发布后推荐返佣逻辑:
- 每20分钟聚合一次计算返佣上账,用户会在 USER-DATA-STREAM 的
ACCOUNT_UPDATE
事件中收到相同推送,余额变化为聚合后的返佣加总。
2023-03-08
发布日期 2023-03-22
发布前订单逻辑:
- 下单时传参
timeInForce
为FOK
或GTX
(Post-only),用户会收到订单返回status
= “NEW” 并收到推送order_trade_update
消息x
= “NEW”,X
= “NEW”。 如果订单不满足执行条件,用户会收到另一条order_trade_update
消息,其x
= “EXPIRED”,X
= “EXPIRED”。 该订单可以在GET /fapi/v1/order
或GET /fapi/v1/allOrders
查到。
{
"code": -5021,
"msg": "Due to the order could not be filled immediately, the FOK order has been rejected. The order will not be recorded in the order history"
}
发布后订单逻辑:
- 下单时传参
timeInForce
为FOK
或GTX
(Post-only),如果该订单不满足执行条件,订单会被直接拒绝并收到报错信息,order_trade_update
不会推送此订单的消息。该订单不能在GET /fapi/v1/order
或GET /fapi/v1/allOrders
中查到。
{
"code": -5022,
"msg": "Due to the order could not be executed as maker, the Post Only order will be rejected. The order will not be recorded in the order history"
}
- 受影响接口:
- POST /fapi/v1/order
- POST /fapi/v1/batchOrders
- GET /fapi/v1/order
- GET /fapi/v1/allOrders
2023-01-04
WEBSOCKET
- Order Update: 订单状态中删除
NEW_INSURANCE
风险保障基金(强平)与NEW_ADL
自动减仓序列(强平)
2022-12-16
WEBSOCKET
- 新增订阅信息流
!contractInfo
获取交易对信息更新
2022-11-29
WEB SOCKET USER DATA STREAM
- USER-DATA-STREAM 中新增事件
STRATEGY_UPDATE
: 在策略交易创建、取消、失效等等时候更新。 - USER-DATA-STREAM 中新增事件
GRID_UPDATE
: 在网格子订单有部份或是完全成交时更新。
2022-10-13
注意: 此变动会在 2022-10-17 生效
REST RATE LIMIT WEIGHT
接口 GET /fapi/v1/ticker/bookTicker
权重更新:
- 单交易对
2
- 无交易对
5
2022-09-22
- 更新账户和交易接口:
GET /fapi/v1/income
:支持更多收益类型
- 新增统一账户接口:
GET /fapi/v1/pmAccountInfo
:查询统一账户当前账户信息。
2022-07-27
REST RATE LIMIT WEIGHT
- 接口
GET /fapi/v1/trades
的请求权重更新为 5
2022-06-28
REST
- 新增接口
GET /fapi/v1/pmExchangeInfo
获取统一账户交易规则
2022-03-01
REST
- 新增接口
GET /fapi/v1/income/asyn
获取合约资金流水下载id - 新增接口
GET /fapi/v1/income/asyn/id
通过下载id获取合约资金流水下载链接
2022-02-10
REST
- 更新
GET /fapi/v2/account
接口:- 若用户开启多资产模式,
totalInitialMargin
totalMaintMargin
totalWalletBalance
totalUnrealizedProfit
totalMarginBalance
totalPositionInitialMargin
totalOpenOrderInitialMargin
totalCrossWalletBalance
totalCrossUnPnl
availableBalance
maxWithdrawAmount
计入各种资产并转化为其USD价值显示 - 若用户使用单资产模式, 仅USDT资产会被计入计算(和改动前一致)
- 若用户开启多资产模式,
2021-12-30
WEBSOCKET
- 新增 WEBSOCKET 连接方式:
- Base Url:
wss://fstream-auth.binance.com
- 订阅单一stream格式为
/ws/<streamName>?listenKey=<validateListenKey>
- 组合streams的URL格式为
/stream?streams=<streamName1>/<streamName2>/<streamName3>&listenKey=<validateListenKey>
-
<validateListenKey>
在建立连接时,必须为一个有效的listenKey
- Base Url:
- 详细说明见 Websocket 行情推送和Websocket 账户信息推送
2021-11-02
REST
- 新增接口
GET /fapi/v1/assetIndex
以获取多资产模式保证金资产汇率指数
2021-07-06
REST
GET /fapi/v2/account
和GET /fapi/v2/positionRisk
响应内容加入updateTime
以表示资产,仓位的最新更新时间GET /fapi/v1/exchangeInfo
响应内容增加以下字段:- "liquidationFee" 表示强平费率
- "marketTakeBound" 表示市价吃单(相对于标记价格)允许可造成的最大价格偏离比例
2021-06-15
WEBSOCKET
- 综合指数交易对信息流
<symbol>@compositeIndex
新增返回字段 "q" 表示报价资产, "i" 表示指数价格
REST
- 更新以下接口:
GET /fapi/v1/indexInfo
响应加入component
成分资产,quoteAsset
报价资产字段
2021-05-06
WEBSOCKET
- 更新以下接口:
- 原有杠杆倍数更新推送事件
ACCOUNT_CONFIG_UPDATE
扩展为账户配置更新推送事件,包含杠杆倍数与联合保证金状态更新推送 - Balance和Position更新推送
ACCOUNT_UPDATE
的事件m
枚举类型新增AUTO_EXCHANGE
代表联合保证金自动兑换事件
- 原有杠杆倍数更新推送事件
REST
新增以下接口:
POST /fapi/v1/multiAssetsMargin
以更改联合保证金模式GET /fapi/v1/multiAssetsMargin
以查询联合保证金模式
更新以下接口:
GET /fapi/v1/exchangeInfo
响应加入assets
资产信息GET /fapi/v2/balance
与GET /fapi/v2/account
响应加入marginAvailable
字段代表是否可用作联合保证金
2021-04-27
WEBSOCKET
- 以下市场强平订单推送事件由实时推送调整为快照推送,即每秒最多推送一条强平订单数据:
<symbol>@forceOrder
!forceOrder@arr
REST
- 获取市场强平订单接口
GET /fapi/v1/allForceOrders
停止维护,不再接受请求
2021-04-22
WEBSOCKET
- "ACCOUNT_UPDATE" 事件新增返回字段 "bc" 表示账户余额改变量。
2021-03-02
新增接口
GET /fapi/v1/indexPriceKlines
以获取价格指数K线数据。新增接口
GET /fapi/v1/markPriceKlines
以获取标记价格K线数据。
2021-02-24
REST RATE LIMIT WEIGHT
- 接口
GET /fapi/v2/balance
的请求权重更新为 5 - 接口
GET /fapi/v2/positionRisk
的请求权重更新为 5
2021-02-22
REST RATE LIMIT WEIGHT
- 接口
GET /fapi/v1/income
的请求权重更新为 30
REST
- 接口
GET /fapi/v1/allOrders
的查询时间范围最大为7天. - 接口
GET /fapi/v1/allForceOrders
的查询范围仅限于最近7天内的数据.
2021-01-26
WEB SOCKET USER DATA STREAM
- USER-DATA-STREAM 中新增事件
ACCOUNT_CONFIG_UPDATE
以获取交易对杠杆倍数变动更新
REST RATE LIMIT WEIGHT
- 以下接口的权重调整为 带symbol 20, 不带symbol 50
GET /fapi/v1/allForceOrders
GET /fapi/v1/forceOrders
REST
- 新增交易对过滤器 "MIN_NOTIONAL",定义了交易对订单所允许的最小名义价值,并在
fapi/v1/exchangeInfo
的响应中返回
2021-01-21
合约订单用户自定义idnewClientOrderId
更新正则规则为: ^[\.A-Z\:/a-z0-9_-]{1,36}$
2021-01-04
REST
以下接口的IP限制权重将采用基于参数LIMIT数值的新权重规则:
GET /fapi/v1/klines
GET /fapi/v1/continuousKlines
以下接口的IP限制权重调整到 20:
GET /fapi/v1/historicalTrades
GET /fapi/v1/allForceOrders
GET /fapi/v1/forceOrders
GET /fapi/v1/aggTrades
2020-12-08
WEBSOCKET
- 行情消息推送
<symbol>@bookTicker
和!bookTicker
返回内容新增字段e
表示事件类型 - 行情消息推送
<symbol>@markPrice
,<symbol>@markPrice@1s
,!markPrice@arr
, 和!markPrice@arr@1s
返回内容新增字段P
表示估计结算价 - 新增行情连续合约K线推送
<pair>_<contractType>@continuousKline_<interval>
REST API
- 接口
GET /fapi/v1/premiumIndex
返回内容新增字段 "estimatedSettlePrice" 表示估计结算价。 接口
GET /fapi/v1/exchangeInfo
返回内容新增字段:- "pair" 标的交易对
- "contractType" 合约类型
- "deliveryDate" 交割日期
- "onboardDate" 上线日期
新增接口
GET /fapi/v1/continuousKlines
获取连续合约K线数据
ENUM
- 合约类型:
- PERPETUAL 永续合约
- CURRENT_MONTH 当月交割合约
- NEXT_MONTH 次月交割合约
- CURRENT_QUARTER 当季交割合约
- NEXT_QUARTER 次季交割合约
2020-11-27
- 新增接口
GET /fapi/v1/commissionRate
以查询用户交易手续费率。
2020-11-13
WEB SOCKET STREAM
- 为了给用户提供更安全稳定的服务,
<symbol>depth@0ms
and<symbol>@depth<level>@0ms
的更新频率调整为根据数据流量总量和其他客观情况动态调整
2020-11-10
- 接口
GET /fapi/v1/exchangeInfo
新增返回字段 "marginAsset" 表示保证金资产 - 接口
GET /fapi/v2/account
新增返回字段 "positionAmt" 表示持仓数量
2020-11-09
WEB SOCKET USER DATA STREAM
USER-DATA-STREAM 中的事件ACCOUNT_UPDATE
推送规则作出了以下更新和优化:
当用户某项资产发生变化时:
- 资产项目"B"中仅会推送本次发生变化的资产及其余额
- 其他资产不会被推送,即便资产不为0
- 如果资产变化不涉及持仓变化,持仓项目"P"将仅返回空
[]
当合约某symbol的持仓或全逐仓配置发生变动时
- "P"中会推送该symbol对应的"BOTH"方向上的持仓详情
- 如果是多空方向上发生持仓变动, "P"中会推送该symbol发生持仓变动的对应"LONG"或"SHORT"方向上的持仓详情
- 该symbol上被初始化过的"LONG"或"SHORT"方向的逐仓持仓, 也会被推送
- 所以该symbol上推送的position方向组合, 由具体场景决定()
- 其他symbol的所有持仓信息都不会被推送,即使其持仓不为0
简言之, 您应该通过相关的rest接口(
GET /fapi/v2/account
和GET /fapi/v2/positionRisk
) 获取资产和头寸的全量信息; 通过Websocket USER-DATA-STREAM 中的事件ACCOUNT_UPDATE
对本地缓存的资产或头寸数据进行增量更新。可以访问这里 获取示例以帮助对本次优化升级的理解
2020-10-27
WEB SOCKET STREAM
- 单个连接可订阅的最大stream数量调整为 200
2020-10-10
WEBSOCKET
- 新增 WebSocket 综合指数交易对信息更新
<symbol>@compositeIndex
。
2020-10-09
- 新增接口
GET /fapi/v1/indexInfo
以获取交易对为综合指数的基础成分信息。
2020-09-18
- 新增 API 交易量化规则指标查询接口
GET /fapi/v1/apiTradingStatus
。
2020-09-09
- 一些过期或者被取消的订单将在未来开始逐步不会从API的接口返回。
- 被移除的订单需要满足如下条件:
- 订单的最终状态为
CANCELED
或者EXPIRED
, 并且 - 订单没有任何的成交记录, 并且
- 订单生成时间 + 7天 < 当前时间
- 订单的最终状态为
- 如下的接口会受影响:
GET /fapi/v1/order
GET /fapi/v1/allOrders
- 被移除的订单需要满足如下条件:
2020-08-14
- 接口
GET /fapi/v1/premiumIndex
新增返回字段 "indexPrice", 表示现货指数价格。 - 以下websocket 行情,新增返回字段 "i" 表示现货指数价格:
<symbol>@markPrice
,<symbol>@markPrice@1s
,!markPrice@arr
,!markPrice@arr@1s
2020-08-12
- 新增接口
GET /fapi/v1/forceOrders
以获取用户强平订单历史.
2020-07-30
- 新增接口
GET /fapi/v1/adlQuantile
以获取持仓ADL队列位置估算分数
2020-07-17
- 接口
GET /fapi/v1/income
权重调整为 20
2020-07-02
WEBSOCKET
- "ACCOUNT_UPDATE" 事件新增返回字段 "m" 表示事件推出缘由。
- "ORDER_TRADE_UPDATE" 事件新增返回字段 "rp" 表示该交易实现损益。
2020-06-15
- 接口
GET /fapi/v2/account
,GET /fapi/v2/balance
返回内容新增字段:availableBalance
maxWithdrawAmount
2020-06-04
- 新增
/fapi/v2/
接口, 较v1对应接口性能有较大提升:GET /fapi/v2/account
GET /fapi/v2/balance
2020-06-02
- 新增
/fapi/v2/
接口GET /fapi/v2/positionRisk
:- 允许用户指定symbol查询
- 市场上所有symbol都可以被查询
- 返回内容有效区分单向持仓模式和双向持仓模式
- 较 ‘/fapi/v1/positionRisk’ 性能有较大改善
2020-05-18
新增参数
closePosition
于下单接口POST /fapi/v1/order
, 表示条件全部平仓:
如果一个STOP_MARKET
或TAKE_PROFIT_MARKET
条简单设置了closePosition=true
并被触发了,当时持有所有多头仓位(若为卖单)或当时持有所有空头仓位(若为买单)将会被平仓。新增返回字段
closePosition
于以下接口表示是否为条件全平仓单:POST /fapi/v1/order
POST /fapi/v1/batchOrders
GET /fapi/v1/order
DELETE /fapi/v1/order
DELETE /fapi/v1/batchOrders
GET /fapi/v1/openOrder
GET /fapi/v1/openOrders
GET /fapi/v1/allOrders
2020-05-18
- 一些过期或者被取消的订单将在未来开始逐步不会从API的接口返回, 但是还可以从网页端查询到。
- 被移除的订单需要满足如下条件:
- 订单的最终状态为
CANCELED
或者EXPIRED
, 并且 - 订单没有任何的成交记录, 并且
- 订单生成时间 + 30天 < 当前时间
- 订单的最终状态为
- 如下的接口会受影响:
GET /fapi/v1/order
GET /fapi/v1/allOrders
- 被移除的订单需要满足如下条件:
2020-05-15
- Wesocket 行情消息
<symbol>@bookTicker
和!bookTicker
增加返回字段:E
表示事件推出事件T
表示撮合时间
2020-05-14
- 以下接口返回内容增加
time
字段,表示撮合引擎时间:GET /fapi/v1/ticker/price
GET /fapi/v1/ticker/bookTicker
GET /fapi/v1/openInterest
2020-05-11
- 新增接口
POST /fapi/v1/countdownCancelAll
以实现倒计时自动撤单。
- 该接口可以被用于确保在倒计时结束时撤销指定symbol上的所有挂单。
- 在使用这个功能时,接口应像心跳一样在倒计时内被反复调用,以便可以取消既有的倒计时并开始新的倒数计时设置。
2020-05-06
REST 接口
- 接口
GET /fapi/v1/leverageBracket
调整为 USER-DATA 权限访问,需要验签以及timestamp
WEBSOCKET 账户信息推送
- 请注意: 当某一持仓发生"FUNDING FEE"时,事件
ACCOUNT_UPDATE
将只会推送相关的用户资产余额信息和持仓信息,而不会推送其余无关的资产和持仓信息。- 当用户某全仓持仓发生"FUNDING FEE"时,事件
ACCOUNT_UPDATE
将只会推送相关的用户资产余额信息B
(仅推送FUNDING FEE 发生相关的资产余额信息),而不会推送任何持仓信息P
。 - 当用户某逐仓仓持仓发生"FUNGDING FEE"时,事件
ACCOUNT_UPDATE
将只会推送相关的用户资产余额信息B
(仅推送"FUNDING FEE"所使用的资产余额信息),和相关的持仓信息P
(仅推送这笔"FUNDING FEE"发生所在的持仓信息),其余持仓信息不会被推送
- 当用户某全仓持仓发生"FUNDING FEE"时,事件
2020-04-25
用户"订单/交易更新推送"
ORDER_TRADE_UPDATE
新增以下字段:cp
表示是否为平仓条件单AP
表示追踪止损单的追踪止损激活价格cr
表示追踪止损单的追踪止损回调比例
新增账户信息推送事件: "追加保证金通知"
MARGIN_CALL
.
2020-04-17
- 下单接口支持新的可选参数
newOrderRespType
表示下单响应类型。支持ACK
和RESULT
,
如果newOrderRespType= RESULT
:MARKET
订单将直接返回成交(FILLED)结果;- 配合使用特殊
timeInForce
的LIMIT
订单将直接返回成交/过期(FILLED/EXPIRED)结果。
2020-04-14
WEB SOCKET 连接限制
- Websocket服务器每秒最多接受10个消息。消息包括:
- PING帧
- PONG帧
- JSON格式的消息, 比如订阅, 断开订阅.
- 如果用户发送的消息超过限制,连接会被断开连接。反复被断开连接的IP有可能被服务器屏蔽。
- 单个连接最多可以订阅 200 个Streams。
2020-04-09
- 新增接口合约大数据
GET /futures/data/takerlongshortRatio
以查询合约主动买卖量
2020-04-08
- 新增接口
GET /fapi/v1/positionSide/dual
以查询用户当前持仓模式 - 新增接口
POST /fapi/v1/batchOrders
以实现批量下单
2020-04-06
请注意 账户信息推送 事件 "Balance和Position更新推送"(
ACCOUNT_UPDATE
)将不再未发生更新时推送,具体规则如下:- 仅当账户信息有变动时(包括资金、仓位、保证金模式等发生变化),才会推送此事件;
- 订单状态变化没有引起账户和持仓变化的,不会推送此事件;
- 每次推送的position 信息,仅包含当前持仓不为0或逐仓仓位保证金不为0的symbol position。
新增接口
POST /fapi/v1/positionSide/dual
更改持仓模式:双向或单向持仓模式。以下接口新增参数
positionSide
用以支持单向/双向持仓模式,表示持仓方向:POST /fapi/v1/order
POST /fapi/v1/positionMargin
以下接口新增返回字段
positionSide
用以支持单向/双向持仓模式,表示持仓方向:POST /fapi/v1/order
GET /fapi/v1/order
DELETE /fapi/v1/order
DELETE /fapi/v1/batchOrders
GET /fapi/v1/openOrder
GET /fapi/v1/openOrders
GET /fapi/v1/allOrders
GET /fapi/v1/account
POST /fapi/v1/positionMargin
GET /fapi/v1/positionMargin/history
GET /fapi/v1/positionRisk
GET /fapi/v1/userTrades
账户信息推送 事件 "Balance和Position更新推送"(
ACCOUNT_UPDATE
)和 "订单/交易更新推送"(ORDER_TRADE_UPDATE)中新增字段ps
表示持仓方向。
2020-03-30
- 新增接口合约大数据:
GET /futures/data/openInterestHist
GET /futures/data/topLongShortAccountRatio
GET /futures/data/topLongShortPositionRatio
GET /futures/data/globalLongShortAccountRatio
2020-02-26
- 新增订单类型:跟踪止损
TRAILING_STOP_MARKET
2020-02-20
- 新增接口以查询指定的当前挂单:
GET /fapi/v1/openOrder
2020-02-17
<symbol>@ticker
与!ticker@arr
更新频率提升为1000ms- 新增500ms更新的增量深度信息流选项:
<symbol>@depth@500ms
- 新增500ms更新的有限档深度信息流选项:
<symbol>@depth<level>@500ms
2020-02-12
Java SDK和代码示例 发布
实现每秒更新的标记价格信息流选项:
<symbol>@markPrice@1s
and!markPrice@arr@1s
2020-02-05
- 新增接口
GET /fapi/v1/leverageBracket
: 查询杠杆分层标准。
2020-01-19
- "cumQty" 字段将于未来几周从
DELETE /fapi/v1/order
,DELETE /fapi/v1/batchOrders
等order
相关接口的返回内容中去除,请使用 "executedQty" 字段予以替代。
2020-1-17
- Python SDK和代码示例 发布
2020-1-6
- 实现实时更新的增量深度信息流选项:
<symbol>@depth@0ms
2020-1-3
新增逐仓相关接口:
POST /fapi/v1/marginType
POST /fapi/v1/positionMargin
GET /fapi/v1/positionMargin/history
接口
GET /fapi/v1/positionRisk
新增返回内容:marginType
isolatedMargin
接口
GET /fapi/v1/account
新增返回内容:isolated
ACCOUNT_UPDATE
Balance和Position更新推送 增加:- "cw": 除去逐仓保证金的钱包余额
- "mt": 保证金模式
- "iw": 若为逐仓,仓位保证金
2019-12-19
- 新增接口获取市场当前未平仓合约数:
GET /fapi/v1/openInterest
2019-12-18
- 新增账户信息推送事件:
listenKeyExpired
。
2019-12-12
- 新增接口撤销指定symbol的所有订单:
DELETE /fapi/v1/allOpenOrders
- 新增接口批量撤销订单:
DELETE /fapi/v1/batchOrders
- 新增支持仅减仓
reduceOnly
的订单类型:-
TAKE_PROFIT
-
TAKE_PROFIT_MARKET
-
STOP
-
STOP_MARKET
-
2019-11-29
- 新增接口获取市场强平订单:
GET /fapi/v1/allForceOrders
- 新增市场行情推送:
- 强平订单:
<symbol>@forceOrder
- 全市场强平订单:
!forceOrder@arr
- 强平订单:
2019-11-25
GET /fapi/v1/account
新增返回内容:positions
- 以下接口新增返回值
time
表示订单创建时间:GET /fapi/v1/openOrders
GET /fapi/v1/order
GET /fapi/v1/allOrders
2019-11-15
- Websocket 新增市场行情流:
!miniTicker@arr
: 全市场的精简Ticker更新-
!ticker@arr
: : 全市场的完整Ticker更新
2019-11-12
- WSS 支持实时订阅和取消数据流。
2019-11-05
- 新增订单类型:
STOP_MARKET
止损市价单,TAKE_PROFIT_MARKET
止盈市价单
- 下单新增可选参数:
workingType
可选stopPrice
由 "CONTRACT_PRICE" 或 "MARK_PRICE"触发 - USER-DATA-STREAMS新增:
ORDER_TRADE_UPDATE
订单/交易 更新推送 增加:- "T": 撮合时间
- "wt": workingType
ACCOUNT_UPDATE
Balance和Position更新推送 增加:"T": 撮合时间
2019-10-28
- 新增接口查询账户损益资金流水:
GET /fapi/v1/income
2019-10-25
- 账户信息推送事件
ACCOUNT_UPDATE
增加字段 "up",表示持仓未实现盈亏。 - 账户信息推送事件
ORDER_TRADE_UPDATE
增加字段 "R",表示该成交是否作为只减仓单。
2019-10-24
- 新增最优挂单信息行情流:
<symbol>@bookTicker
与!bookTicker
- 新增有限档深度信息行情流:
<symbol>@depth<levels>
与<symbol>@depth<levels>@100ms
- 更新频率达到100ms的更快的增量深度信息流选项:
<symbol>@depth@100ms
Websocket行情推送
增加Update Speed
更新速度
2019-10-18
- 新增接口
POST /fapi/v1/leverage
以调整开仓杠杆倍数。 - 接口
GET /fapi/v1/positionRisk
的返回内容中新增字段:- "leverage": 当前开仓杠杆倍数;
- "maxNotionalValue": 当前开仓杠杆倍数下的名义价值上限。
MARKET
市价单支持reduceOnly
只减仓参数。
2019-10-14
- 新增接口
GET /fapi/v1/fundingRate
: 获取资金费率历史。
2019-10-11
- 账户信息推送事件
ORDER_TRADE_UPDATE
增加字段 "m",表示该成交是否作为挂单成交
2019-10-08
- 新增限价指令订单参数
reduceOnly
:只减仓 - 新增订单类型
TAKE_PROFIT
: 止盈单
2019-09-20
GET /fapi/v1/account 新增返回值:
maxWithdrawAmount
,openOrderInitialMargin
,positionInitialMargin
GET /fapi/v1/positionRisk 新增返回值:
liquidationPrice
基本信息
SDK和代码示例
免责声明:
- 以下SDK由合作方和用户提供,非官方制作行为。仅做熟悉api接口和学习使用,请广大用户谨慎使用并根据自身情况自行拓展研发。
- Binance 官方不对SDK的安全和性能做任何承诺,亦不会对使用SDK引起的风险甚至损失承担责任。
Python3
SDK: 可以通过以下方式获取Binance Futures Connector SDK:
访问 https://github.com/binance/binance-futures-connector-python
执行以下命令:
pip install binance-futures-connector
Java
可以通过以下方式获取SDK:
* 访问 https://github.com/binance/binance-futures-connector-java,
- 执行以下命令:
git clone https://github.com/binance/binance-futures-connector-java.git
Rest 基本信息
- 接口可能需要用户的 API Key,如何创建API-KEY请参考这里
- 本篇列出REST接口的baseurl https://fapi.binance.com
- 所有接口的响应都是JSON格式
- 响应中如有数组,数组元素以时间升序排列,越早的数据越提前。
- 所有时间、时间戳均为UNIX时间,单位为毫秒
- 所有数据类型采用JAVA的数据类型定义
testnet
- 本篇接口亦可接入testnet测试平台使用
- testnet的 REST baseurl 为 "https://testnet.binancefuture.com"
- testnet的 Websocket baseurl 为 "wss://fstream.binancefuture.com"
HTTP 返回代码
- HTTP
4XX
错误码用于指示错误的请求内容、行为、格式。 - HTTP
403
错误码表示违反WAF限制(Web应用程序防火墙)。 - HTTP
408
返回代码表示在等待后端服务器响应时发生了超时。 - HTTP
429
错误码表示警告访问频次超限,即将被封IP - HTTP
418
表示收到429后继续访问,于是被封了。 - HTTP
5XX
错误码用于指示Binance服务侧的问题。- 如果返回内容里包含了报错信息 "Request occur unknown error.",请稍后重试请求。
- HTTP
503
表示三种可能:- 如果返回内容里包含了报错信息 "Unknown error, please check your request or try again later.",则表示API服务端已经向业务核心提交了请求但未能获取响应,特别需要注意的是其不代表请求失败,而是未知。很可能已经得到了执行,也有可能执行失败,需要做进一步确认。
- 如果返回内容里包含了报错信息 "Service Unavailable.",则表示本次API请求失败。这种情况下可能是服务暂不可用,您需要稍后重试。
- 如果返回内容里包含了报错信息 "Internal error; unable to process your request. Please try again.",则表示本次API请求失败。这种情况下您如果需要的话可以选择立即重试。
- 如果返回内容里包含了报错信息 "Server is currently overloaded with other requests. Please try again in a few minutes.",则表示本次API请求失败。这种情况下您如果需要的话可以选择立即重试。
接口错误代码
- 每个接口都有可能抛出异常
异常响应格式如下:
{
"code": -1121,
"msg": "Invalid symbol."
}
- 具体的错误码及其解释在错误代码
接口的基本信息
GET
方法的接口, 参数必须在query string
中发送.POST
,PUT
, 和DELETE
方法的接口, 参数可以在query string
中发送,也可以在request body
中发送(content typeapplication/x-www-form-urlencoded
)。允许混合这两种方式发送参数。但如果同一个参数名在query string和request body中都有,query string中的会被优先采用。- 对参数的顺序不做要求。
访问限制
- 在
/fapi/v1/exchangeInfo
接口中rateLimits
数组里包含有REST接口(不限于本篇的REST接口)的访问限制。包括带权重的访问频次限制、下单速率限制。本篇枚举定义
章节有限制类型的进一步说明。 - 违反上述任何一个访问限制都会收到HTTP 429,这是一个警告.
IP 访问限制
- 每个请求将包含一个
X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter)
的头,其中包含当前IP所有请求的已使用权重。 - 每个路由都有一个"权重",该权重确定每个接口计数的请求数。较重的接口和对多个交易对进行操作的接口将具有较重的"权重"。
- 收到429时,您有责任作为API退回而不向其发送更多的请求。
- 如果屡次违反速率限制和/或在收到429后未能退回,将导致API的IP被禁(http状态418)。
- 频繁违反限制,封禁时间会逐渐延长 ,对于重复违反者,将会被封从2分钟到3天。
- 访问限制是基于IP的,而不是API Key
下单频率限制
- 每个下单请求回报将包含一个
X-MBX-ORDER-COUNT-(intervalNum)(intervalLetter)
的头,其中包含当前账户已用的下单限制数量。 - 被拒绝或不成功的下单并不保证回报中包含以上头内容。
- 下单频率限制是基于每个账户计数的。
接口鉴权类型
- 每个接口都有自己的鉴权类型,鉴权类型决定了访问时应当进行何种鉴权
- 如果需要 API-key,应当在HTTP头中以
X-MBX-APIKEY
字段传递 - API-key 与 API-secret 是大小写敏感的
- 可以在网页用户中心修改API-key 所具有的权限,例如读取账户信息、发送交易指令、发送提现指令
鉴权类型 | 描述 |
---|---|
NONE | 不需要鉴权的接口 |
TRADE | 需要有效的API-KEY和签名 |
USER_DATA | 需要有效的API-KEY和签名 |
USER_STREAM | 需要有效的API-KEY |
MARKET_DATA | 需要有效的API-KEY |
需要签名的接口 (TRADE 与 USER_DATA)
- 调用这些接口时,除了接口本身所需的参数外,还需要传递
signature
即签名参数。 - 签名使用
HMAC SHA256
算法. API-KEY所对应的API-Secret作为HMAC SHA256
的密钥,其他所有参数作为HMAC SHA256
的操作对象,得到的输出即为签名。 - 签名大小写不敏感。
- 请确保
signature
在输入query string
或request body
后 - 当同时使用query string和request body时,
HMAC SHA256
的输入query string在前,request body在后
时间同步安全
- 签名接口均需要传递
timestamp
参数, 其值应当是请求发送时刻的unix时间戳(毫秒) - 服务器收到请求时会判断请求中的时间戳,如果是5000毫秒之前发出的,则请求会被认为无效。这个时间窗口值可以通过发送可选参数
recvWindow
来自定义。 - 另外,如果服务器计算得出客户端时间戳在服务器时间的‘未来’一秒以上,也会拒绝请求。
逻辑伪代码:
if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow) {
// process request
} else {
// reject request
}
关于交易时效性
互联网状况并不100%可靠,不可完全依赖,因此你的程序本地到币安服务器的时延会有抖动.
这是我们设置recvWindow
的目的所在,如果你从事高频交易,对交易时效性有较高的要求,可以灵活设置recvWindow以达到你的要求。
POST /fapi/v1/order 的示例 - HMAC Keys
以下是在linux bash环境下使用 echo openssl 和curl工具实现的一个调用接口下单的示例 apikey、secret仅供示范
Key | Value |
---|---|
apiKey | dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83 |
secretKey | 2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9 |
参数 | 取值 |
---|---|
symbol | BTCUSDT |
side | BUY |
type | LIMIT |
timeInForce | GTC |
quantity | 1 |
price | 9000 |
recvWindow | 5000 |
timestamp | 1591702613943 |
示例 1: 所有参数通过 query string 发送
示例1:
HMAC SHA256 签名:
$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
(stdin)= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9
curl 调用:
$ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://fapi.binance.com/fapi/v1/order?symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943&signature= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9'
queryString:
symbol=BTCUSDT
&side=BUY
&type=LIMIT
&timeInForce=GTC
&quantity=1
&price=0.1
&recvWindow=5000
×tamp=1499827319559
示例 2: 所有参数通过 request body 发送
示例2:
HMAC SHA256 签名:
$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
(stdin)= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9
curl 调用:
$ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://fapi.binance.com/fapi/v1/order' -d 'symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943&signature= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9'
requestBody:
symbol=BTCUSDT
&side=BUY
&type=LIMIT
&timeInForce=GTC
&quantity=1
&price=9000
&recvWindow=5000
×tamp=1591702613943
示例 3: 混合使用 query string 与 request body
示例3:
HMAC SHA256 签名:
$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&timeInForce=GTCquantity=1&price=9000&recvWindow=5000×tamp= 1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
(stdin)= f9d0ae5e813ef6ccf15c2b5a434047a0181cb5a342b903b367ca6d27a66e36f2
curl 调用:
$ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://fapi.binance.com/fapi/v1/order?symbol=BTCUSDT&side=BUY&type=LIMIT&timeInForce=GTC' -d 'quantity=1&price=9000&recvWindow=5000×tamp=1591702613943&signature=f9d0ae5e813ef6ccf15c2b5a434047a0181cb5a342b903b367ca6d27a66e36f2'
- queryString: symbol=BTCUSDT&side=BUY&type=LIMIT&timeInForce=GTC
- requestBody: quantity=1&price=9000&recvWindow=5000×tamp= 1591702613943
请注意,示例3中的签名有些许不同,在"GTC"和"quantity=1"之间没有"&"字符。
POST /fapi/v1/order 的示例 - RSA Keys
- 这将逐步介绍如何通过有效的签名发送 payload。
- 我们接受
PKCS#8
格式的 RSA Key。 - 要获取 API Key,您需要在您的账户上上传您的 RSA Public Key。
对于这个例子,Private Key 将被引用为test-prv-key.pem
。
Key | Value |
---|---|
apiKey | vE3BDAL1gP1UaexugRLtteaAHg3UO8Nza20uexEuW1Kh3tVwQfFHdAiyjjY428o2 |
参数 | 取值 |
---|---|
symbol | BTCUSDT |
side | SELL |
type | MARKET |
quantity | 1.23 |
recvWindow | 9999999 |
timestamp | 1671090801999 |
有列出参数的签名 payload:
timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23
第1步: Payload
将参数列表排列成一个 string。 用 &
分隔每个参数。对于上述参数,签名 payload 如右所示。
第2步: 计算签名
2.1 - 将签名有效负载编码为 ASCII 数据。
第2.2步
$ echo -n 'timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23' | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem
2.2 - 使用带有 SHA-256 hash 函数的 RSASSA-PKCS1-v1_5 算法对 payload 进行签名。
第2.3步
$ echo -n 'timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23' | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem | openssl enc -base64
aap36wD5loVXizxvvPI3wz9Cjqwmb3KVbxoym0XeWG1jZq8umqrnSk8H8dkLQeySjgVY91Ufs%2BBGCW%2B4sZjQEpgAfjM76riNxjlD3coGGEsPsT2lG39R%2F1q72zpDs8pYcQ4A692NgHO1zXcgScTGgdkjp%2Brp2bcddKjyz5XBrBM%3D
2.3 - 将输出编码为 base64 string。
第2.4步
$ echo -n 'timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23' | openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem | openssl enc -base64 | tr -d '\n'
aap36wD5loVXizxvvPI3wz9Cjqwmb3KVbxoym0XeWG1jZq8umqrnSk8H8dkLQeySjgVY91Ufs%2BBGCW%2B4sZjQEpgAfjM76riNxjlD3coGGEsPsT2lG39R%2F1q72zpDs8pYcQ4A692NgHO1zXcgScTGgdkjp%2Brp2bcddKjyz5XBrBM%3D
2.4 - 删除签名中的所有 \n
。
第2.5步
aap36wD5loVXizxvvPI3wz9Cjqwmb3KVbxoym0XeWG1jZq8umqrnSk8H8dkLQeySjgVY91Ufs%2BBGCW%2B4sZjQEpgAfjM76riNxjlD3coGGEsPsT2lG39R%2F1q72zpDs8pYcQ4A692NgHO1zXcgScTGgdkjp%2Brp2bcddKjyz5XBrBM%3D
2.5 - 由于签名可能包含 /
和 =
,这可能会导致发送请求时出现问题。 所以签名必须是 URL 编码的。
第2.6步
curl -H "X-MBX-APIKEY: vE3BDAL1gP1UaexugRLtteaAHg3UO8Nza20uexEuW1Kh3tVwQfFHdAiyjjY428o2" -X POST 'https://fapi.binance.com/fapi/v1/order?timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23&signature=aap36wD5loVXizxvvPI3wz9Cjqwmb3KVbxoym0XeWG1jZq8umqrnSk8H8dkLQeySjgVY91Ufs%2BBGCW%2B4sZjQEpgAfjM76riNxjlD3coGGEsPsT2lG39R%2F1q72zpDs8pYcQ4A692NgHO1zXcgScTGgdkjp%2Brp2bcddKjyz5XBrBM%3D'
2.6 - curl 命令
Bash 脚本
#!/usr/bin/env bash
# 设置身份验证:
apiKey="vE3BDAL1gP1UaexugRLtteaAHg3UO8Nza20uexEuW1Kh3tVwQfFHdAiyjjY428o2" ### 替换成您的 API Key
# 设置您的请求:
apiMethod="POST"
apiCall="v1/order"
apiParams="timestamp=1671090801999&recvWindow=9999999&symbol=BTCUSDT&side=SELL&type=MARKET&quantity=1.23"
function rawurlencode {
local value="$1"
local len=${#value}
local encoded=""
local pos c o
for (( pos=0 ; pos<len ; pos++ ))
do
c=${value:$pos:1}
case "$c" in
[-_.~a-zA-Z0-9] ) o="${c}" ;;
* ) printf -v o '%%%02x' "'$c"
esac
encoded+="$o"
done
echo "$encoded"
}
ts=$(date +%s000)
paramsWithTs="$apiParams×tamp=$ts"
rawSignature=$(echo -n "$paramsWithTs" \
| openssl dgst -keyform PEM -sha256 -sign ./test-prv-key.pem \ ### 替换成您的 Private Key。不要与任何人共享此文件。
| openssl enc -base64 \
| tr -d '\n')
signature=$(rawurlencode "$rawSignature")
curl -H "X-MBX-APIKEY: $apiKey" -X $apiMethod \
"https://fapi.binance.com/fapi/$apiCall?$paramsWithTs&signature=$signature"
右边有示例 Bash 脚本执行上述类似的步骤.
公开API参数
术语解释
base asset
指一个交易对的交易对象,即写在靠前部分的资产名quote asset
指一个交易对的定价资产,即写在靠后部分资产名
枚举定义
交易对类型:
- FUTURE 期货
合约类型 (contractType):
- PERPETUAL 永续合约
- CURRENT_MONTH 当月交割合约
- NEXT_MONTH 次月交割合约
- CURRENT_QUARTER 当季交割合约
- NEXT_QUARTER 次季交割合约
- PERPETUAL_DELIVERING 交割结算中合约
合约状态 (contractStatus, status):
- PENDING_TRADING 待上市
- TRADING 交易中
- PRE_DELIVERING 预交割
- DELIVERING 交割中
- DELIVERED 已交割
- PRE_SETTLE 预结算
- SETTLING 结算中
- CLOSE 已下架
订单状态 (status):
- NEW 新建订单
- PARTIALLY_FILLED 部分成交
- FILLED 全部成交
- CANCELED 已撤销
- REJECTED 订单被拒绝
- EXPIRED 订单过期(根据timeInForce参数规则)
- EXPIRED_IN_MATCH 订单被STP过期
订单种类 (orderTypes, type):
- LIMIT 限价单
- MARKET 市价单
- STOP 止损限价单
- STOP_MARKET 止损市价单
- TAKE_PROFIT 止盈限价单
- TAKE_PROFIT_MARKET 止盈市价单
- TRAILING_STOP_MARKET 跟踪止损单
订单方向 (side):
- BUY 买入
- SELL 卖出
持仓方向:
- BOTH 单一持仓方向
- LONG 多头(双向持仓下)
- SHORT 空头(双向持仓下)
有效方式 (timeInForce):
- GTC - Good Till Cancel 成交为止(下单后仅有1年有效期,1年后自动取消)
- IOC - Immediate or Cancel 无法立即成交(吃单)的部分就撤销
- FOK - Fill or Kill 无法全部立即成交就撤销
- GTX - Good Till Crossing 无法成为挂单方就撤销
- GTD - Good Till Date 在特定时间之前有效,到期自动撤销
条件价格触发类型 (workingType)
- MARK_PRICE
- CONTRACT_PRICE
响应类型 (newOrderRespType)
- ACK
- RESULT
K线间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
防止自成交模式:
- NONE
- EXPIRE_TAKER
- EXPIRE_BOTH
- EXPIRE_MAKER
盘口价下单模式:
- OPPONENT (盘口对手价)
- OPPONENT_5 (盘口对手5档价)
- OPPONENT_10 (盘口对手10档价)
- OPPONENT_20
- QUEUE (盘口同向价)
- QUEUE_5 (盘口同向排队5档价)
- QUEUE_10 (盘口同向排队10档价)
- QUEUE_20 (盘口同向排队20档价)
限制种类 (rateLimitType)
REQUEST_WEIGHT
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400
}
ORDERS
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200
}
REQUESTS_WEIGHT 单位时间请求权重之和上限
ORDERS 单位时间下单(撤单)次数上限
限制间隔
- MINUTE
过滤器
过滤器,即Filter,定义了一系列交易规则。
共有两类,分别是针对交易对的过滤器symbol filters
,和针对整个交易所的过滤器exchange filters
(暂不支持)
交易对过滤器
PRICE_FILTER 价格过滤器
/exchangeInfo 响应中的格式:
{
"filterType": "PRICE_FILTER",
"minPrice": "0.00000100",
"maxPrice": "100000.00000000",
"tickSize": "0.00000100"
}
价格过滤器用于检测order订单中price参数的合法性
minPrice
定义了price
/stopPrice
允许的最小值maxPrice
定义了price
/stopPrice
允许的最大值。tickSize
定义了price
/stopPrice
的步进间隔,即price必须等于minPrice+(tickSize的整数倍) 以上每一项均可为0,为0时代表这一项不再做限制。
逻辑伪代码如下:
price
>=minPrice
price
<=maxPrice
- (
price
-minPrice
) %tickSize
== 0
LOT_SIZE 订单尺寸
/exchangeInfo 响应中的格式:*
{
"filterType": "LOT_SIZE",
"minQty": "0.00100000",
"maxQty": "100000.00000000",
"stepSize": "0.00100000"
}
lots是拍卖术语,这个过滤器对订单中的quantity
也就是数量参数进行合法性检查。包含三个部分:
minQty
表示quantity
允许的最小值.maxQty
表示quantity
允许的最大值stepSize
表示quantity
允许的步进值。
逻辑伪代码如下:
quantity
>=minQty
quantity
<=maxQty
- (
quantity
-minQty
) %stepSize
== 0
MARKET_LOT_SIZE 市价订单尺寸
参考LOT_SIZE,区别仅在于对市价单还是限价单生效
MAX_NUM_ORDERS 最多订单数
/exchangeInfo 响应中的格式:
{
"filterType": "MAX_NUM_ORDERS",
"limit": 200
}
定义了某个交易对最多允许的挂单数量(不包括已关闭的订单)
普通订单与条件订单均计算在内
MAX_NUM_ALGO_ORDERS 最多条件订单数
/exchangeInfo format:
{
"filterType": "MAX_NUM_ALGO_ORDERS",
"limit": 100
}
定义了某个交易对最多允许的条件订单的挂单数量(不包括已关闭的订单)。
条件订单目前包括STOP
, STOP_MARKET
, TAKE_PROFIT
, TAKE_PROFIT_MARKET
, 和 TRAILING_STOP_MARKET
PERCENT_PRICE 价格振幅过滤器
/exchangeInfo 响应中的格式:
{
"filterType": "PERCENT_PRICE",
"multiplierUp": "1.1500",
"multiplierDown": "0.8500",
"multiplierDecimal": 4
}
PERCENT_PRICE
定义了基于标记价格计算的挂单价格的可接受区间.
挂单价格必须同时满足以下条件:
- 买单:
price
<=markPrice
*multiplierUp
- 卖单:
price
>=markPrice
*multiplierDown
MIN_NOTIONAL 最小名义价值
/exchangeInfo 响应中的格式:
{
"filterType": "MIN_NOTIONAL",
"notioanl": "5.0"
}
MIN_NOTIONAL过滤器定义了交易对订单所允许的最小名义价值(成交额)。
订单的名义价值是价格
*数量
。
由于MARKET
订单没有价格,因此会使用 mark price 计算。
Postman Collections
现在你可以通过Postman collection
来快速体验、使用API接口。
如果想了解更多如果使用Postman,请访问Binance API Postman
WebSocket API基本信息
- Base url为:'wss://ws-fapi.binance.com/ws-fapi/v1'
- 测试网的Base url为:
wss://testnet.binancefuture.com/ws-fapi/v1
- 测试网的Base url为:
- 单次连接API有效期仅为24小时;预计在 24 小时标记后断开连接。
- Websocket服务器每3分钟发送一个ping消息。
- 如果 websocket 服务器在10分钟内没有收到来自连接的
pong frame
,则连接将断开。 - 当客户收到ping消息,必需尽快回复pong消息,同时payload需要和ping消息一致。
- 未经请求的pong消息是被允许的,但是不会保证连接不断开。对于这些pong消息,建议payload为空。
- 如果 websocket 服务器在10分钟内没有收到来自连接的
- 必须通过获取除签名之外的所有请求参数并按字母顺序按名称排序来生成签名payload
- 除非另有说明,否则列表按时间顺序返回。
- 除非另有说明,否则所有时间戳均以 UTC 中的毫秒为单位。
- 除非另有说明,否则所有字段名称和值均区分大小写。
INT
参数(如时间戳)应为 JSON 整数,而不是字符串。DECIMAL
参数(如 price)应为 JSON 字符串,而不是浮点数。- 用户数据流请求 - 您需要建立单独的WebSocket连接来获得 [账户信息推送](https://binance-docs.github.io/apidocs/futures/cn/#websocket-2)
请求示例:
{
"id": "9ca10e58-7452-467e-9454-f669bb9c764e",
"method": "order.place",
"params": {
"apiKey": "yeqKcXjtA9Eu4Tr3nJk61UJAGzXsEmFqqfVterxpMpR4peNfqE7Zl7oans8Qj089",
"price": "42088.0",
"quantity": "0.1",
"recvWindow": 5000,
"side": "BUY",
"signature": "996962a19802b5a09d7bc6ab1524227894533322a2f8a1f8934991689cabf8fe",
"symbol": "BTCUSDT",
"timeInForce": "GTC",
"timestamp": 1705311512994,
"type": "LIMIT"
}
}
请求字段:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
INT / STRING / null |
YES | 任意的 ID 用于匹配对请求的响应 |
method |
STRING | YES | 请求函数名称 |
params |
OBJECT | NO | 请求参数。如果没有参数可以省略 |
- 请求
id
是任意的。可以使用 UUID、顺次 ID、当前时间戳等。 服务器不会以任何方式解释id
,只是在响应中回显它。
可以在一个会话中自由重复使用 ID,不过请注意不要一次发送多个具有相同 ID 的请求,因为否则可能无法区分响应。
请求函数名称可以以显式版本为前缀,例如:
"v3/order.place"
params
的顺序不重要。
WebSocket API响应格式
响应在 text 帧 中以 JSON 格式返回,每帧一个响应。
成功响应示例:
{
"id": "43a3843a-2321-4e45-8f79-351e5c354563",
"status": 200,
"result": {
"orderId": 336829446,
"symbol": "BTCUSDT",
"status": "NEW",
"clientOrderId": "FqEw6cn0vDhrkmfiwLYPeo",
"price": "42088.00",
"avgPrice": "0.00",
"origQty": "0.100",
"executedQty": "0.000",
"cumQty": "0.000",
"cumQuote": "0.00000",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "BUY",
"positionSide": "BOTH",
"stopPrice": "0.00",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"priceMatch": "NONE",
"selfTradePreventionMode": "NONE",
"goodTillDate": 0,
"updateTime": 1705385954229
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 300,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200,
"count": 0
}
]
}
失败响应示例:
{
"id": "5761b939-27b1-4948-ab87-4a372a3f6b72",
"status": 400,
"error": {
"code": -1102,
"msg": "Mandatory parameter 'quantity' was not sent, was empty/null, or malformed."
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 300,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200,
"count": 1
}
]
}
响应字段:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
INT / STRING / null |
YES | 与原来请求的ID一样 |
status |
INT | YES | 响应状态。请看 状态代码 |
result |
OBJECT / ARRAY | YES | 响应内容。请求成功则显示 |
error |
OBJECT | 错误描述。请求失败则显示 | |
rateLimits |
ARRAY | NO | 速率限制状态。请看 速率限制 |
WebSocket API访问限制
- 速率限制与 REST API 相同,并且与 REST API 共享。
- WebSocket 握手尝试消耗权重5。
- ping/pong 帧的速率限制:每秒最多5次。
- 默认情况下,响应中包含速率限制信息,参见
rateLimits
字段。 - 可以通过在连接字符串或单个请求中的
returnRateLimits
布尔参数来控制rateLimits
字段的可见性。 - 例如,使用
wss://ws-fapi.binance.com/ws-fapi/v1?returnRateLimits=false
默认在响应中隐藏rateLimits
。在这样的情况下,您可以在请求中传递额外的"returnRateLimits": true
参数,当默认隐藏时,就可以在响应中显示速率限制。
WebSocket API连接后进行身份验证
你可以使用会话身份验证请求对已经建立的连接进行身份验证:
session.logon
– 进行身份验证,或更改与连接相关联的API密钥。session.status
– 检查连接状态和当前API密钥。session.logout
– 忘记与连接关联的API密钥。
WebSocket API关于吊销API密钥
如果在活动会话期间,由于 任何 原因(例如IP地址未被加入白名单、API密钥被删除、API密钥没有正确的权限等),在下一个请求后,会话将被吊销,并显示以下错误消息:
{
"id": null,
"status": 401,
"error": {
"code": -2015,
"msg": "Invalid API-key, IP, or permissions for action."
}
}
WebSocket API授权 临时 请求
WebSocket连接只能通过一个API密钥进行身份验证。
默认情况下,经过身份验证的API密钥将用于需要apiKey
参数的请求。
但是,你始终可以为单个请求明确指定apiKey
和signature
,覆盖已认证的API密钥,以使用不同的API密钥授权特定请求。
例如,你可能希望用默认密钥来验证 USER_DATA
,但在下单时使用TRADE
密钥来签名。
WebSocket API身份验证请求
注意: 仅支持 Ed25519 密钥用于此功能。
用API key登录 (SIGNED)
请求
{
"id": "c174a2b1-3f51-4580-b200-8528bd237cb7",
"method": "session.logon",
"params": {
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"signature": "1cf54395b336b0a9727ef27d5d98987962bc47aca6e13fe978612d0adee066ed",
"timestamp": 1649729878532
}
}
响应:
{
"id": "c174a2b1-3f51-4580-b200-8528bd237cb7",
"status": 200,
"result": {
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"authorizedSince": 1649729878532,
"connectedSince": 1649729873021,
"returnRateLimits": false,
"serverTime": 1649729878630
}
}
使用提供的API密钥进行WebSocket连接身份验证。
在调用session.logon
后,将来的需要apiKey
和signature
参数的请求可以省略它们。
请注意,只能认证一个API密钥。
多次调用session.logon
将更改当前已认证的API密钥。
权重: 2
参数:
参数名 | 类型 | 是否必需 | 描述 |
---|---|---|---|
apiKey |
STRING | YES | |
recvWindow |
INT | NO | The value cannot be greater than 60000 |
signature |
STRING | YES | |
timestamp |
INT | YES |
数据源: 缓存
查询会话状态
请求
{
"id": "b50c16cd-62c9-4e29-89e4-37f10111f5bf",
"method": "session.status"
}
响应:
{
"id": "b50c16cd-62c9-4e29-89e4-37f10111f5bf",
"status": 200,
"result": {
// 如果连接未经身份验证,"apiKey" 和 "authorizedSince" 将显示为 null。
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A",
"authorizedSince": 1649729878532,
"connectedSince": 1649729873021,
"returnRateLimits": false,
"serverTime": 1649730611671
}
}
查询WebSocket连接的状态,检查用于授权请求的API密钥(如果有的话)。
权重: 2
参数: NONE
数据源: 缓存
退出会话
请求
{
"id": "c174a2b1-3f51-4580-b200-8528bd237cb7",
"method": "session.logout"
}
响应:
{
"id": "c174a2b1-3f51-4580-b200-8528bd237cb7",
"status": 200,
"result": {
"apiKey": null,
"authorizedSince": null,
"connectedSince": 1649729873021,
"returnRateLimits": false,
"serverTime": 1649730611671
}
}
忘记之前认证的API密钥。 如果连接未经身份验证,此请求不会有任何作用。
请注意,session.logout
请求后,WebSocket连接仍然保持打开状态。
你可以继续使用连接,但现在必须在需要的地方明确提供apiKey
和signature
参数。
权重: 2
参数: NONE
数据源: 缓存
SIGNED (TRADE and USER_DATA) 请求安全
SIGNED 请求示例 (Ed25519)
参数 | 取值 |
---|---|
symbol | BTCUSDT |
side | SELL |
type | LIMIT |
timeInForce | GTC |
quantity | 1 |
price | 0.2 |
timestamp | 1668481559918 |
#!/usr/bin/env python3
import base64
import time
import json
from cryptography.hazmat.primitives.serialization import load_pem_private_key
from websocket import create_connection
# 设置身份验证:
API_KEY='替换成您的 API Key'
PRIVATE_KEY_PATH='test-prv-key.pem'
# 加载 private key。
# 在这个例子中,private key 没有加密,但我们建议使用强密码以提高安全性。
with open(PRIVATE_KEY_PATH, 'rb') as f:
private_key = load_pem_private_key(data=f.read(), password=None)
# 设置请求参数:
params = {
'apiKey': API_KEY,
'symbol': 'BTCUSDT',
'side': 'SELL',
'type': 'LIMIT',
'timeInForce': 'GTC',
'quantity': '1.0000000',
'price': '0.20'
}
# 参数中加时间戳:
timestamp = int(time.time() * 1000) # 以毫秒为单位的 UNIX 时间戳
params['timestamp'] = timestamp
# 参数中加签名:
payload = '&'.join([f'{param}={value}' for param, value in sorted(params.items())])
signature = base64.b64encode(private_key.sign(payload.encode('ASCII')))
params['signature'] = signature.decode('ASCII')
# 发送请求:
request = {
'id': 'my_new_order',
'method': 'order.place',
'params': params
}
ws = create_connection('wss://ws-fapi.binance.com/ws-fapi/v1')
ws.send(json.dumps(request))
result = ws.recv()
ws.close()
print(result)
右边有 Python 脚本来示例如何使用 Ed25519 key 签名。
行情接口
测试服务器连通性 PING
GET /fapi/v1/ping
响应:
{}
测试能否联通
权重: 1
参数: NONE
获取服务器时间
响应:
{
"serverTime": 1499827319559 // 当前的系统时间
}
GET /fapi/v1/time
获取服务器时间
权重: 1
参数: NONE
获取交易规则和交易对
响应:
{
"exchangeFilters": [],
"rateLimits": [ // API访问的限制
{
"interval": "MINUTE", // 按照分钟计算
"intervalNum": 1, // 按照1分钟计算
"limit": 2400, // 上限次数
"rateLimitType": "REQUEST_WEIGHT" // 按照访问权重来计算
},
{
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200,
"rateLimitType": "ORDERS" // 按照订单数量来计算
}
],
"serverTime": 1565613908500, // 请忽略。如果需要获取当前系统时间,请查询接口 “GET /fapi/v1/time”
"assets": [ // 资产信息
{
"asset": "BUSD",
"marginAvailable": true, // 是否可用作保证金
"autoAssetExchange": 0 // 仅对vip 2-9用户生效
},
{
"asset": "USDT",
"marginAvailable": true, // 是否可用作保证金
"autoAssetExchange": 0 // 仅对vip 2-9用户生效
},
{
"asset": "BNB",
"marginAvailable": false, // 是否可用作保证金
"autoAssetExchange": null // 仅对vip 2-9用户生效
}
],
"symbols": [ // 交易对信息
{
"symbol": "BLZUSDT", // 交易对
"pair": "BLZUSDT", // 标的交易对
"contractType": "PERPETUAL", // 合约类型
"deliveryDate": 4133404800000, // 交割日期
"onboardDate": 1598252400000, // 上线日期
"status": "TRADING", // 交易对状态
"maintMarginPercent": "2.5000", // 请忽略
"requiredMarginPercent": "5.0000", // 请忽略
"baseAsset": "BLZ", // 标的资产
"quoteAsset": "USDT", // 报价资产
"marginAsset": "USDT", // 保证金资产
"pricePrecision": 5, // 价格小数点位数(仅作为系统精度使用,注意同tickSize 区分)
"quantityPrecision": 0, // 数量小数点位数(仅作为系统精度使用,注意同stepSize 区分)
"baseAssetPrecision": 8, // 标的资产精度
"quotePrecision": 8, // 报价资产精度
"underlyingType": "COIN",
"underlyingSubType": ["STORAGE"],
"settlePlan": 0,
"triggerProtect": "0.15", // 开启"priceProtect"的条件订单的触发阈值
"filters": [
{
"filterType": "PRICE_FILTER", // 价格限制
"maxPrice": "300", // 价格上限, 最大价格
"minPrice": "0.0001", // 价格下限, 最小价格
"tickSize": "0.0001" // 订单最小价格间隔
},
{
"filterType": "LOT_SIZE", // 数量限制
"maxQty": "10000000", // 数量上限, 最大数量
"minQty": "1", // 数量下限, 最小数量
"stepSize": "1" // 订单最小数量间隔
},
{
"filterType": "MARKET_LOT_SIZE", // 市价订单数量限制
"maxQty": "590119", // 数量上限, 最大数量
"minQty": "1", // 数量下限, 最小数量
"stepSize": "1" // 允许的步进值
},
{
"filterType": "MAX_NUM_ORDERS", // 最多订单数限制
"limit": 200
},
{
"filterType": "MAX_NUM_ALGO_ORDERS", // 最多条件订单数限制
"limit": 100
},
{
"filterType": "MIN_NOTIONAL", // 最小名义价值
"notional": "5.0",
},
{
"filterType": "PERCENT_PRICE", // 价格比限制
"multiplierUp": "1.1500", // 价格上限百分比
"multiplierDown": "0.8500", // 价格下限百分比
"multiplierDecimal": 4
}
],
"OrderType": [ // 订单类型
"LIMIT", // 限价单
"MARKET", // 市价单
"STOP", // 止损单
"STOP_MARKET", // 止损市价单
"TAKE_PROFIT", // 止盈单
"TAKE_PROFIT_MARKET", // 止盈暑市价单
"TRAILING_STOP_MARKET" // 跟踪止损市价单
],
"timeInForce": [ // 有效方式
"GTC", // 成交为止, 一直有效
"IOC", // 无法立即成交(吃单)的部分就撤销
"FOK", // 无法全部立即成交就撤销
"GTX" // 无法成为挂单方就撤销
],
"liquidationFee": "0.010000", // 强平费率
"marketTakeBound": "0.30", // 市价吃单(相对于标记价格)允许可造成的最大价格偏离比例
}
],
"timezone": "UTC" // 服务器所用的时间区域
}
GET /fapi/v1/exchangeInfo
获取交易规则和交易对
权重: 1
参数: NONE
深度信息
响应:
{
"lastUpdateId": 1027024,
"E": 1589436922972, // 消息时间
"T": 1589436922959, // 撮合引擎时间
"bids": [ // 买单
[
"4.00000000", // 价格
"431.00000000" // 数量
]
],
"asks": [ // 卖单
[
"4.00000200", // 价格
"12.00000000" // 数量
]
]
}
GET /fapi/v1/depth
权重:
limit | 权重 |
---|---|
5, 10, 20, 50 | 2 |
100 | 5 |
500 | 10 |
1000 | 20 |
更新速率: 15ms
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
limit | INT | NO | 默认 500; 可选值:[5, 10, 20, 50, 100, 500, 1000] |
近期成交
响应:
[
{
"id": 28457, // 成交ID
"price": "4.00000100", // 成交价格
"qty": "12.00000000", // 成交量
"quoteQty": "48.00", // 成交额
"time": 1499865549590, // 时间
"isBuyerMaker": true // 买方是否为挂单方
}
]
GET /fapi/v1/trades
获取近期订单簿成交
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
limit | INT | NO | 默认:500,最大1000 |
- 仅返回订单簿成交,即不会返回保险基金和自动减仓(ADL)成交
查询历史成交(MARKET_DATA)
响应:
[
{
"id": 28457, // 成交ID
"price": "4.00000100", // 成交价格
"qty": "12.00000000", // 成交量
"quoteQty": "48.00", // 成交额
"time": 1499865549590, // 时间
"isBuyerMaker": true // 买方是否为挂单方
}
]
GET /fapi/v1/historicalTrades
查询订单簿历史成交
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
limit | INT | NO | 默认值:500 最大值:1000. |
fromId | LONG | NO | 从哪一条成交id开始返回. 缺省返回最近的成交记录 |
- 仅返回订单簿成交,即不会返回保险基金和自动减仓(ADL)成交
- 仅支持返回最近3个月的数据(目前最早的时间为2023-11-21 00:00:00)
近期成交(归集)
响应:
[
{
"a": 26129, // 归集成交ID
"p": "0.01633102", // 成交价
"q": "4.70443515", // 成交量
"f": 27781, // 被归集的首个成交ID
"l": 27781, // 被归集的末个成交ID
"T": 1498793709153, // 成交时间
"m": true, // 是否为主动卖出单
}
]
GET /fapi/v1/aggTrades
归集交易与逐笔交易的区别在于,同一价格、同一方向、同一时间(100ms计算)的订单簿trade会被聚合为一条
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
fromId | LONG | NO | 从包含fromID的成交开始返回结果 |
startTime | LONG | NO | 从该时刻之后的成交记录开始返回结果 |
endTime | LONG | NO | 返回该时刻为止的成交记录 |
limit | INT | NO | 默认 500; 最大 1000. |
- 如果同时发送
startTime
和endTime
,间隔必须小于一小时 - 如果没有发送任何筛选参数(
fromId
,startTime
,endTime
),默认返回最近的成交记录 - 保险基金和自动减仓(ADL)成交不属于订单簿成交,故不会被归并聚合
- 同时发送
startTime
/endTime
和fromId
可能导致请求超时,建议仅发送fromId
或仅发送startTime
和endTime
K线数据
响应:
[
[
1499040000000, // 开盘时间
"0.01634790", // 开盘价
"0.80000000", // 最高价
"0.01575800", // 最低价
"0.01577100", // 收盘价(当前K线未结束的即为最新价)
"148976.11427815", // 成交量
1499644799999, // 收盘时间
"2434.19055334", // 成交额
308, // 成交笔数
"1756.87402397", // 主动买入成交量
"28.46694368", // 主动买入成交额
"17928899.62484339" // 请忽略该参数
]
]
GET /fapi/v1/klines
每根K线的开盘时间可视为唯一ID
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500. |
- 缺省返回最近的数据
连续合约K线数据
响应:
[
[
1607444700000, // 开盘时间
"18879.99", // 开盘价
"18900.00", // 最高价
"18878.98", // 最低价
"18896.13", // 收盘价(当前K线未结束的即为最新价)
"492.363", // 成交量
1607444759999, // 收盘时间
"9302145.66080", // 成交额
1874, // 成交笔数
"385.983", // 主动买入成交量
"7292402.33267", // 主动买入成交额
"0" // 请忽略该参数
]
]
GET /fapi/v1/continuousKlines
每根K线的开盘时间可视为唯一ID
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
pair | STRING | YES | 标的交易对 |
contractType | ENUM | YES | 合约类型 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500 |
缺省返回最近的数据
合约类型:
- PERPETUAL 永续合约
- CURRENT_QUARTER 当季交割合约
- NEXT_QUARTER 次季交割合约
价格指数K线数据
响应:
[
[
1591256400000, // 开盘时间
"9653.69440000", // 开盘价
"9653.69640000", // 最高价
"9651.38600000", // 最低价
"9651.55200000", // 收盘价(当前K线未结束的即为最新价)
"0 ", // 请忽略
1591256459999, // 收盘时间
"0", // 请忽略
60, // 请忽略
"0", // 请忽略
"0", // 请忽略
"0" // 请忽略
]
]
GET /fapi/v1/indexPriceKlines
每根K线的开盘时间可视为唯一ID
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
pair | STRING | YES | 标的交易对 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500 |
- 缺省返回最近的数据
标记价格K线数据
响应:
[
[
1591256400000, // 开盘时间
"9653.69440000", // 开盘价
"9653.69640000", // 最高价
"9651.38600000", // 最低价
"9651.55200000", // 收盘价(当前K线未结束的即为最新价)
"0 ", // 请忽略
1591256459999, // 收盘时间
"0", // 请忽略
60, // 请忽略
"0", // 请忽略
"0", // 请忽略
"0" // 请忽略
]
]
GET /fapi/v1/markPriceKlines
每根K线的开盘时间可视为唯一ID
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500 |
- 缺省返回最近的数据
溢价指数K线数据
响应:
[
[
1691603820000, // 开盘时间
"-0.00042931", // 开盘价
"-0.00023641", // 最高价
"-0.00059406", // 最低价
"-0.00043659", // 收盘价
"0", // 请忽略
1691603879999, // 收盘时间
"0", // 请忽略
12, // 请忽略
"0", // 请忽略
"0", // 请忽略
"0" // 请忽略
]
]
GET /fapi/v1/premiumIndexKlines
合约溢价指数K线。每根K线的开盘时间可视为唯一ID。
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500 |
- 缺省返回最近的数据
最新标记价格和资金费率
响应:
{
"symbol": "BTCUSDT", // 交易对
"markPrice": "11793.63104562", // 标记价格
"indexPrice": "11781.80495970", // 指数价格
"estimatedSettlePrice": "11781.16138815", // 预估结算价,仅在交割开始前最后一小时有意义
"lastFundingRate": "0.00038246", // 最近更新的资金费率
"nextFundingTime": 1597392000000, // 下次资金费时间
"interestRate": "0.00010000", // 标的资产基础利率
"time": 1597370495002 // 更新时间
}
当不指定symbol时相应
[
{
"symbol": "BTCUSDT", // 交易对
"markPrice": "11793.63104562", // 标记价格
"indexPrice": "11781.80495970", // 指数价格
"estimatedSettlePrice": "11781.16138815", // 预估结算价,仅在交割开始前最后一小时有意义
"lastFundingRate": "0.00038246", // 最近更新的预估资金费率
"nextFundingTime": 1597392000000, // 下次资金费时间
"interestRate": "0.00010000", // 标的资产基础利率
"time": 1597370495002 // 更新时间
}
]
GET /fapi/v1/premiumIndex
采集各大交易所数据加权平均
权重: 带symbol为1;不带symbol为10
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
查询资金费率历史
响应:
[
{
"symbol": "BTCUSDT", // 交易对
"fundingTime": 1698768000000, // 资金费时间
"fundingRate": "0.00010000", // 资金费率
"markPrice": "34287.54619963" // 资金费对应标记价格
},
{
"symbol": "BTCUSDT",
"fundingTime": 1698796800000,
"fundingRate": "0.00010000",
"markPrice": "34651.40000000"
}
]
GET /fapi/v1/fundingRate
频率限制
和GET /fapi/v1/fundingInfo
共享500/5min/IP
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:100 最大值:1000 |
- 如果
startTime
和endTime
都未发送, 返回最近limit
条数据. - 如果
startTime
和endTime
之间的数据量大于limit
, 返回startTime
+limit
情况下的数据。
查询资金费率信息
响应:
[
{
"symbol": "BLZUSDT",
"adjustedFundingRateCap": "0.02500000",
"adjustedFundingRateFloor": "-0.02500000",
"fundingIntervalHours": 8,
"disclaimer": false
}
]
GET /fapi/v1/fundingInfo
频率限制
和GET /fapi/v1/fundingRate
共享500/5min/IP
查询资金费率信息,接口仅返回FundingRateCap/FundingRateFloor/fundingIntervalHours被特殊调整过的交易对。
24hr价格变动情况
响应:
{
"symbol": "BTCUSDT",
"priceChange": "-94.99999800", //24小时价格变动
"priceChangePercent": "-95.960", //24小时价格变动百分比
"weightedAvgPrice": "0.29628482", //加权平均价
"lastPrice": "4.00000200", //最近一次成交价
"lastQty": "200.00000000", //最近一次成交额
"openPrice": "99.00000000", //24小时内第一次成交的价格
"highPrice": "100.00000000", //24小时最高价
"lowPrice": "0.10000000", //24小时最低价
"volume": "8913.30000000", //24小时成交量
"quoteVolume": "15.30000000", //24小时成交额
"openTime": 1499783499040, //24小时内,第一笔交易的发生时间
"closeTime": 1499869899040, //24小时内,最后一笔交易的发生时间
"firstId": 28385, // 首笔成交id
"lastId": 28460, // 末笔成交id
"count": 76 // 成交笔数
}
或(当不发送交易对信息)
[
{
"symbol": "BTCUSDT",
"priceChange": "-94.99999800", //24小时价格变动
"priceChangePercent": "-95.960", //24小时价格变动百分比
"weightedAvgPrice": "0.29628482", //加权平均价
"lastPrice": "4.00000200", //最近一次成交价
"lastQty": "200.00000000", //最近一次成交额
"openPrice": "99.00000000", //24小时内第一次成交的价格
"highPrice": "100.00000000", //24小时最高价
"lowPrice": "0.10000000", //24小时最低价
"volume": "8913.30000000", //24小时成交量
"quoteVolume": "15.30000000", //24小时成交额
"openTime": 1499783499040, //24小时内,第一笔交易的发生时间
"closeTime": 1499869899040, //24小时内,最后一笔交易的发生时间
"firstId": 28385, // 首笔成交id
"lastId": 28460, // 末笔成交id
"count": 76 // 成交笔数
}
]
GET /fapi/v1/ticker/24hr
请注意,不携带symbol参数会返回全部交易对数据,不仅数据庞大,而且权重极高
权重:
* 带symbol为1
* 不带为40
更新速率: 5s
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
- 不发送交易对参数,则会返回所有交易对信息
最新价格
响应:
{
"symbol": "LTCBTC", // 交易对
"price": "4.00000200", // 价格
"time": 1589437530011 // 撮合引擎时间
}
或(当不发送symbol)
[
{
"symbol": "BTCUSDT", // 交易对
"price": "6000.01", // 价格
"time": 1589437530011 // 撮合引擎时间
}
]
GET /fapi/v1/ticker/price
返回最近价格
权重:
* 单交易对1
* 无交易对2
更新速率: 5s
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
- 不发送交易对参数,则会返回所有交易对信息
最新价格V2
响应:
{
"symbol": "LTCBTC", // 交易对
"price": "4.00000200", // 价格
"time": 1589437530011 // 撮合引擎时间
}
或(当不发送symbol)
[
{
"symbol": "BTCUSDT", // 交易对
"price": "6000.01", // 价格
"time": 1589437530011 // 撮合引擎时间
}
]
GET /fapi/v2/ticker/price
返回最近价格
权重:
* 单交易对1
* 无交易对2
更新速率: 实时
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
- 不发送交易对参数,则会返回所有交易对信息
当前最优挂单
响应:
{
"lastUpdateId": 1027024,
"symbol": "BTCUSDT", // 交易对
"bidPrice": "4.00000000", //最优买单价
"bidQty": "431.00000000", //挂单量
"askPrice": "4.00000200", //最优卖单价
"askQty": "9.00000000", //挂单量
"time": 1589437530011 // 撮合引擎时间
}
或(当不发送symbol)
[
{
"lastUpdateId": 1027024,
"symbol": "BTCUSDT", // 交易对
"bidPrice": "4.00000000", //最优买单价
"bidQty": "431.00000000", //挂单量
"askPrice": "4.00000200", //最优卖单价
"askQty": "9.00000000", //挂单量
"time": 1589437530011 // 撮合引擎时间
}
]
GET /fapi/v1/ticker/bookTicker
返回当前最优的挂单(最高买单,最低卖单)
权重:
* 单交易对2
* 无交易对5
更新速率: 实时
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
- 不发送交易对参数,则会返回所有交易对信息
- 该接口返回头中的
X-MBX-USED-WEIGHT-1M
参数不准确,可以忽略
获取未平仓合约数
响应:
{
"openInterest": "10659.509", // 未平仓合约数量
"symbol": "BTCUSDT", // 交易对
"time": 1589437530011 // 撮合引擎时间
}
GET /fapi/v1/openInterest
权重: 1
更新速率: 3s
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
季度合约历史结算价
响应:
[
{
"deliveryPrice": 27101.10000000,
"deliveryTime": 1695945600000
},
{
"deliveryPrice": 30729.40000000,
"deliveryTime": 1688083200000
},
{
"deliveryPrice": 27823.70000000,
"deliveryTime": 1680220800000
},
{
"deliveryPrice": 44094.70000000,
"deliveryTime": 1648166400000
}
]
GET /futures/data/delivery-price
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
pair | STRING | YES | 如BTCUSDT |
合约持仓量
响应:
[
{
"symbol":"BTCUSDT",
"sumOpenInterest":"20403.12345678",// 持仓总数量
"sumOpenInterestValue": "176196512.12345678", // 持仓总价值
"timestamp":"1583127900000"
},
{
"symbol":"BTCUSDT",
"sumOpenInterest":"20401.36700000",
"sumOpenInterestValue":"149940752.14464448",
"timestamp":"1583128200000"
},
]
GET /futures/data/openInterestHist
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
period | ENUM | YES | "5m","15m","30m","1h","2h","4h","6h","12h","1d" |
limit | LONG | NO | default 30, max 500 |
startTime | LONG | NO | |
endTime | LONG | NO |
- 若无 startime 和 endtime 限制, 则默认返回当前时间往前的limit值
- 仅支持最近30天的数据
- IP限频为1000次/5min
大户账户数多空比
响应:
[
{
"symbol":"BTCUSDT",
"longShortRatio":"1.8105",// 大户多空账户数比值
"longAccount": "0.6442", // 大户多仓账户数比例
"shortAccount":"0.3558", // 大户空仓账户数比例
"timestamp":"1583139600000"
},
{
"symbol":"BTCUSDT",
"longShortRatio":"1.8233",
"longAccount": "0.5338",
"shortAccount":"0.3454",
"timestamp":"1583139900000"
},
]
GET /futures/data/topLongShortAccountRatio
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
period | ENUM | YES | "5m","15m","30m","1h","2h","4h","6h","12h","1d" |
limit | LONG | NO | default 30, max 500 |
startTime | LONG | NO | |
endTime | LONG | NO |
- 若无 startime 和 endtime 限制, 则默认返回当前时间往前的limit值
- 仅支持最近30天的数据
- IP限频为1000次/5min
大户持仓量多空比
响应:
[
{
"symbol":"BTCUSDT",
"longShortRatio":"1.4342",// 大户多空持仓量比值
"longAccount": "0.5344", // 大户多仓持仓量比例
"shortAccount":"0.4656", // 大户空仓持仓量比例
"timestamp":"1583139600000"
},
{
"symbol":"BTCUSDT",
"longShortRatio":"1.4337",
"longAccount": "0.5891",
"shortAccount":"0.4108",
"timestamp":"1583139900000"
},
]
GET /futures/data/topLongShortPositionRatio
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
period | ENUM | YES | "5m","15m","30m","1h","2h","4h","6h","12h","1d" |
limit | LONG | NO | default 30, max 500 |
startTime | LONG | NO | |
endTime | LONG | NO |
- 若无 startime 和 endtime 限制, 则默认返回当前时间往前的limit值
- 仅支持最近30天的数据
- IP限频为1000次/5min
多空持仓人数比
响应:
[
{
"symbol":"BTCUSDT",
"longShortRatio":"0.1960", // 多空人数比值
"longAccount": "0.6622", // 多仓人数比例
"shortAccount":"0.3378", // 空仓人数比例
"timestamp":"1583139600000"
},
{
"symbol":"BTCUSDT",
"longShortRatio":"1.9559",
"longAccount": "0.6617",
"shortAccount":"0.3382",
"timestamp":"1583139900000"
},
]
GET /futures/data/globalLongShortAccountRatio
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
period | ENUM | YES | "5m","15m","30m","1h","2h","4h","6h","12h","1d" |
limit | LONG | NO | default 30, max 500 |
startTime | LONG | NO | |
endTime | LONG | NO |
- 若无 startime 和 endtime 限制, 则默认返回当前时间往前的limit值
- 仅支持最近30天的数据
- IP限频为1000次/5min
合约主动买卖量
响应:
[
{
"buySellRatio":"1.5586",
"buyVol": "387.3300", // 主动买入量
"sellVol":"248.5030", // 主动卖出量
"timestamp":"1585614900000"
},
{
"buySellRatio":"1.3104",
"buyVol": "343.9290",
"sellVol":"248.5030",
"timestamp":"1583139900000"
},
]
GET /futures/data/takerlongshortRatio
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
period | ENUM | YES | "5m","15m","30m","1h","2h","4h","6h","12h","1d" |
limit | LONG | NO | default 30, max 500 |
startTime | LONG | NO | |
endTime | LONG | NO |
- 若无 startime 和 endtime 限制, 则默认返回当前时间往前的limit值
- 仅支持最近30天的数据
- IP限频为1000次/5min
基差
响应:
[
{
"indexPrice": "34400.15945055",
"contractType": "PERPETUAL",
"basisRate": "0.0004",
"futuresPrice": "34414.10",
"annualizedBasisRate": "",
"basis": "13.94054945",
"pair": "BTCUSDT",
"timestamp": 1698742800000
}
]
GET /futures/data/basis
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
pair | STRING | YES | BTCUSDT |
contractType | ENUM | YES | CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL |
period | ENUM | YES | "5m","15m","30m","1h","2h","4h","6h","12h","1d" |
limit | LONG | YES | Default 30,Max 500 |
startTime | LONG | NO | |
endTime | LONG | NO |
- 若无 startime 和 endtime 限制, 则默认返回当前时间往前的limit值
- 仅支持最近30天的数据
综合指数交易对信息
响应:
[
{
"symbol": "DEFIUSDT",
"time": 1589437530011, // 请求时间
"component": "baseAsset", //成分资产
"baseAssetList":[
{
"baseAsset":"BAL", // 基础资产
"quoteAsset": "USDT", // 报价资产
"weightInQuantity":"1.04406228", //权重(数量)
"weightInPercentage":"0.02783900" //权重(比例)
},
{
"baseAsset":"BAND",
"quoteAsset": "USDT",
"weightInQuantity":"3.53782729",
"weightInPercentage":"0.03935200"
}
]
}
]
获取交易对为综合指数的基础成分信息。
GET /fapi/v1/indexInfo
权重: 带symbol为1;不带symbol为10
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO |
多资产模式资产汇率指数
响应:
{
"symbol": "ADAUSD",
"time": 1635740268004,
"index": "1.92957370",
"bidBuffer": "0.10000000",
"askBuffer": "0.10000000",
"bidRate": "1.73661633",
"askRate": "2.12253107",
"autoExchangeBidBuffer": "0.05000000",
"autoExchangeAskBuffer": "0.05000000",
"autoExchangeBidRate": "1.83309501",
"autoExchangeAskRate": "2.02605238"
}
或(当不发送交易对信息)
[
{
"symbol": "ADAUSD",
"time": 1635740268004,
"index": "1.92957370",
"bidBuffer": "0.10000000",
"askBuffer": "0.10000000",
"bidRate": "1.73661633",
"askRate": "2.12253107",
"autoExchangeBidBuffer": "0.05000000",
"autoExchangeAskBuffer": "0.05000000",
"autoExchangeBidRate": "1.83309501",
"autoExchangeAskRate": "2.02605238"
}
]
GET /fapi/v1/assetIndex
多资产模式资产汇率指数
权重: 带symbol为1, 不带为10
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 资产对 |
查询指数价格成分
响应:
{
"symbol": "BTCUSDT",
"time": 1697421272043,
"constituents": [
{
"exchange": "binance",
"symbol": "BTCUSDT"
},
{
"exchange": "okex",
"symbol": "BTC-USDT"
},
{
"exchange": "huobi",
"symbol": "btcusdt"
},
{
"exchange": "coinbase",
"symbol": "BTC-USDT"
}
]
}
GET /fapi/v1/constituents
查询指数价格成分
权重: 2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
Websocket 行情推送
本篇所列出的所有wss接口,需用以下连接方式:
- Base Url:wss://fstream.binance.com
- 订阅单一stream格式为 /ws/<streamName>
- 组合streams的URL格式为 /stream?streams=<streamName1>/<streamName2>/<streamName3>
- 连接样例:
wss://fstream.binance.com/ws/bnbusdt@aggTrade
wss://fstream.binance.com/stream?streams=bnbusdt@aggTrade/btcusdt@markPrice
订阅组合streams时,事件payload会以这样的格式封装 {"stream":"<streamName>","data":<rawPayload>}
stream名称中所有交易对均为小写。
每个链接有效期不超过24小时,请妥善处理断线重连。
Websocket 服务器每3分钟发送Ping消息。
- 如果Websocket服务器在10分钟之内没有收到Pong消息应答,连接会被断开。
- 当客户收到ping消息,必需尽快回复pong消息,同时payload需要和ping消息一致。
- 未经请求的pong消息是被允许的,但是不会保证连接不断开。对于这些pong消息,建议payload为空
Websocket服务器每秒最多接受10个订阅消息。
如果用户发送的消息超过限制,连接会被断开连接。反复被断开连接的IP有可能被服务器屏蔽。
单个连接不建议订阅超过 200 个Streams。
实时订阅/取消数据流
- 以下数据可以通过websocket发送以实现订阅或取消订阅数据流。示例如下。
- 响应内容中的
id
是无符号整数,作为往来信息的唯一标识。
订阅一个信息流
响应
{
"result": null,
"id": 1
}
请求
{
"method": "SUBSCRIBE",
"params":
[
"btcusdt@aggTrade",
"btcusdt@depth"
],
"id": 1
}
取消订阅一个信息流
响应
{
"result": null,
"id": 312
}
- 请求
{
"method": "UNSUBSCRIBE",
"params":
[
"btcusdt@depth"
],
"id": 312
}
已订阅信息流
响应
{
"result": [
"btcusdt@aggTrade"
],
"id": 3
}
- 请求
{
"method": "LIST_SUBSCRIPTIONS",
"id": 3
}
设定属性
当前,唯一可以设置的属性是设置是否启用combined
("组合")信息流。
当使用/ws/
("原始信息流")进行连接时,combined属性设置为false
,而使用 /stream/
进行连接时则将属性设置为true
。
响应
{
"result": null
"id": 5
}
- 请求
{
"method": "SET_PROPERTY",
"params":
[
"combined",
true
],
"id": 5
}
检索属性
响应
{
"result": true, // Indicates that combined is set to true.
"id": 2
}
- 请求
{
"method": "GET_PROPERTY",
"params":
[
"combined"
],
"id": 2
}
错误信息
错误信息 | 描述 |
---|---|
{"code": 0, "msg": "Unknown property"} | SET_PROPERTY 或 GET_PROPERTY 中应用的参数无效 |
{"code": 1, "msg": "Invalid value type: expected Boolean"} | 仅接受true 或false |
{"code": 2, "msg": "Invalid request: property name must be a string"} | 提供的属性名无效 |
{"code": 2, "msg": "Invalid request: request ID must be an unsigned integer"} | 参数id 未提供或id 值是无效类型 |
{"code": 2, "msg": "Invalid request: unknown variant %s, expected one of SUBSCRIBE , UNSUBSCRIBE , LIST_SUBSCRIPTIONS , SET_PROPERTY , GET_PROPERTY at line 1 column 28"} |
错字提醒,或提供的值不是预期类型 |
{"code": 2, "msg": "Invalid request: too many parameters"} | 数据中提供了不必要参数 |
{"code": 2, "msg": "Invalid request: property name must be a string"} | 未提供属性名 |
{"code": 2, "msg": "Invalid request: missing field method at line 1 column 73"} |
数据未提供method |
{"code":3,"msg":"Invalid JSON: expected value at line %s column %s"} | JSON 语法有误. |
最新合约价格
aggTrade中的价格'p'或ticker/miniTicker中的价格'c'均可以作为最新成交价。
归集交易
Payload:
{
"e": "aggTrade", // 事件类型
"E": 123456789, // 事件时间
"s": "BNBUSDT", // 交易对
"a": 5933014, // 归集成交 ID
"p": "0.001", // 成交价格
"q": "100", // 成交量
"f": 100, // 被归集的首个交易ID
"l": 105, // 被归集的末次交易ID
"T": 123456785, // 成交时间
"m": true // 买方是否是做市方。如true,则此次成交是一个主动卖出单,否则是一个主动买入单。
}
同一价格、同一方向、同一时间(100ms计算)的trade会被聚合为一条.
Stream Name:
<symbol>@aggTrade
Update Speed: 100ms
最新标记价格
Payload:
{
"e": "markPriceUpdate", // 事件类型
"E": 1562305380000, // 事件时间
"s": "BTCUSDT", // 交易对
"p": "11794.15000000", // 标记价格
"i": "11784.62659091", // 现货指数价格
"P": "11784.25641265", // 预估结算价,仅在结算前最后一小时有参考价值
"r": "0.00038167", // 资金费率
"T": 1562306400000 // 下次资金时间
}
Stream Name:
<symbol>@markPrice
或 <symbol>@markPrice@1s
Update Speed: 3000ms 或 1000ms
全市场最新标记价格
Payload:
[
{
"e": "markPriceUpdate", // 事件类型
"E": 1562305380000, // 事件时间
"s": "BTCUSDT", // 交易对
"p": "11185.87786614", // 标记价格
"i": "11784.62659091" // 现货指数价格
"P": "11784.25641265", // 预估结算价,仅在结算前最后一小时有参考价值
"r": "0.00030000", // 资金费率
"T": 1562306400000 // 下个资金时间
}
]
Stream Name:
!markPrice@arr
或 !markPrice@arr@1s
Update Speed: 3000ms 或 1000ms
K线
Payload:
{
"e": "kline", // 事件类型
"E": 123456789, // 事件时间
"s": "BNBUSDT", // 交易对
"k": {
"t": 123400000, // 这根K线的起始时间
"T": 123460000, // 这根K线的结束时间
"s": "BNBUSDT", // 交易对
"i": "1m", // K线间隔
"f": 100, // 这根K线期间第一笔成交ID
"L": 200, // 这根K线期间末一笔成交ID
"o": "0.0010", // 这根K线期间第一笔成交价
"c": "0.0020", // 这根K线期间末一笔成交价
"h": "0.0025", // 这根K线期间最高成交价
"l": "0.0015", // 这根K线期间最低成交价
"v": "1000", // 这根K线期间成交量
"n": 100, // 这根K线期间成交笔数
"x": false, // 这根K线是否完结(是否已经开始下一根K线)
"q": "1.0000", // 这根K线期间成交额
"V": "500", // 主动买入的成交量
"Q": "0.500", // 主动买入的成交额
"B": "123456" // 忽略此参数
}
}
K线stream逐秒推送所请求的K线种类(最新一根K线)的更新。推送间隔250毫秒(如有刷新)
订阅Kline需要提供间隔参数,最短为分钟线,最长为月线。支持以下间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
Stream Name:
<symbol>@kline_<interval>
Update Speed: 250ms
连续合约K线
Payload:
{
"e":"continuous_kline", // 事件类型
"E":1607443058651, // 事件时间
"ps":"BTCUSDT", // 标的交易对
"ct":"PERPETUAL", // 合约类型
"k":{
"t":1607443020000, // 这根K线的起始时间
"T":1607443079999, // 这根K线的结束时间
"i":"1m", // K线间隔
"f":116467658886, // 这根K线期间第一笔更新ID
"L":116468012423, // 这根K线期间末一笔更新ID
"o":"18787.00", // 这根K线期间第一笔成交价
"c":"18804.04", // 这根K线期间末一笔成交价
"h":"18804.04", // 这根K线期间最高成交价
"l":"18786.54", // 这根K线期间最低成交价
"v":"197.664", // 这根K线期间成交量
"n":543, // 这根K线期间成交笔数
"x":false, // 这根K线是否完结(是否已经开始下一根K线)
"q":"3715253.19494", // 这根K线期间成交额
"V":"184.769", // 主动买入的成交量
"Q":"3472925.84746", // 主动买入的成交额
"B":"0" // 忽略此参数
}
}
K线stream逐秒推送所请求的K线种类(最新一根K线)的更新。
合约类型:
- perpetual 永续合约
- current_quarter 当季交割合约
- next_quarter 次季交割合约
订阅Kline需要提供间隔参数,最短为分钟线,最长为月线。支持以下间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
Stream Name:
<pair>_<contractType>@continuousKline_<interval>
Update Speed: 250ms
按Symbol的精简Ticker
Payload:
{
"e": "24hrMiniTicker", // 事件类型
"E": 123456789, // 事件时间(毫秒)
"s": "BNBUSDT", // 交易对
"c": "0.0025", // 最新成交价格
"o": "0.0010", // 24小时前开始第一笔成交价格
"h": "0.0025", // 24小时内最高成交价
"l": "0.0010", // 24小时内最低成交价
"v": "10000", // 成交量
"q": "18" // 成交额
}
按Symbol刷新的24小时精简ticker信息.
Stream Name:
<symbol>@miniTicker
Update Speed: 500ms
全市场的精简Ticker
Payload:
[
{
"e": "24hrMiniTicker", // 事件类型
"E": 123456789, // 事件时间(毫秒)
"s": "BNBUSDT", // 交易对
"c": "0.0025", // 最新成交价格
"o": "0.0010", // 24小时前开始第一笔成交价格
"h": "0.0025", // 24小时内最高成交价
"l": "0.0010", // 24小时内最低成交价
"v": "10000", // 成交量
"q": "18" // 成交额
}
]
所有symbol24小时精简ticker信息.需要注意的是,只有发生变化的ticker更新才会被推送。
Stream Name:
!miniTicker@arr
Update Speed: 1000ms
按Symbol的完整Ticker
Payload:
{
"e": "24hrTicker", // 事件类型
"E": 123456789, // 事件时间
"s": "BNBUSDT", // 交易对
"p": "0.0015", // 24小时价格变化
"P": "250.00", // 24小时价格变化(百分比)
"w": "0.0018", // 平均价格
"c": "0.0025", // 最新成交价格
"Q": "10", // 最新成交价格上的成交量
"o": "0.0010", // 24小时内第一比成交的价格
"h": "0.0025", // 24小时内最高成交价
"l": "0.0010", // 24小时内最低成交价
"v": "10000", // 24小时内成交量
"q": "18", // 24小时内成交额
"O": 0, // 统计开始时间
"C": 86400000, // 统计关闭时间
"F": 0, // 24小时内第一笔成交交易ID
"L": 18150, // 24小时内最后一笔成交交易ID
"n": 18151 // 24小时内成交数
}
按Symbol刷新的24小时完整ticker信息
Stream Name:
<symbol>@ticker
Update Speed: 2000ms
全市场的完整Ticker
Payload:
[
{
"e": "24hrTicker", // 事件类型
"E": 123456789, // 事件时间
"s": "BNBUSDT", // 交易对
"p": "0.0015", // 24小时价格变化
"P": "250.00", // 24小时价格变化(百分比)
"w": "0.0018", // 平均价格
"c": "0.0025", // 最新成交价格
"Q": "10", // 最新成交价格上的成交量
"o": "0.0010", // 24小时内第一比成交的价格
"h": "0.0025", // 24小时内最高成交价
"l": "0.0010", // 24小时内最低成交价
"v": "10000", // 24小时内成交量
"q": "18", // 24小时内成交额
"O": 0, // 统计开始时间
"C": 86400000, // 统计结束时间
"F": 0, // 24小时内第一笔成交交易ID
"L": 18150, // 24小时内最后一笔成交交易ID
"n": 18151 // 24小时内成交数
}
]
所有symbol 24小时完整ticker信息.需要注意的是,只有发生变化的ticker更新才会被推送。
Stream Name:
!ticker@arr
Update Speed: 1000ms
按Symbol的最优挂单信息
Payload:
{
"e":"bookTicker", // 事件类型
"u":400900217, // 更新ID
"E": 1568014460893, // 事件推送时间
"T": 1568014460891, // 撮合时间
"s":"BNBUSDT", // 交易对
"b":"25.35190000", // 买单最优挂单价格
"B":"31.21000000", // 买单最优挂单数量
"a":"25.36520000", // 卖单最优挂单价格
"A":"40.66000000" // 卖单最优挂单数量
}
实时推送指定交易对最优挂单信息
Stream Name: <symbol>@bookTicker
Update Speed: 实时
全市场最优挂单信息
Payload:
{
// Same as <symbol>@bookTicker payload
}
所有交易对交易对最优挂单信息
Stream Name: !bookTicker
Update Speed: 实时, 将于2023-12-20改为5s
强平订单
Payload:
{
"e":"forceOrder", // 事件类型
"E":1568014460893, // 事件时间
"o":{
"s":"BTCUSDT", // 交易对
"S":"SELL", // 订单方向
"o":"LIMIT", // 订单类型
"f":"IOC", // 有效方式
"q":"0.014", // 订单数量
"p":"9910", // 订单价格
"ap":"9910", // 平均价格
"X":"FILLED", // 订单状态
"l":"0.014", // 订单最近成交量
"z":"0.014", // 订单累计成交量
"T":1568014460893, // 交易时间
}
}
推送特定symbol
的强平订单快照信息。
1000ms内至多仅推送一条最近的强平订单作为快照
Stream Name: <symbol>@forceOrder
Update Speed: 1000ms
全市场强平订单
Payload:
{
"e":"forceOrder", // 事件类型
"E":1568014460893, // 事件时间
"o":{
"s":"BTCUSDT", // 交易对
"S":"SELL", // 订单方向
"o":"LIMIT", // 订单类型
"f":"IOC", // 有效方式
"q":"0.014", // 订单数量
"p":"9910", // 订单价格
"ap":"9910", // 平均价格
"X":"FILLED", // 订单状态
"l":"0.014", // 订单最近成交量
"z":"0.014", // 订单累计成交量
"T":1568014460893, // 交易时间
}
}
推送全市场强平订单快照信息
每个symbol,1000ms内至多仅推送一条最近的强平订单作为快照
Stream Name: !forceOrder@arr
Update Speed: 实时
有限档深度信息
Payload:
{
"e": "depthUpdate", // 事件类型
"E": 1571889248277, // 事件时间
"T": 1571889248276, // 交易时间
"s": "BTCUSDT",
"U": 390497796,
"u": 390497878,
"pu": 390497794,
"b": [ // 买方
[
"7403.89", // 价格
"0.002" // 数量
],
[
"7403.90",
"3.906"
],
[
"7404.00",
"1.428"
],
[
"7404.85",
"5.239"
],
[
"7405.43",
"2.562"
]
],
"a": [ // 卖方
[
"7405.96", // 价格
"3.340" // 数量
],
[
"7406.63",
"4.525"
],
[
"7407.08",
"2.475"
],
[
"7407.15",
"4.800"
],
[
"7407.20",
"0.175"
]
]
}
推送有限档深度信息。levels表示几档买卖单信息, 可选 5/10/20档
Stream Names: <symbol>@depth<levels>
或 <symbol>@depth<levels>@500ms
或 <symbol>@depth<levels>@100ms
.
Update Speed: 250ms 或 500ms 或 100ms
增量深度信息
Payload:
{
"e": "depthUpdate", // 事件类型
"E": 123456789, // 事件时间
"T": 123456788, // 撮合时间
"s": "BNBUSDT", // 交易对
"U": 157, // 从上次推送至今新增的第一个 update Id
"u": 160, // 从上次推送至今新增的最后一个 update Id
"pu": 149, // 上次推送的最后一个update Id(即上条消息的‘u’)
"b": [ // 变动的买单深度
[
"0.0024", // 价格
"10" // 数量
]
],
"a": [ // 变动的卖单深度
[
"0.0026", // 价格
"100" // 数量
]
]
}
orderbook的变化部分,推送间隔250毫秒,500毫秒,100毫秒(如有刷新)
Stream Names:
<symbol>@depth
OR <symbol>@depth@500ms
OR <symbol>@depth@100ms
Update Speed: 250ms 或 500ms 或 100ms
如何正确在本地维护一个orderbook副本
- 订阅 wss://fstream.binance.com/stream?streams=btcusdt@depth
- 开始缓存收到的更新。同一个价位,后收到的更新覆盖前面的。
- 访问Rest接口 https://fapi.binance.com/fapi/v1/depth?symbol=BTCUSDT&limit=1000获得一个1000档的深度快照
- 将目前缓存到的信息中
u
< 步骤3中获取到的快照中的lastUpdateId
的部分丢弃(丢弃更早的信息,已经过期)。 - 将深度快照中的内容更新到本地orderbook副本中,并从websocket接收到的第一个
U
<=lastUpdateId
且u
>=lastUpdateId
的event开始继续更新本地副本。 - 每一个新event的
pu
应该等于上一个event的u
,否则可能出现了丢包,请从step3重新进行初始化。 - 每一个event中的挂单量代表这个价格目前的挂单量绝对值,而不是相对变化。
- 如果某个价格对应的挂单量为0,表示该价位的挂单已经撤单或者被吃,应该移除这个价位。
综合指数交易对信息流
Payload:
{
"e":"compositeIndex", // 事件类型
"E":1602310596000, // 事件事件
"s":"DEFIUSDT", // 交易对
"p":"554.41604065", // 价格
"C":"baseAsset",
"c":[ // 成分信息
{
"b":"BAL", // 基础资产
"q":"USDT", // 报价资产
"w":"1.04884844", // 权重(数量)
"W":"0.01457800", // 权重(比例)
"i":"24.33521021" // 指数价格
},
{
"b":"BAND",
"q":"USDT",
"w":"3.53782729",
"W":"0.03935200",
"i":"7.26420084"
}
]
}
获取交易对为综合指数的基础成分信息。 推送间隔1000毫秒(如有刷新)
Stream Name: <symbol>@compositeIndex
Update Speed: 1000ms
交易对信息信息流
Payload:
{
"e":"contractInfo", // 事件类型
"E":1669356423908, // 事件时间
"s":"IOTAUSDT", // 交易对
"ps":"IOTAUSDT", // 交易对标的
"ct":"PERPETUAL", // 合约类型
"dt":4133404800000, // 结算时间
"ot":1569398400000, // 上架时间
"cs":"TRADING", // 交易对状态
"bks":[
{
"bs":1, // 层级
"bnf":0, // 该层对应的名义价值下限
"bnc":5000, // 该层对应的名义价值上限
"mmr":0.01, // 该层对应的维持保证金率
"cf":0, // 速算数
"mi":21, // 该层杠杆下界
"ma":50 // 该层杠杆上界
},
{
"bs":2,
"bnf":5000,
"bnc":25000,
"mmr":0.025,
"cf":75,
"mi":11,
"ma":20
}
]
}
Symbol状态更改时推送(上架/下架/bracket调整); bks
仅在bracket调整时推出。
Stream Name: !contractInfo
Update Speed: 实时
多资产模式资产汇率指数
Payload:
[
{
"e":"assetIndexUpdate",
"E":1686749230000,
"s":"ADAUSD", // asset index symbol
"i":"0.27462452", // 指数价格
"b":"0.10000000", // bid估值折扣
"a":"0.10000000", // ask估值折扣
"B":"0.24716207", // bid价格
"A":"0.30208698", // ask价格
"q":"0.05000000", // 自动兑换bid估值折扣
"g":"0.05000000", // 自动兑换ask估值折扣
"Q":"0.26089330", // 自动兑换bid价格
"G":"0.28835575" // 自动兑换ask价格
},
{
"e":"assetIndexUpdate",
"E":1686749230000,
"s":"USDTUSD",
"i":"0.99987691",
"b":"0.00010000",
"a":"0.00010000",
"B":"0.99977692",
"A":"0.99997689",
"q":"0.00010000",
"g":"0.00010000",
"Q":"0.99977692",
"G":"0.99997689"
}
多资产模式资产价格指数
Stream Name: !assetIndex@arr
OR <assetSymbol>@assetIndex
Update Speed: 1s
账户和交易接口
划转
执行现货账户与合约账户之间的划转, 详情请见这里.
获取划转历史
获取现货账户与合约账户之间的资金划转历史记录,详情请见这里.
更改持仓模式(TRADE)
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v1/positionSide/dual
变换用户在 所有symbol 合约上的持仓模式:双向持仓或单向持仓。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
dualSidePosition | STRING | YES | "true": 双向持仓模式;"false": 单向持仓模式 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
查询持仓模式(USER_DATA)
响应:
{
"dualSidePosition": true // "true": 双向持仓模式;"false": 单向持仓模式
}
GET /fapi/v1/positionSide/dual
查询用户目前在 所有symbol 合约上的持仓模式:双向持仓或单向持仓。
权重: 30
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
更改联合保证金模式(TRADE)
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v1/multiAssetsMargin
变换用户在 所有symbol 合约上的联合保证金模式:开启或关闭联合保证金模式。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
multiAssetsMargin | STRING | YES | "true": 联合保证金模式开启;"false": 联合保证金模式关闭 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
查询联合保证金模式(USER_DATA)
响应:
{
"multiAssetsMargin": true // "true": 联合保证金模式开启;"false": 联合保证金模式关闭
}
GET /fapi/v1/multiAssetsMargin
查询用户目前在 所有symbol 合约上的联合保证金模式。
权重: 30
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
合约交易 BNB 抵扣开关 (TRADE)
Response:
{
"code": 200,
"msg": "success"
}
POST /fapi/v1/feeBurn (HMAC SHA256)
改变用户 所有 symbol 合约交易 BNB 抵扣开关 (手续费抵扣开或关)
Weight: 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
feeBurn | STRING | YES | "true": 手续费抵扣开; "false": 手续费抵扣关 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
获取 BNB 抵扣开关状态 (USER_DATA)
Response:
{
"feeBurn": true // "true": 手续费抵扣开; "false": 手续费抵扣关
}
GET /fapi/v1/feeBurn (HMAC SHA256)
查询用户 所有 symbol 合约交易 BNB 抵扣开关状态 (手续费抵扣开或关)
Weight: 30
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
下单 (TRADE)
响应:
{
"clientOrderId": "testOrder", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 22542179, // 系统订单号
"avgPrice": "0.00000", // 平均成交价
"origQty": "10", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "0", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTD", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1566818724722, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 1693207680000 //订单TIF为GTD时的自动取消时间
}
POST /fapi/v1/order
权重: 0
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
side | ENUM | YES | 买卖方向 SELL , BUY |
positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH ;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
type | ENUM | YES | 订单类型 LIMIT , MARKET , STOP , TAKE_PROFIT , STOP_MARKET , TAKE_PROFIT_MARKET , TRAILING_STOP_MARKET |
reduceOnly | STRING | NO | true , false ; 非双开模式下默认false ;双开模式下不接受此参数; 使用closePosition 不支持此参数。 |
quantity | DECIMAL | NO | 下单数量,使用closePosition 不支持此参数。 |
price | DECIMAL | NO | 委托价格 |
newClientOrderId | STRING | NO | 用户自定义的订单号,不可以重复出现在挂单中。如空缺系统会自动赋值。必须满足正则规则 ^[\.A-Z\:/a-z0-9_-]{1,36}$ |
stopPrice | DECIMAL | NO | 触发价, 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
closePosition | STRING | NO | true , false ;触发后全部平仓,仅支持STOP_MARKET 和TAKE_PROFIT_MARKET ;不与quantity 合用;自带只平仓效果,不与reduceOnly 合用 |
activationPrice | DECIMAL | NO | 追踪止损激活价格,仅TRAILING_STOP_MARKET 需要此参数, 默认为下单当前市场价格(支持不同workingType ) |
callbackRate | DECIMAL | NO | 追踪止损回调比例,可取值范围[0.1, 10],其中 1代表1% ,仅TRAILING_STOP_MARKET 需要此参数 |
timeInForce | ENUM | NO | 有效方法 |
workingType | ENUM | NO | stopPrice 触发类型: MARK_PRICE (标记价格), CONTRACT_PRICE (合约最新价). 默认 CONTRACT_PRICE |
priceProtect | STRING | NO | 条件单触发保护:"TRUE","FALSE", 默认"FALSE". 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
newOrderRespType | ENUM | NO | "ACK", "RESULT", 默认 "ACK" |
symbol | STRING | YES | 交易对 |
priceMatch | ENUM | NO | OPPONENT / OPPONENT_5 / OPPONENT_10 / OPPONENT_20 /QUEUE / QUEUE_5 / QUEUE_10 / QUEUE_20 ;不能与price同时传 |
selfTradePreventionMode | ENUM | NO | NONE / EXPIRE_TAKER / EXPIRE_MAKER / EXPIRE_BOTH ; 默认NONE |
goodTillDate | LONG | NO | TIF为GTD时订单的自动取消时间, 当timeInforce 为GTD 时必传;传入的时间戳仅保留秒级精度,毫秒级部分会被自动忽略,时间戳需大于当前时间+600s且小于253402300799000 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
根据 order type
的不同,某些参数强制要求,具体如下:
Type | 强制要求的参数 |
---|---|
LIMIT |
timeInForce , quantity , price |
MARKET |
quantity |
STOP , TAKE_PROFIT |
quantity , price , stopPrice |
STOP_MARKET , TAKE_PROFIT_MARKET |
stopPrice |
TRAILING_STOP_MARKET |
quantity ,callbackRate |
条件单的触发必须:
- 如果订单参数
priceProtect
为true:- 达到触发价时,
MARK_PRICE
(标记价格)与CONTRACT_PRICE
(合约最新价)之间的价差不能超过改symbol触发保护阈值 - 触发保护阈值请参考接口
GET /fapi/v1/exchangeInfo
返回内容相应symbol中"triggerProtect"字段
- 达到触发价时,
STOP
,STOP_MARKET
止损单:- 买入: 最新合约价格/标记价格高于等于触发价
stopPrice
- 卖出: 最新合约价格/标记价格低于等于触发价
stopPrice
- 买入: 最新合约价格/标记价格高于等于触发价
TAKE_PROFIT
,TAKE_PROFIT_MARKET
止盈单:- 买入: 最新合约价格/标记价格低于等于触发价
stopPrice
- 卖出: 最新合约价格/标记价格高于等于触发价
stopPrice
- 买入: 最新合约价格/标记价格低于等于触发价
TRAILING_STOP_MARKET
跟踪止损单:- 买入: 当合约价格/标记价格区间最低价格低于激活价格
activationPrice
,且最新合约价格/标记价高于等于最低价设定回调幅度。 - 卖出: 当合约价格/标记价格区间最高价格高于激活价格
activationPrice
,且最新合约价格/标记价低于等于最高价设定回调幅度。
- 买入: 当合约价格/标记价格区间最低价格低于激活价格
- 如果订单参数
TRAILING_STOP_MARKET
跟踪止损单如果遇到报错{"code": -2021, "msg": "Order would immediately trigger."}
表示订单不满足以下条件:- 买入: 指定的
activationPrice
必须小于 latest price - 卖出: 指定的
activationPrice
必须大于 latest price
- 买入: 指定的
newOrderRespType
如果传RESULT
:MARKET
订单将直接返回成交结果;- 配合使用特殊
timeInForce
的LIMIT
订单将直接返回成交或过期拒绝结果。
STOP_MARKET
,TAKE_PROFIT_MARKET
配合closePosition
=true
:- 条件单触发依照上述条件单触发逻辑
- 条件触发后,平掉当时持有所有多头仓位(若为卖单)或当时持有所有空头仓位(若为买单)
- 不支持
quantity
参数 - 自带只平仓属性,不支持
reduceOnly
参数 - 双开模式下,
LONG
方向上不支持BUY
;SHORT
方向上不支持SELL
selfTradePreventionMode
仅在timeInForce
为IOC
或GTC
或GTD
时生效.极端行情时,
timeInForce
为GTD
的订单自动取消可能有一定延迟
测试下单接口 (TRADE)
响应:
字段与下单接口一致,但均为无效值
POST /fapi/v1/order/test
用于测试订单请求,但不会提交到撮合引擎
参数:
参考 POST /fapi/v1/order
修改订单 (TRADE)
响应:
{
"orderId": 20072994037,
"symbol": "BTCUSDT",
"pair": "BTCUSDT",
"status": "NEW",
"clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
"price": "30005",
"avgPrice": "0.0",
"origQty": "1",
"executedQty": "0",
"cumQty": "0",
"cumBase": "0",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "BUY",
"positionSide": "LONG",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 0 //订单TIF为GTD时的自动取消时间
"updateTime": 1629182711600
}
PUT /fapi/v1/order
修改订单功能,当前只支持限价(LIMIT)订单修改,修改后会在撮合队列里重新排序
权重: 10s order rate limit(X-MBX-ORDER-COUNT-10S)为1 1min order rate limit(X-MBX-ORDER-COUNT-1M)为1 IP rate limit(x-mbx-used-weight-1m)为1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
symbol | STRING | YES | 交易对 |
side | ENUM | YES | 买卖方向 SELL , BUY ; side 需要和原订单相同 |
quantity | DECIMAL | YES | 下单数量,使用closePosition 不支持此参数。 |
price | DECIMAL | YES | 委托价格 |
priceMatch | ENUM | NO | OPPONENT / OPPONENT_5 / OPPONENT_10 / OPPONENT_20 /QUEUE / QUEUE_5 / QUEUE_10 / QUEUE_20 ;不能与price同时传 |
timestamp | LONG | YES |
orderId
与origClientOrderId
必须至少发送一个,同时发送则以 order id为准quantity
与price
均必须发送,这点和 dapi 修改订单不同- 当新订单的
quantity
或price
不满足PRICE_FILTER / PERCENT_FILTER / LOT_SIZE限制,修改会被拒绝,原订单依旧被保留 - 订单会在下列情况下被取消:
- 原订单被部分执行且新订单
quantity
<=executedQty
- 原订单是
GTX
,新订单的价格会导致订单立刻执行
- 原订单被部分执行且新订单
- 同一订单修改次数最多10000次
- 改单会保留该单原有的
selfTradePreventionMode
批量下单 (TRADE)
响应:
[
{
"clientOrderId": "testOrder", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 22542179, // 系统订单号
"avgPrice": "0.00000", // 平均成交价
"origQty": "10", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "0", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1566818724722, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 0 //订单TIF为GTD时的自动取消时间
},
{
"code": -2022,
"msg": "ReduceOnly Order is rejected."
}
]
POST /fapi/v1/batchOrders
权重: 10s order rate limit(X-MBX-ORDER-COUNT-10S)为5 1min order rate limit(X-MBX-ORDER-COUNT-1M)为1 IP rate limit(x-mbx-used-weight-1m)为5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
batchOrders | list<JSON> | YES | 订单列表,最多支持5个订单 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
其中batchOrders
应以list of JSON格式填写订单参数
- 例子: /fapi/v1/batchOrders?batchOrders=[{"type":"LIMIT","timeInForce":"GTC",
"symbol":"BTCUSDT","side":"BUY","price":"10001","quantity":"0.001"}]
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
side | ENUM | YES | 买卖方向 SELL , BUY |
positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH ;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
type | ENUM | YES | 订单类型 LIMIT , MARKET , STOP , TAKE_PROFIT , STOP_MARKET , TAKE_PROFIT_MARKET , TRAILING_STOP_MARKET |
reduceOnly | STRING | NO | true , false ; 非双开模式下默认false ;双开模式下不接受此参数。 |
quantity | DECIMAL | YES | 下单数量 |
price | DECIMAL | NO | 委托价格 |
newClientOrderId | STRING | NO | 用户自定义的订单号,不可以重复出现在挂单中。如空缺系统会自动赋值. 必须满足正则规则 ^[\.A-Z\:/a-z0-9_-]{1,36}$ |
stopPrice | DECIMAL | NO | 触发价, 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
activationPrice | DECIMAL | NO | 追踪止损激活价格,仅TRAILING_STOP_MARKET 需要此参数, 默认为下单当前市场价格(支持不同workingType ) |
callbackRate | DECIMAL | NO | 追踪止损回调比例,可取值范围[0.1, 4],其中 1代表1% ,仅TRAILING_STOP_MARKET 需要此参数 |
timeInForce | ENUM | NO | 有效方法 |
workingType | ENUM | NO | stopPrice 触发类型: MARK_PRICE (标记价格), CONTRACT_PRICE (合约最新价). 默认 CONTRACT_PRICE |
priceProtect | STRING | NO | 条件单触发保护:"TRUE","FALSE", 默认"FALSE". 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
newOrderRespType | ENUM | NO | "ACK", "RESULT", 默认 "ACK" |
priceMatch | ENUM | NO | OPPONENT / OPPONENT_5 / OPPONENT_10 / OPPONENT_20 /QUEUE / QUEUE_5 / QUEUE_10 / QUEUE_20 ;不能与price同时传 |
selfTradePreventionMode | ENUM | NO | NONE / EXPIRE_TAKER / EXPIRE_MAKER / EXPIRE_BOTH ; 默认NONE |
goodTillDate | LONG | NO | TIF为GTD时订单的自动取消时间, 当timeInforce 为GTD 时必传;传入的时间戳仅保留秒级精度,毫秒级部分会被自动忽略,时间戳需大于当前时间+600s且小于253402300799000 |
- 具体订单条件规则,与普通下单一致
- 批量下单采取并发处理,不保证订单撮合顺序
- 批量下单的返回内容顺序,与订单列表顺序一致
批量修改订单 (TRADE)
响应:
[
{
"orderId": 20072994037,
"symbol": "BTCUSDT",
"pair": "BTCUSDT",
"status": "NEW",
"clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
"price": "30005",
"avgPrice": "0.0",
"origQty": "1",
"executedQty": "0",
"cumQty": "0",
"cumBase": "0",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "BUY",
"positionSide": "LONG",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 0 //订单TIF为GTD时的自动取消时间
"updateTime": 1629182711600
},
{
"code": -2022,
"msg": "ReduceOnly Order is rejected."
}
]
PUT /fapi/v1/batchOrders
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
batchOrders | list<JSON> | YES | 订单列表,最多支持5个订单 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
其中batchOrders
应以list of JSON格式填写订单参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
orderId | LONG | NO | 系统订单号,orderId 与 origClientOrderId 至少要传一个 |
origClientOrderId | STRING | NO | 用户自定义的订单号,orderId 与 origClientOrderId 至少要传一个 |
symbol | STRING | YES | 交易对 |
side | ENUM | YES | 买卖方向 SELL , BUY |
quantity | DECIMAL | YES | 下单数量,使用closePosition 不支持此参数。 |
price | DECIMAL | YES | 委托价格 |
stopPrice | DECIMAL | NO | 触发价, 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
priceMatch | ENUM | NO | OPPONENT / OPPONENT_5 / OPPONENT_10 / OPPONENT_20 /QUEUE / QUEUE_5 / QUEUE_10 / QUEUE_20 ;不能与price同时传 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 具体订单条件规则,与普通修改订单一致
- 批量修改订单采取并发处理,不保证订单撮合顺序
- 批量修改订单的返回内容顺序,与订单列表顺序一致
- 同一订单修改次数最多10000次
- 改单会保留该单原有的
selfTradePreventionMode
查询订单修改历史 (USER_DATA)
响应:
[
{
"amendmentId": 5363, // 修改记录号
"symbol": "BTCUSDT",
"pair": "BTCUSDT",
"orderId": 20072994037,
"clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
"time": 1629184560899, // 修改时间
"amendment": {
"price": {
"before": "30004",
"after": "30003.2"
},
"origQty": {
"before": "1",
"after": "1"
},
"count": 3 // 修改记数,代表该修改记录是这笔订单第几次修改
},
"priceMatch":"QUEUE_20"
},
{
"amendmentId": 5361,
"symbol": "BTCUSDT",
"pair": "BTCUSDT",
"orderId": 20072994037,
"clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
"time": 1629184533946,
"amendment": {
"price": {
"before": "30005",
"after": "30004"
},
"origQty": {
"before": "1",
"after": "1"
},
"count": 2
},
"priceMatch":"QUEUE_20"
},
{
"amendmentId": 5325,
"symbol": "BTCUSDT",
"pair": "BTCUSDT",
"orderId": 20072994037,
"clientOrderId": "LJ9R4QZDihCaS8UAOOLpgW",
"time": 1629182711787,
"amendment": {
"price": {
"before": "30002",
"after": "30005"
},
"origQty": {
"before": "1",
"after": "1"
},
"count": 1
},
"priceMatch":"QUEUE_20"
}
]
GET /fapi/v1/orderAmendment
查询订单修改历史
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 返回的结果集数量 默认值:1000 最大值:1000 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意:
- 至少需要发送
orderId
与origClientOrderId
中的一个,同时发送则以orderId
为准
查询订单 (USER_DATA)
响应:
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1573346959, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 0 //订单TIF为GTD时的自动取消时间
}
GET /fapi/v1/order
查询订单状态
- 请注意,如果订单满足如下条件,不会被查询到:
- 订单的最终状态为
CANCELED
或者EXPIRED
并且 订单没有任何的成交记录 并且 订单生成时间 + 3天 < 当前时间 - 订单创建时间 + 90天 < 当前时间
- 订单的最终状态为
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意:
- 至少需要发送
orderId
与origClientOrderId
中的一个 orderId
在symbol
维度是自增的
撤销订单 (TRADE)
响应:
{
"clientOrderId": "myOrder1", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 283194212, // 系统订单号
"origQty": "11", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "CANCELED", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1571110484038, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 0 //订单TIF为GTD时的自动取消时间
}
DELETE /fapi/v1/order
权重: 1
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderId
与 origClientOrderId
必须至少发送一个
撤销全部订单 (TRADE)
响应:
{
"code": 200,
"msg": "The operation of cancel all open order is done."
}
DELETE /fapi/v1/allOpenOrders
权重: 1
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
批量撤销订单 (TRADE)
响应:
[
{
"clientOrderId": "myOrder1", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 283194212, // 系统订单号
"origQty": "11", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "CANCELED", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1571110484038, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 0 //订单TIF为GTD时的自动取消时间
},
{
"code": -2011,
"msg": "Unknown order sent."
}
]
DELETE /fapi/v1/batchOrders
权重: 1
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderIdList | LIST<LONG> | NO | 系统订单号, 最多支持10个订单 比如 [1234567,2345678] |
origClientOrderIdList | LIST<STRING> | NO | 用户自定义的订单号, 最多支持10个订单 比如 ["my_id_1","my_id_2"] 需要encode双引号。逗号后面没有空格。 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderIdList
与 origClientOrderIdList
必须至少发送一个,不可同时发送
倒计时撤销所有订单 (TRADE)
响应:
{
"symbol": "BTCUSDT",
"countdownTime": "100000"
}
POST /fapi/v1/countdownCancelAll
权重: 10
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
countdownTime | LONG | YES | 倒计时。 1000 表示 1 秒; 0 表示取消倒计时撤单功能。 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
该接口可以被用于确保在倒计时结束时撤销指定symbol上的所有挂单。 在使用这个功能时,接口应像心跳一样在倒计时内被反复调用,以便可以取消既有的倒计时并开始新的倒数计时设置。
用法示例: 以30s的间隔重复此接口,每次倒计时countdownTime设置为120000(120s)。
如果在120秒内未再次调用此接口,则您指定symbol上的所有挂单都会被自动撤销。
如果在120秒内以将countdownTime设置为0,则倒数计时器将终止,自动撤单功能取消。系统会大约每10毫秒检查一次所有倒计时情况,因此请注意,使用此功能时应考虑足够的冗余。
我们不建议将倒记时设置得太精确或太小。
查询当前挂单 (USER_DATA)
响应:
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"status": "NEW", // 订单状态
"positionSide": "SHORT", // 持仓方向
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 0 //订单TIF为GTD时的自动取消时间
}
GET /fapi/v1/openOrder
请小心使用不带symbol参数的调用
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderId
与origClientOrderId
中的一个为必填参数- 查询的订单如果已经成交或取消,将返回报错 "Order does not exist."
查看当前全部挂单 (USER_DATA)
响应:
[
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"priceMatch": "NONE", // 盘口价格下单模式
"selfTradePreventionMode": "NONE", // 订单自成交保护模式
"goodTillDate": 0 // 订单TIF为GTD时的自动取消时间
}
]
GET /fapi/v1/openOrders
请小心使用不带symbol参数的调用
权重: - 带symbol 1 - 不带 40
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 不带symbol参数,会返回所有交易对的挂单
查询所有订单(包括历史订单) (USER_DATA)
响应:
[
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"priceMatch": "NONE", //盘口价格下单模式
"selfTradePreventionMode": "NONE", //订单自成交保护模式
"goodTillDate": 0 //订单TIF为GTD时的自动取消时间
}
]
GET /fapi/v1/allOrders
- 请注意,如果订单满足如下条件,不会被查询到:
- 订单的最终状态为
CANCELED
或者EXPIRED
并且 订单没有任何的成交记录 并且 订单生成时间 + 3天 < 当前时间 - 订单创建时间 + 90天 < 当前时间
- 订单的最终状态为
权重: 5
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 只返回此orderID及之后的订单,缺省返回最近的订单 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 返回的结果集数量 默认值:500 最大值:1000 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 查询时间范围最大不得超过7天
- 默认查询最近7天内的数据
账户余额V3 (USER_DATA)
响应:
[
{
"accountAlias": "SgsR", // 账户唯一识别码
"asset": "USDT", // 资产
"balance": "122607.35137903", // 总余额
"crossWalletBalance": "23.72469206", // 全仓余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 下单可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1617939110373
}
]
GET /fapi/v3/balance
Weight: 5
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
账户余额V2 (USER_DATA)
响应:
[
{
"accountAlias": "SgsR", // 账户唯一识别码
"asset": "USDT", // 资产
"balance": "122607.35137903", // 总余额
"crossWalletBalance": "23.72469206", // 全仓余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 下单可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1617939110373
}
]
GET /fapi/v2/balance
Weight: 5
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
账户信息V3 (USER_DATA)
响应:
单资产模式
{
"totalInitialMargin": "0.00000000", // 当前所需起始保证金总额(存在逐仓请忽略), 仅计算usdt资产positions), only for USDT asset
"totalMaintMargin": "0.00000000", // 维持保证金总额, 仅计算usdt资产
"totalWalletBalance": "103.12345678", // 账户总余额, 仅计算usdt资产
"totalUnrealizedProfit": "0.00000000", // 持仓未实现盈亏总额, 仅计算usdt资产
"totalMarginBalance": "103.12345678", // 保证金总余额, 仅计算usdt资产
"totalPositionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalOpenOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalCrossWalletBalance": "103.12345678", // 全仓账户余额, 仅计算usdt资产
"totalCrossUnPnl": "0.00000000", // 全仓持仓未实现盈亏总额, 仅计算usdt资产
"availableBalance": "103.12345678", // 可用余额, 仅计算usdt资产
"maxWithdrawAmount": "103.12345678" // 最大可转出余额, 仅计算usdt资产
"assets": [
{
"asset": "USDT", // 资产
"walletBalance": "23.72469206", // 余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", // 全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"updateTime": 1625474304765 // 更新时间
},
{
"asset": "USDC",
"walletBalance": "103.12345678",
"unrealizedProfit": "0.00000000",
"marginBalance": "103.12345678",
"maintMargin": "0.00000000",
"initialMargin": "0.00000000",
"positionInitialMargin": "0.00000000",
"openOrderInitialMargin": "0.00000000",
"crossWalletBalance": "103.12345678",
"crossUnPnl": "0.00000000"
"availableBalance": "126.72469206",
"maxWithdrawAmount": "103.12345678",
"updateTime": 1625474304765
}
],
"positions": [ // 仅有仓位或挂单的交易对会被返回
// 根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"positionSide": "BOTH", // 持仓方向
"positionAmt": "1.000", // 持仓数量
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"isolatedMargin": "0.00000000",
"notional": "0",
"isolatedWallet": "0",
"initialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"maintMargin": "0", // 当前杠杆下用户可用的最大名义价值
"updateTime": 0 // 更新时间
}
]
}
多资产模式
{
"totalInitialMargin": "0.00000000", // 以USD计价的所需起始保证金总额
"totalMaintMargin": "0.00000000", // 以USD计价的维持保证金总额
"totalWalletBalance": "126.72469206", // 以USD计价的账户总余额
"totalUnrealizedProfit": "0.00000000", // 以USD计价的持仓未实现盈亏总额
"totalMarginBalance": "126.72469206", // 以USD计价的保证金总余额
"totalPositionInitialMargin": "0.00000000", // 以USD计价的持仓所需起始保证金(基于最新标记价格)
"totalOpenOrderInitialMargin": "0.00000000", // 以USD计价的当前挂单所需起始保证金(基于最新标记价格)
"totalCrossWalletBalance": "126.72469206", // 以USD计价的全仓账户余额
"totalCrossUnPnl": "0.00000000", // 以USD计价的全仓持仓未实现盈亏总额
"availableBalance": "126.72469206", // 以USD计价的可用余额
"maxWithdrawAmount": "126.72469206" // 以USD计价的最大可转出余额
"assets": [
{
"asset": "USDT", // 资产
"walletBalance": "23.72469206", // 余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", // 全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"updateTime": 1625474304765 // 更新时间
},
{
"asset": "USDC",
"walletBalance": "103.12345678",
"unrealizedProfit": "0.00000000",
"marginBalance": "103.12345678",
"maintMargin": "0.00000000",
"initialMargin": "0.00000000",
"positionInitialMargin": "0.00000000",
"openOrderInitialMargin": "0.00000000",
"crossWalletBalance": "103.12345678",
"crossUnPnl": "0.00000000"
"availableBalance": "126.72469206",
"maxWithdrawAmount": "103.12345678",
"updateTime": 1625474304765
}
],
"positions": [ // 仅有仓位或挂单的交易对会被返回
// 根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"positionSide": "BOTH", // 持仓方向
"positionAmt": "1.000", // 持仓数量
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"isolatedMargin": "0.00000000",
"notional": "0",
"isolatedWallet": "0",
"initialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"maintMargin": "0", // 当前杠杆下用户可用的最大名义价值
"updateTime": 0 // 更新时间
}
]
}
GET /fapi/v3/account
现有账户信息。 用户在单资产模式和多资产模式下会看到不同结果,响应部分的注释解释了两种模式下的不同。
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
账户信息V2 (USER_DATA)
响应:
单资产模式
{
"feeTier": 0, // 手续费等级
"feeBurn": true, // "true": 手续费抵扣开; "false": 手续费抵扣关
"canTrade": true, // 是否可以交易
"canDeposit": true, // 是否可以入金
"canWithdraw": true, // 是否可以出金
"updateTime": 0, // 保留字段,请忽略
"multiAssetsMargin": false,
"tradeGroupId": -1,
"totalInitialMargin": "0.00000000", // 当前所需起始保证金总额(存在逐仓请忽略), 仅计算usdt资产
"totalMaintMargin": "0.00000000", // 维持保证金总额, 仅计算usdt资产
"totalWalletBalance": "23.72469206", // 账户总余额, 仅计算usdt资产
"totalUnrealizedProfit": "0.00000000", // 持仓未实现盈亏总额, 仅计算usdt资产
"totalMarginBalance": "23.72469206", // 保证金总余额, 仅计算usdt资产
"totalPositionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalOpenOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalCrossWalletBalance": "23.72469206", // 全仓账户余额, 仅计算usdt资产
"totalCrossUnPnl": "0.00000000", // 全仓持仓未实现盈亏总额, 仅计算usdt资产
"availableBalance": "23.72469206", // 可用余额, 仅计算usdt资产
"maxWithdrawAmount": "23.72469206" // 最大可转出余额, 仅计算usdt资产
"assets": [
{
"asset": "USDT", //资产
"walletBalance": "23.72469206", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "126.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1625474304765 //更新时间
},
{
"asset": "BUSD", //资产
"walletBalance": "103.12345678", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "103.12345678", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "103.12345678", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "126.72469206", // 可用余额
"maxWithdrawAmount": "103.12345678", // 最大可转出余额
"marginAvailable": true, // 否可用作联合保证金
"updateTime": 0 // 更新时间
}
],
"positions": [ // 头寸,将返回所有市场symbol。
//根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"initialMargin": "0", // 当前所需起始保证金(基于最新标记价格)
"maintMargin": "0", //维持保证金
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionInitialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0", // 当前挂单所需起始保证金(基于最新标记价格)
"leverage": "100", // 杠杆倍率
"isolated": true, // 是否是逐仓模式
"entryPrice": "0.00000", // 持仓成本价
"maxNotional": "250000", // 当前杠杆下用户可用的最大名义价值
"bidNotional": "0", // 买单净值,忽略
"askNotional": "0", // 卖单净值,忽略
"positionSide": "BOTH", // 持仓方向
"positionAmt": "0", // 持仓数量
"updateTime": 0 // 更新时间
}
]
}
多资产模式
{
"feeTier": 0, // 手续费等级
"feeBurn": true, // "true": 手续费抵扣开; "false": 手续费抵扣关
"canTrade": true, // 是否可以交易
"canDeposit": true, // 是否可以入金
"canWithdraw": true, // 是否可以出金
"updateTime": 0, // 保留字段,请忽略
"multiAssetsMargin": true,
"tradeGroupId": -1,
"totalInitialMargin": "0.00000000", // 以USD计价的所需起始保证金总额
"totalMaintMargin": "0.00000000", // 以USD计价的维持保证金总额
"totalWalletBalance": "126.72469206", // 以USD计价的账户总余额
"totalUnrealizedProfit": "0.00000000", // 以USD计价的持仓未实现盈亏总额
"totalMarginBalance": "126.72469206", // 以USD计价的保证金总余额
"totalPositionInitialMargin": "0.00000000", // 以USD计价的持仓所需起始保证金(基于最新标记价格)
"totalOpenOrderInitialMargin": "0.00000000", // 以USD计价的当前挂单所需起始保证金(基于最新标记价格)
"totalCrossWalletBalance": "126.72469206", // 以USD计价的全仓账户余额
"totalCrossUnPnl": "0.00000000", // 以USD计价的全仓持仓未实现盈亏总额
"availableBalance": "126.72469206", // 以USD计价的可用余额
"maxWithdrawAmount": "126.72469206" // 以USD计价的最大可转出余额
"assets": [
{
"asset": "USDT", //资产
"walletBalance": "23.72469206", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1625474304765 //更新时间
},
{
"asset": "BUSD", //资产
"walletBalance": "103.12345678", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "103.12345678", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "103.12345678", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "103.12345678", // 可用余额
"maxWithdrawAmount": "103.12345678", // 最大可转出余额
"marginAvailable": true, // 否可用作联合保证金
"updateTime": 0 // 更新时间
}
],
"positions": [ // 头寸,将返回所有市场symbol。
//根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"initialMargin": "0", // 当前所需起始保证金(基于最新标记价格)
"maintMargin": "0", //维持保证金
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionInitialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0", // 当前挂单所需起始保证金(基于最新标记价格)
"leverage": "100", // 杠杆倍率
"isolated": true, // 是否是逐仓模式
"entryPrice": "0.00000", // 持仓成本价
"breakEvenPrice": "0.0", // 持仓成本价
"maxNotional": "250000", // 当前杠杆下用户可用的最大名义价值
"bidNotional": "0", // 买单净值,忽略
"askNotional": "0", // 买单净值,忽略
"positionSide": "BOTH", // 持仓方向
"positionAmt": "0", // 持仓数量
"updateTime": 0 // 更新时间
}
]
}
GET /fapi/v2/account
现有账户信息。 用户在单资产模式和多资产模式下会看到不同结果,响应部分的注释解释了两种模式下的不同。
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
调整开仓杠杆 (TRADE)
响应:
{
"leverage": 21, // 杠杆倍数
"maxNotionalValue": "1000000", // 当前杠杆倍数下允许的最大名义价值
"symbol": "BTCUSDT" // 交易对
}
POST /fapi/v1/leverage
调整用户在指定symbol合约的开仓杠杆。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
leverage | INT | YES | 目标杠杆倍数:1 到 125 整数 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
变换逐全仓模式 (TRADE)
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v1/marginType
变换用户在指定symbol合约上的保证金模式:逐仓或全仓。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
marginType | ENUM | YES | 保证金模式 ISOLATED(逐仓), CROSSED(全仓) |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
调整逐仓保证金 (TRADE)
响应:
{
"amount": 100.0,
"code": 200,
"msg": "Successfully modify position margin.",
"type": 1
}
POST /fapi/v1/positionMargin
针对逐仓模式下的仓位,调整其逐仓保证金资金。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH ;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
amount | DECIMAL | YES | 保证金资金 |
type | INT | YES | 调整方向 1: 增加逐仓保证金,2: 减少逐仓保证金 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 只针对逐仓symbol 与 positionSide(如有)
逐仓保证金变动历史 (TRADE)
响应:
[
{
"symbol": "BTCUSDT", // 交易对
"type": 1, // 调整方向
"deltaType": "USER_ADJUST", // 划转类型
"amount": "23.36332311", // 数量
"asset": "USDT", // 资产
"time": 1578047897183, // 时间
"positionSide": "BOTH" // 持仓方向
},
{
"symbol": "BTCUSDT",
"type": 1,
"deltaType": "USER_ADJUST",
"amount": "100",
"asset": "USDT",
"time": 1578047900425,
"positionSide": "LONG"
}
]
GET /fapi/v1/positionMargin/history
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
type | INT | NO | 调整方向 1: 增加逐仓保证金,2: 减少逐仓保证金 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间,默认为当前时间 |
limit | INT | NO | 返回的结果集数量 默认值: 500 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
startTime
与endTime
间隔不能超过30天
用户持仓风险V3 (USER_DATA)
响应:
单向持仓模式下:
[
{
"symbol": "ADAUSDT",
"positionSide": "LONG", // position side
"positionAmt": "30",
"entryPrice": "0.385",
"breakEvenPrice": "0.385077",
"markPrice": "0.41047590",
"unRealizedProfit": "0.76427700", // unrealized profit
"liquidationPrice": "0",
"isolatedMargin": "0",
"notional": "12.31427700",
"marginAsset": "USDT",
"isolatedWallet": "0",
"initialMargin": "0.61571385", // initial margin required with current mark price
"maintMargin": "0.08004280", // maintenance margin required
"positionInitialMargin": "0.61571385",// initial margin required for positions with current mark price
"openOrderInitialMargin": "0", // initial margin required for open orders with current mark price
"adl": 2,
"bidNotional": "0", // bids notional, ignore
"askNotional": "0", // ask notional, ignore
"updateTime": 1720736417660
},
{
"symbol": "COMPUSDT",
"positionSide": "SHORT",
"positionAmt": "-1.000",
"entryPrice": "70.92841",
"breakEvenPrice": "70.900038636",
"markPrice": "49.72023376",
"unRealizedProfit": "21.20817624",
"liquidationPrice": "2260.56757210",
"isolatedMargin": "0",
"notional": "-49.72023376",
"marginAsset": "USDT",
"isolatedWallet": "0",
"initialMargin": "2.48601168",
"maintMargin": "0.49720233",
"positionInitialMargin": "2.48601168",
"openOrderInitialMargin": "0",
"adl": 2,
"bidNotional": "0",
"askNotional": "0",
"updateTime": 1708943511656
}
]
双向持仓模式下:
[
{
"symbol": "BTCUSDT", // 交易对
"positionAmt": "0.001", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"entryPrice": "22185.2", // 开仓均价
"breakEvenPrice": "0.0", // 盈亏平衡价
"markPrice": "21123.05052574", // 当前标记价格
"unRealizedProfit": "-1.06214947", // 持仓未实现盈亏
"liquidationPrice": "19731.45529116", // 参考强平价格
"leverage": "4", // 当前杠杆倍数
"maxNotionalValue": "100000000", // 当前杠杆倍数允许的名义价值上限
"marginType": "cross", // 逐仓模式或全仓模式
"isolatedMargin": "0.00000000", // 逐仓保证金
"isAutoAddMargin": "false",
"positionSide": "LONG", // 持仓方向
"notional": "21.12305052",
"isolatedWallet": "0",
"updateTime": 1655217461579 //更新时间
},
{
"symbol": "BTCUSDT",
"positionAmt": "0.000",
"entryPrice": "0.0",
"breakEvenPrice": "0.0",
"markPrice": "21123.05052574",
"unRealizedProfit": "0.00000000",
"liquidationPrice": "0",
"leverage": "4",
"maxNotionalValue": "100000000",
"marginType": "cross",
"isolatedMargin": "0.00000000",
"isAutoAddMargin": "false",
"positionSide": "SHORT",
"notional": "0",
"isolatedWallet": "0",
"updateTime": 0
}
]
GET /fapi/v3/positionRisk
查询持仓风险,仅返回有持仓或挂单的交易对
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意
请与账户推送信息ACCOUNT_UPDATE
配合使用,以满足您的及时性和准确性需求。
用户持仓风险V2 (USER_DATA)
响应:
单向持仓模式下:
[
{
"entryPrice": "0.00000", // 开仓均价
"breakEvenPrice": "0.0", // 盈亏平衡价
"marginType": "isolated", // 逐仓模式或全仓模式
"isAutoAddMargin": "false",
"isolatedMargin": "0.00000000", // 逐仓保证金
"leverage": "10", // 当前杠杆倍数
"liquidationPrice": "0", // 参考强平价格
"markPrice": "6679.50671178", // 当前标记价格
"maxNotionalValue": "20000000", // 当前杠杆倍数允许的名义价值上限
"positionAmt": "0.000", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"notional": "0",
"isolatedWallet": "0",
"symbol": "BTCUSDT", // 交易对
"unRealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionSide": "BOTH", // 持仓方向
"updateTime": 1625474304765 // 更新时间
}
]
双向持仓模式下:
[
{
"symbol": "BTCUSDT", // 交易对
"positionAmt": "0.001", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"entryPrice": "22185.2", // 开仓均价
"breakEvenPrice": "0.0", // 盈亏平衡价
"markPrice": "21123.05052574", // 当前标记价格
"unRealizedProfit": "-1.06214947", // 持仓未实现盈亏
"liquidationPrice": "19731.45529116", // 参考强平价格
"leverage": "4", // 当前杠杆倍数
"maxNotionalValue": "100000000", // 当前杠杆倍数允许的名义价值上限
"marginType": "cross", // 逐仓模式或全仓模式
"isolatedMargin": "0.00000000", // 逐仓保证金
"isAutoAddMargin": "false",
"positionSide": "LONG", // 持仓方向
"notional": "21.12305052",
"isolatedWallet": "0",
"updateTime": 1655217461579 //更新时间
},
{
"symbol": "BTCUSDT",
"positionAmt": "0.000",
"entryPrice": "0.0",
"breakEvenPrice": "0.0",
"markPrice": "21123.05052574",
"unRealizedProfit": "0.00000000",
"liquidationPrice": "0",
"leverage": "4",
"maxNotionalValue": "100000000",
"marginType": "cross",
"isolatedMargin": "0.00000000",
"isAutoAddMargin": "false",
"positionSide": "SHORT",
"notional": "0",
"isolatedWallet": "0",
"updateTime": 0
}
]
GET /fapi/v2/positionRisk
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意
请与账户推送信息ACCOUNT_UPDATE
配合使用,以满足您的及时性和准确性需求。
账户成交历史 (USER_DATA)
响应:
[
{
"buyer": false, // 是否是买方
"commission": "-0.07819010", // 手续费
"commissionAsset": "USDT", // 手续费计价单位
"id": 698759, // 交易ID
"maker": false, // 是否是挂单方
"orderId": 25851813, // 订单编号
"price": "7819.01", // 成交价
"qty": "0.002", // 成交量
"quoteQty": "15.63802", // 成交额
"realizedPnl": "-0.91539999", // 实现盈亏
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"symbol": "BTCUSDT", // 交易对
"time": 1569514978020 // 时间
}
]
GET /fapi/v1/userTrades
获取某交易对的成交历史
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 必须要和参数symbol 一起使用 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
fromId | LONG | NO | 返回该fromId及之后的成交,缺省返回最近的成交 |
limit | INT | NO | 返回的结果集数量 默认值:500 最大值:1000. |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 如果
startTime
和endTime
均未发送, 只会返回最近7天的数据。 - startTime 和 endTime 的最大间隔为7天
获取账户损益资金流水 (USER_DATA)
响应:
[
{
"symbol": "", // 交易对,仅针对涉及交易对的资金流
"incomeType": "TRANSFER", // 资金流类型
"income": "-0.37500000", // 资金流数量,正数代表流入,负数代表流出
"asset": "USDT", // 资产内容
"info":"TRANSFER", // 备注信息,取决于流水类型
"time": 1570608000000, // 时间
"tranId":"9689322392", // 划转ID
"tradeId":"" // 引起流水产生的原始交易ID
},
{
"symbol": "BTCUSDT",
"incomeType": "COMMISSION",
"income": "-0.01000000",
"asset": "USDT",
"info":"COMMISSION",
"time": 1570636800000,
"tranId":"9689322392",
"tradeId": 2059192
}
]
GET /fapi/v1/income
权重: 30
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
incomeType | STRING | NO | 收益类型: TRANSFER 转账, WELCOME_BONUS 欢迎奖金, REALIZED_PNL 已实现盈亏, FUNDING_FEE 资金费用, COMMISSION 手续费, INSURANCE_CLEAR 强平, REFERRAL_KICKBACK 推荐人返佣, COMMISSION_REBATE 被推荐人返佣, API_REBATE API佣金回扣, CONTEST_REWARD 交易大赛奖金, CROSS_COLLATERAL_TRANSFER cc转账, OPTIONS_PREMIUM_FEE 期权购置手续费, OPTIONS_SETTLE_PROFIT 期权行权收益, INTERNAL_TRANSFER 内部账户,给普通用户划转, AUTO_EXCHANGE 自动兑换, DELIVERED_SETTELMENT 下架结算, COIN_SWAP_DEPOSIT 闪兑转入, COIN_SWAP_WITHDRAW 闪兑转出, POSITION_LIMIT_INCREASE_FEE 仓位限制上调费用 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
page | INT | NO | 分页数 |
limit | INT | NO | 返回的结果集数量 默认值:100 最大值:1000 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 如果
startTime
和endTime
均未发送, 只会返回最近7天的数据。 - 如果
incomeType
没有发送,返回所有类型账户损益资金流水。 - "trandId" 在相同用户的同一种收益流水类型中是唯一的。
- 仅保留最近3个月的数据。
杠杆分层标准 (USER_DATA)
响应:
[
{
"symbol": "ETHUSDT",
"notionalCoef": 1.50, //用户bracket相对默认bracket的倍数,仅在和交易对默认不一样时显示
"brackets": [
{
"bracket": 1, // 层级
"initialLeverage": 75, // 该层允许的最高初始杠杆倍数
"notionalCap": 10000, // 该层对应的名义价值上限
"notionalFloor": 0, // 该层对应的名义价值下限
"maintMarginRatio": 0.0065, // 该层对应的维持保证金率
"cum":0 // 速算数
},
]
}
]
或 (若发送symbol)
{
"symbol": "ETHUSDT",
"notionalCoef": 1.50,
"brackets": [
{
"bracket": 1,
"initialLeverage": 75,
"notionalCap": 10000,
"notionalFloor": 0,
"maintMarginRatio": 0.0065,
"cum":0
},
]
}
GET /fapi/v1/leverageBracket
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
持仓ADL队列估算 (USER_DATA)
响应:
[
{
"symbol": "ETHUSDT",
"adlQuantile":
{
// 对于全仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "HEDGE", 其中"HEDGE"的存在仅作为标记;如果多空均有持仓的情况下,"LONG"和"SHORT"应返回共同计算后相同的队列分数。
"LONG": 3,
"SHORT": 3,
"HEDGE": 0 // HEDGE 仅作为指示出现,请忽略数值
}
},
{
"symbol": "BTCUSDT",
"adlQuantile":
{
// 对于单向持仓模式或者是逐仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "BOTH" 分别表示不同持仓方向上持仓的adl队列分数
"LONG": 1, // 双开模式下多头持仓的ADL队列估算分
"SHORT": 2, // 双开模式下空头持仓的ADL队列估算分
"BOTH": 0 // 单开模式下持仓的ADL队列估算分
}
}
]
GET /fapi/v1/adlQuantile
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
每30秒更新数据
队列分数0,1,2,3,4,分数越高说明在ADL队列中的位置越靠前
对于单向持仓模式或者是逐仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "BOTH" 分别表示不同持仓方向上持仓的adl队列分数
对于全仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "HEDGE", 其中"HEDGE"的存在仅作为标记;其中如果多空均有持仓的情况下,"LONG"和"SHORT"返回共同计算后相同的队列分数。
用户强平单历史 (USER_DATA)
响应:
[
{
"orderId": 6071832819,
"symbol": "BTCUSDT",
"status": "FILLED",
"clientOrderId": "autoclose-1596107620040000020",
"price": "10871.09",
"avgPrice": "10913.21000",
"origQty": "0.001",
"executedQty": "0.001",
"cumQuote": "10.91321",
"timeInForce": "IOC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "SELL",
"positionSide": "BOTH",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"origType": "LIMIT",
"time": 1596107620044,
"updateTime": 1596107620087
}
{
"orderId": 6072734303,
"symbol": "BTCUSDT",
"status": "FILLED",
"clientOrderId": "adl_autoclose",
"price": "11023.14",
"avgPrice": "10979.82000",
"origQty": "0.001",
"executedQty": "0.001",
"cumQuote": "10.97982",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "BUY",
"positionSide": "SHORT",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"origType": "LIMIT",
"time": 1596110725059,
"updateTime": 1596110725071
}
]
GET /fapi/v1/forceOrders
权重: 带symbol 20, 不带symbol 50
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
autoCloseType | ENUM | NO | "LIQUIDATION": 强平单, "ADL": ADL减仓单. |
startTime | LONG | NO | |
endTime | LONG | NO | |
limit | INT | NO | Default 50; max 100. |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 如果没有传 "autoCloseType", 强平单和ADL减仓单都会被返回
- 如果没有传"startTime", 只会返回"endTime"之前7天内的数据
合约交易量化规则指标 (USER_DATA)
- 更多细节, 请参考合约交易量化规则
响应:
{
"indicators": { // indicator:风控指标名, value:用户在该市场的风控指标数值, triggerValue:阈值, 对于没有达到记录阈值的则不返回数据。
"BTCUSDT": [
{
"isLocked": true, // 用户该品种交易是否被风控禁用
"plannedRecoverTime": 1545741270000, // 预计恢复时间,若当前时间大等于预计恢复时间则为空
"indicator": "UFR", // Unfilled Ratio (UFR)
"value": 0.05, // Current value
"triggerValue": 0.995 // Trigger value
},
{
"isLocked": true, // 用户该品种交易是否被风控禁用
"plannedRecoverTime": 1545741270000,
"indicator": "IFER", // IOC/FOK Expiration Ratio (IFER)
"value": 0.99, // Current value
"triggerValue": 0.99 // Trigger value
},
{
"isLocked": true, // 用户该品种交易是否被风控禁用
"plannedRecoverTime": 1545741270000,
"indicator": "GCR", // GTC Cancellation Ratio (GCR)
"value": 0.99, // Current value
"triggerValue": 0.99 // Trigger value
},
{
"isLocked": true, // 用户该品种交易是否被风控禁用
"plannedRecoverTime": 1545741270000,
"indicator": "DR", // Dust Ratio (DR)
"value": 0.99, // Current value
"triggerValue": 0.99 // Trigger value
}
],
"ETHUSDT": [
{
"isLocked": true, // 用户该品种交易是否被风控禁用
"plannedRecoverTime": 1545741270000,
"indicator": "UFR",
"value": 0.05,
"triggerValue": 0.995
},
{
"isLocked": true, // 用户该品种交易是否被风控禁用
"plannedRecoverTime": 1545741270000,
"indicator": "IFER",
"value": 0.99,
"triggerValue": 0.99
},
{
"isLocked": true, // 用户该品种交易是否被风控禁用
"plannedRecoverTime": 1545741270000,
"indicator": "GCR",
"value": 0.99,
"triggerValue": 0.99
}
{
"isLocked": true, // 用户该品种交易是否被风控禁用
"plannedRecoverTime": 1545741270000,
"indicator": "DR",
"value": 0.99,
"triggerValue": 0.99
}
]
},
"updateTime": 1545741270000 // 返回值的更新时间
}
或(触发账号层级违规时)
{
"indicators":{
"ACCOUNT":[
{
"indicator":"TMV", // Too many violations 多交易对触发账号层级违规
"value":10,
"triggerValue":1,
"plannedRecoverTime":1644919865000,
"isLocked":true
}
]
},
"updateTime":1644913304748
}
GET /fapi/v1/apiTradingStatus
权重:
- 带 symbol 1
- 不带 10
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
账户配置 (USER_DATA)
响应:
{
"feeTier": 0, // 费率等级
"canTrade": true, // 是否可以交易
"canDeposit": true, // 是否可以存款
"canWithdraw": true, // 是否可以提现
"dualSidePosition": true,
"updateTime": 0, // 忽略
"multiAssetsMargin": false,
"tradeGroupId": -1
}
GET /fapi/v1/accountConfig
查询账户配置
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
交易对配置(USER_DATA)
响应:
[
{
"symbol": "BTCUSDT",
"marginType": "CROSSED",
"isAutoAddMargin": "false",
"leverage": 21,
"maxNotionalValue": "1000000",
}
]
GET /fapi/v1/symbolConfig
查询交易对上的基础配置
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
用户手续费率 (USER_DATA)
响应:
{
"symbol": "BTCUSDT",
"makerCommissionRate": "0.0002", // 0.02%
"takerCommissionRate": "0.0004" // 0.04%
}
GET /fapi/v1/commissionRate
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
查询用户下单限频 (USER_DATA)
响应:
[
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 10000,
},
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 20000,
}
]
GET /fapi/v1/rateLimit/order
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
获取合约资金流水下载Id (USER_DATA)
响应:
{
"avgCostTimestampOfLast30d":7241837, //过去30天平均数据下载时间
"downloadId":"546975389218332672", //下载Id
}
GET /fapi/v1/income/asyn
权重: 1500
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
startTime | LONG | YES | 起始时间,ms格式时间戳 |
endTime | LONG | YES | 结束时间,ms格式时间戳 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 存在每月5次的请求限制,网页端和Rest接口下载次数共用。
startTime
与endTime
间隔不能超过1年
通过下载Id获取合约资金流水下载链接 (USER_DATA)
响应:
{
"downloadId":"545923594199212032", // 下载Id
"status":"completed", // 状态,枚举类型:completed 已完成,processing 处理中
"url":"www.binance.com", // 适配该笔ID请求的下载链接
"notified":true, // 忽略
"expirationTimestamp":1645009771000, // 晚于该时间戳之后链接将自动失效
"isExpired":null,
}
或 (服务器仍在处理中会返回)
{
"downloadId":"545923594199212032",
"status":"processing",
"url":"",
"notified":false,
"expirationTimestamp":-1
"isExpired":null,
}
GET /fapi/v1/income/asyn/id
权重: 10
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
downloadId | STRING | YES | 通过下载id 接口获取 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 下载链接有效期:24小时。
获取合约订单历史下载Id (USER_DATA)
响应:
{
"avgCostTimestampOfLast30d":7241837, //过去30天平均数据下载时间
"downloadId":"546975389218332672", //下载Id
}
GET /fapi/v1/order/asyn
权重: 1500
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
startTime | LONG | YES | 起始时间,ms格式时间戳 |
endTime | LONG | YES | 结束时间,ms格式时间戳 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 存在每月10次的请求限制,网页端和Rest接口下载次数共用。
startTime
与endTime
间隔不能超过1年
通过下载Id获取合约订单下载链接 (USER_DATA)
响应:
{
"downloadId":"545923594199212032", // 下载Id
"status":"completed", // 状态,枚举类型:completed 已完成,processing 处理中
"url":"www.binance.com", // 适配该笔ID请求的下载链接
"notified":true, // 忽略
"expirationTimestamp":1645009771000, // 晚于该时间戳之后链接将自动失效
"isExpired":null,
}
或 (服务器仍在处理中会返回)
{
"downloadId":"545923594199212032",
"status":"processing",
"url":"",
"notified":false,
"expirationTimestamp":-1
"isExpired":null,
}
GET /fapi/v1/order/asyn/id
权重: 10
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
downloadId | STRING | YES | 通过下载id 接口获取 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 下载链接有效期:24小时。
获取合约交易历史下载Id (USER_DATA)
响应:
{
"avgCostTimestampOfLast30d":7241837, //过去30天平均数据下载时间
"downloadId":"546975389218332672", //下载Id
}
GET /fapi/v1/trade/asyn
权重: 1500
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
startTime | LONG | YES | 起始时间,ms格式时间戳 |
endTime | LONG | YES | 结束时间,ms格式时间戳 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 存在每月5次的请求限制,网页端和Rest接口下载次数共用。
startTime
与endTime
间隔不能超过1年
通过下载Id获取合约交易历史下载链接 (USER_DATA)
响应:
{
"downloadId":"545923594199212032", // 下载Id
"status":"completed", // 状态,枚举类型:completed 已完成,processing 处理中
"url":"www.binance.com", // 适配该笔ID请求的下载链接
"notified":true, // 忽略
"expirationTimestamp":1645009771000, // 晚于该时间戳之后链接将自动失效
"isExpired":null,
}
或 (服务器仍在处理中会返回)
{
"downloadId":"545923594199212032",
"status":"processing",
"url":"",
"notified":false,
"expirationTimestamp":-1
"isExpired":null,
}
GET /fapi/v1/trade/asyn/id
权重: 10
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
downloadId | STRING | YES | 通过下载id 接口获取 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 下载链接有效期:24小时。
Websocket 账户信息推送
- 本篇所列出REST接口的baseurl https://fapi.binance.com
- 用于订阅账户数据的
listenKey
从创建时刻起有效期为60分钟 - 可以通过
PUT
一个listenKey
延长60分钟有效期,如收到-1125
报错提示此listenKey
不存在,建议重新使用POST /fapi/v1/listenKey
生成listenKey
并用新listenKey
建立连接 - 可以通过
DELETE
一个listenKey
立即关闭当前数据流,并使该listenKey
无效 - 在具有有效
listenKey
的帐户上执行POST
将返回当前有效的listenKey
并将其有效期延长60分钟 本篇所列出的websocket接口,需使用以下连接方式:
- Base Url: wss://fstream.binance.com
- 订阅账户数据流的stream名称为 /ws/<listenKey>
- 连接样例:
wss://fstream.binance.com/ws/XaEAKTsQSRLZAGH9tuIu37plSRsdjmlAVBoNYPUITlTAko1WI22PgmBMpI1rS8Yh
每个链接有效期不超过24小时,请妥善处理断线重连。
单一账户,单一连接的推送数据流消息可以保证时间序; 强烈建议您使用 E 字段进行排序
考虑到剧烈行情下, RESTful接口可能存在查询延迟,我们强烈建议您优先从Websocket user data stream推送的消息来获取订单,仓位等信息。
生成listenKey (USER_STREAM)
响应:
{
"listenKey": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
POST /fapi/v1/listenKey
创建一个新的user data stream,返回值为一个listenKey,即websocket订阅的stream名称。如果该帐户具有有效的listenKey
,则将返回该listenKey
并将其有效期延长60分钟。在极少数情况下,在该帐户具有有效的listenKey
时本接口依然会生成新的listenKey
,请使用该listenKey
重新建议连接。不建议用本接口延长listenKey
,建议用PUT /fapi/v1/listenKey
延长listenkey
权重: 1
参数:
None
延长listenKey有效期 (USER_STREAM)
响应:
{
"listenKey": "3HBntNTepshgEdjIwSUIBgB9keLyOCg5qv3n6bYAtktG8ejcaW5HXz9Vx1JgIieg" // 被延长的listenkey
}
PUT /fapi/v1/listenKey
有效期延长至本次调用后60分钟。如收到-1125
报错提示此listenKey
不存在,建议重新使用POST /fapi/v1/listenKey
生成listenKey
并用新listenKey
建立连接
权重: 1
参数:
None
关闭listenKey (USER_STREAM)
响应:
{}
DELETE /fapi/v1/listenKey
关闭某账户数据流
权重: 1
参数:
None
listenKey 过期推送
Payload:
{
"stream": "OfYGbUzi3PraNagEkdKuFwUHn48brFsItTdsuiIXrucEvD0rhRXZ7I6URWfE8YE8",
"data": {
"e": "listenKeyExpired", // 事件类型
"E": "1699596037418", // 事件时间
"listenKey": "OfYGbUzi3PraNagEkdKuFwUHn48brFsItTdsuiIXrucEvD0rhRXZ7I6URWfE8YE8"
}
}
当前连接使用的有效listenKey过期时,user data stream 将会推送此事件。
注意:
- 此事件与websocket连接中断没有必然联系
- 只有正在连接中的有效
listenKey
过期时才会收到此消息 - 收到此消息后user data stream将不再更新,直到用户使用新的有效的
listenKey
Websocket 账户信息请求(将被弃用)
- 用户通过listenKey与服务器建立成功的用户信息websocket连接之后,可以使用请求获取账户信息。
- 以下数据可以通过websocket发送以获取账户信息。示例如下。
- 响应内容中的
id
是无符号整数,作为往来信息的唯一标识。
请求格式
响应
{
"result"[
{
"req":"<listenKey>@account", // request name 1
"res": // request name 1 的请求结果
...
},
{
"req":"<listenKey>@balance", // request name 2 (如有)
"res": // request name 2 的请求结果 (如有)
...
}
]
"id": 12 // ID
}
请求
{
"method": "REQUEST",
"params":
[
"<listenKey>
@account", // request name 1
"<listenKey>
@balance" // request name 2 (如有)
],
"id": 12 // request ID.
}
追加保证金通知
Payload:
{
"e":"MARGIN_CALL", // 事件类型
"E":1587727187525, // 事件时间
"cw":"3.16812045", // 除去逐仓仓位保证金的钱包余额, 仅在全仓 margin call 情况下推送此字段
"p":[ // 涉及持仓
{
"s":"ETHUSDT", // symbol
"ps":"LONG", // 持仓方向
"pa":"1.327", // 仓位
"mt":"CROSSED", // 保证金模式
"iw":"0", // 若为逐仓,仓位保证金
"mp":"187.17127", // 标记价格
"up":"-1.166074", // 未实现盈亏
"mm":"1.614445" // 持仓需要的维持保证金
}
]
}
- 当用户持仓风险过高,会推送此消息。
- 此消息仅作为风险指导信息,不建议用于投资策略。
- 在大波动市场行情下,不排除此消息发出的同时用户仓位已被强平的可能。
- 全仓模式下若保证金不足每小时仅会推送一次此事件,不会重复推送;逐仓模式下保证金不足一个交易对每小时仅会推送一次此事件,不会重复推送
Balance和Position更新推送
Payload:
{
"e": "ACCOUNT_UPDATE", // 事件类型
"E": 1564745798939, // 事件时间
"T": 1564745798938 , // 撮合时间
"a": // 账户更新事件
{
"m":"ORDER", // 事件推出原因
"B":[ // 余额信息
{
"a":"USDT", // 资产名称
"wb":"122624.12345678", // 钱包余额
"cw":"100.12345678", // 除去逐仓仓位保证金的钱包余额
"bc":"50.12345678" // 除去盈亏与交易手续费以外的钱包余额改变量
},
{
"a":"BUSD",
"wb":"1.00000000",
"cw":"0.00000000",
"bc":"-49.12345678"
}
],
"P":[
{
"s":"BTCUSDT", // 交易对
"pa":"0", // 仓位
"ep":"0.00000", // 入仓价格
"bep":"0", // 盈亏平衡价
"cr":"200", // (费前)累计实现损益
"up":"0", // 持仓未实现盈亏
"mt":"isolated", // 保证金模式
"iw":"0.00000000", // 若为逐仓,仓位保证金
"ps":"BOTH" // 持仓方向
},
{
"s":"BTCUSDT",
"pa":"20",
"ep":"6563.66500",
"bep":"6563.6",
"cr":"0",
"up":"2850.21200",
"mt":"isolated",
"iw":"13200.70726908",
"ps":"LONG"
},
{
"s":"BTCUSDT",
"pa":"-10",
"ep":"6563.86000",
"bep":"6563.6",
"cr":"-45.04000000",
"up":"-1423.15600",
"mt":"isolated",
"iw":"6570.42511771",
"ps":"SHORT"
}
]
}
}
账户更新事件的 event type 固定为 ACCOUNT_UPDATE
当账户信息有变动时,会推送此事件:
- 仅当账户信息有变动时(包括资金、仓位、保证金模式等发生变化),才会推送此事件;
- 订单状态变化没有引起账户和持仓变化的,不会推送此事件;
- position 信息:仅当symbol仓位有变动时推送。
"FUNDING FEE" 引起的资金余额变化,仅推送简略事件:
- 当用户某全仓持仓发生"FUNDING FEE"时,事件
ACCOUNT_UPDATE
将只会推送相关的用户资产余额信息B
(仅推送FUNDING FEE 发生相关的资产余额信息),而不会推送任何持仓信息P
。 - 当用户某逐仓仓持仓发生"FUNDING FEE"时,事件
ACCOUNT_UPDATE
将只会推送相关的用户资产余额信息B
(仅推送"FUNDING FEE"所使用的资产余额信息),和相关的持仓信息P
(仅推送这笔"FUNDING FEE"发生所在的持仓信息),其余持仓信息不会被推送。
- 当用户某全仓持仓发生"FUNDING FEE"时,事件
字段"m"代表了事件推出的原因,包含了以下可能类型:
- DEPOSIT
- WITHDRAW
- ORDER
- FUNDING_FEE
- WITHDRAW_REJECT
- ADJUSTMENT
- INSURANCE_CLEAR
- ADMIN_DEPOSIT
- ADMIN_WITHDRAW
- MARGIN_TRANSFER
- MARGIN_TYPE_CHANGE
- ASSET_TRANSFER
- OPTIONS_PREMIUM_FEE
- OPTIONS_SETTLE_PROFIT
- AUTO_EXCHANGE
- COIN_SWAP_DEPOSIT
- COIN_SWAP_WITHDRAW
字段"bc"代表了钱包余额的改变量,即 balance change,但注意其不包含仓位盈亏及交易手续费。
订单/交易 更新推送
Payload:
{
"e":"ORDER_TRADE_UPDATE", // 事件类型
"E":1568879465651, // 事件时间
"T":1568879465650, // 撮合时间
"o":{
"s":"BTCUSDT", // 交易对
"c":"TEST", // 客户端自定订单ID
// 特殊的自定义订单ID:
// "autoclose-"开头的字符串: 系统强平订单
// "adl_autoclose": ADL自动减仓订单
// "settlement_autoclose-": 下架或交割的结算订单
"S":"SELL", // 订单方向
"o":"TRAILING_STOP_MARKET", // 订单类型
"f":"GTC", // 有效方式
"q":"0.001", // 订单原始数量
"p":"0", // 订单原始价格
"ap":"0", // 订单平均价格
"sp":"7103.04", // 条件订单触发价格,对追踪止损单无效
"x":"NEW", // 本次事件的具体执行类型
"X":"NEW", // 订单的当前状态
"i":8886774, // 订单ID
"l":"0", // 订单末次成交量
"z":"0", // 订单累计已成交量
"L":"0", // 订单末次成交价格
"N": "USDT", // 手续费资产类型
"n": "0", // 手续费数量
"T":1568879465650, // 成交时间
"t":0, // 成交ID
"b":"0", // 买单净值
"a":"9.91", // 卖单净值
"m": false, // 该成交是作为挂单成交吗?
"R":false , // 是否是只减仓单
"wt": "CONTRACT_PRICE", // 触发价类型
"ot": "TRAILING_STOP_MARKET", // 原始订单类型
"ps":"LONG" // 持仓方向
"cp":false, // 是否为触发平仓单; 仅在条件订单情况下会推送此字段
"AP":"7476.89", // 追踪止损激活价格, 仅在追踪止损单时会推送此字段
"cr":"5.0", // 追踪止损回调比例, 仅在追踪止损单时会推送此字段
"pP": false, // 是否开启条件单触发保护
"si": 0, // 忽略
"ss": 0, // 忽略
"rp":"0", // 该交易实现盈亏
"V":"EXPIRE_TAKER", // 自成交防止模式
"pm":"OPPONENT", // 价格匹配模式
"gtd":0 // TIF为GTD的订单自动取消时间
}
}
当有新订单创建、订单有新成交或者新的状态变化时会推送此类事件
事件类型统一为 ORDER_TRADE_UPDATE
订单方向
- BUY 买入
- SELL 卖出
订单类型
- MARKET 市价单
- LIMIT 限价单
- STOP 止损单
- TAKE_PROFIT 止盈单
- LIQUIDATION 强平单
本次事件的具体执行类型
- NEW
- CANCELED 已撤
- CALCULATED 订单ADL或爆仓
- EXPIRED 订单失效
- TRADE 交易
- AMENDMENT 订单修改
订单状态
- NEW
- PARTIALLY_FILLED
- FILLED
- CANCELED
- EXPIRED
- EXPIRED_IN_MATCH
有效方式:
- GTC
- IOC
- FOK
- GTX
强平和ADL:
- 若用户因保证金不足发生强平:
c
为"autoclose-XXX",X
为"NEW"
- 若用户保证金充足但被ADL:
c
为“adl_autoclose”,X
为“NEW”
杠杆倍数等账户配置 更新推送
Payload:
{
"e":"ACCOUNT_CONFIG_UPDATE", // 事件类型
"E":1611646737479, // 事件时间
"T":1611646737476, // 撮合时间
"ac":{
"s":"BTCUSDT", // 交易对
"l":25 // 杠杆倍数
}
}
Or
{
"e":"ACCOUNT_CONFIG_UPDATE", // 事件类型
"E":1611646737479, // 事件时间
"T":1611646737476, // 撮合时间
"ai":{ // 用户账户配置
"j":true // 联合保证金状态
}
}
当账户配置发生变化时会推送此类事件类型统一为ACCOUNT_CONFIG_UPDATE
当交易对杠杆倍数发生变化时推送消息体会包含对象ac
表示交易对账户配置,其中s
代表具体的交易对,l
代表杠杆倍数
当用户联合保证金状态发生变化时推送消息体会包含对象ai
表示用户账户配置,其中j
代表用户联合保证金状态
策略交易 更新推送
Payload:
{
"e": "STRATEGY_UPDATE", // 事件类型
"T": 1669261797627, // 撮合时间
"E": 1669261797628, // 事件时间
"su": {
"si": 176054594, // 策略 ID
"st": "GRID", // 策略类型
"ss": "NEW", // 策略状态
"s": "BTCUSDT", // 交易对
"ut": 1669261797627, // 更新时间
"c": 8007 // opCode
}
}
STRATEGY_UPDATE
在策略交易创建、取消、失效等等时候更新。
策略状态
- NEW
- WORKING
- CANCELLED
- EXPIRED
opCode
- 8001: 策略参数更改
- 8002: 用户取消策略
- 8003: 用户手动新增或取消订单
- 8004: 达到 stop limit
- 8005: 用户仓位爆仓
- 8006: 已达最大可挂单数量
- 8007: 新增网格策略
- 8008: 保证金不足
- 8009: 价格超出范围
- 8010: 市场非交易状态
- 8011: 关仓失败,平仓单无法成交
- 8012: 超过最大可交易名目金额
- 8013: 不符合网格交易身份
- 8014: 不符合 Futures Trading Quantitative Rules,策略终止
- 8015: 无仓位或是仓位已经爆仓
网格 更新推送
Payload:
{
"e": "GRID_UPDATE", // 事件类型
"T": 1669262908216, // 撮合时间
"E": 1669262908218, // 事件时间
"gu": {
"si": 176057039, // 策略 ID
"st": "GRID", // 策略类型
"ss": "WORKING", // 策略状态
"s": "BTCUSDT", // 交易对
"r": "-0.00300716", // 已实现 PNL
"up": "16720", // 未配对均价
"uq": "-0.001", // 未配对数量
"uf": "-0.00300716", // 未配对手续费
"mp": "0.0", // 已配对 PNL
"ut": 1669262908197 // 更新时间
}
}
GRID_UPDATE
在网格子订单有部份或是完全成交时更新。
策略状态
- NEW
- WORKING
- CANCELLED
- EXPIRED
条件订单(TP/SL)触发后拒绝 更新推送
Payload:
{
"e":"CONDITIONAL_ORDER_TRIGGER_REJECT", // 事件类型
"E":1685517224945, // 事件时间
"T":1685517224955, // 撮合时间
"or":{
"s":"ETHUSDT", // 交易对
"i":155618472834, // 订单号
"r":"Due to the order could not be filled immediately, the FOK order has been rejected. The order will not be recorded in the order history", // 拒绝原因
}
}
CONDITIONAL_ORDER_TRIGGER_REJECT
在止盈止损单触发后被拒绝时推送
统一账户专业版
为了给币安合约用户提供更加优质的服务及提高用户的资金利用率,币安将推出统一账户专业版计划。该计划将以合约钱包、现货杠杆钱包的总资产作为保证金来计算。 关于经典统一帐户:币安经典统一帐户计划是一项跨资产保证金计划,支持超过 200 种有效的加密资产。 U本位合约、币本位合约以及杠杆钱包中支持的加密资产和头寸将作为有效的联合抵押品,以确定统一账户专业版的权益、保证金余额和维持保证金要求。
FAQ: 币安合约统一账户专业版总览
仅对特定用户开放此功能,详情:加入统一账户专业版计划
查询统一账户专业版账户信息 (USER_DATA)
响应:
{
"maxWithdrawAmountUSD": "1627523.32459208", //统一账户专业版以USD计价的最大可转出余额
"asset": "BTC", // 资产
"maxWithdrawAmount": "27.43689636", //忽略
}
GET /fapi/v1/pmAccountInfo
查询统一账户专业版当前账户信息
权重(IP): 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
asset | STRING | YES | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 最大可转出余额指可以转出到现货钱包到金额。
统一账户专业版推送
- Websocket的base url是: wss://fstream.binance.com/pm-classic
- 订阅账户数据流的stream名称为 /ws/
- 连接样例:
wss://fstream.binance.com/pm-classic/ws/XaEAKTsQSRLZAGH9tuIu37plSRsdjmlAVBoNYPUITlTAko1WI22PgmBMpI1rS8Yh
账户风险状态变动
Payload:
{
"e":"riskLevelChange",
"E":1587727187525,
"u":"1.99999999",
"s":"MARGIN_CALL",
"eq":"30.23416728",
"ae":"30.23416728",
"m":"15.11708371"
}
当用户账户的风险状态变化时,该时间被推出。
该消息仅作为风控参考,不作为投资建议。
RISK_LEVEL_CHANGE
包含以下类型:MARGIN_CALL
, SUPPLY_MARGIN
, REDUCE_ONLY
, FORCE_LIQUIDATION
高波动率市场下,用户仓位可能在事件推出时被爆仓
WebSocket API
下单 (TRADE)
请求
{
"id": "3f7df6e3-2df4-44b9-9919-d2f38f90a99a",
"method": "order.place",
"params": {
"apiKey": "HMOchcfii9ZRZnhjp2XjGXhsOBd6msAhKz9joQaWwZ7arcJTlD2hGPHQj1lGdTjR",
"positionSide": "BOTH",
"price": "43187.00",
"quantity": 0.1,
"side": "BUY",
"symbol": "BTCUSDT",
"timeInForce": "GTC",
"timestamp": 1702555533821,
"type": "LIMIT",
"signature": "0f04368b2d22aafd0ggc8809ea34297eff602272917b5f01267db4efbc1c9422"
}
}
响应:
{
"id": "3f7df6e3-2df4-44b9-9919-d2f38f90a99a",
"status": 200,
"result": {
"orderId": 325078477,
"symbol": "BTCUSDT",
"status": "NEW",
"clientOrderId": "iCXL1BywlBaf2sesNUrVl3",
"price": "43187.00",
"avgPrice": "0.00",
"origQty": "0.100",
"executedQty": "0.000",
"cumQty": "0.000",
"cumQuote": "0.00000",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "BUY",
"positionSide": "BOTH",
"stopPrice": "0.00",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"priceMatch": "NONE",
"selfTradePreventionMode": "NONE",
"goodTillDate": 0,
"updateTime": 1702555534435
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 300,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 1
}
]
}
下新订单
权重: 0
方式:
order.place
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
side | ENUM | YES | 买卖方向 SELL , BUY |
positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH ;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
type | ENUM | YES | 订单类型 LIMIT , MARKET , STOP , TAKE_PROFIT , STOP_MARKET , TAKE_PROFIT_MARKET , TRAILING_STOP_MARKET |
reduceOnly | STRING | NO | true , false ; 非双开模式下默认false ;双开模式下不接受此参数; 使用closePosition 不支持此参数。 |
quantity | DECIMAL | NO | 下单数量,使用closePosition 不支持此参数。 |
price | DECIMAL | NO | 委托价格 |
newClientOrderId | STRING | NO | 用户自定义的订单号,不可以重复出现在挂单中。如空缺系统会自动赋值。必须满足正则规则 ^[\.A-Z\:/a-z0-9_-]{1,36}$ |
stopPrice | DECIMAL | NO | 触发价, 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
closePosition | STRING | NO | true , false ;触发后全部平仓,仅支持STOP_MARKET 和TAKE_PROFIT_MARKET ;不与quantity 合用;自带只平仓效果,不与reduceOnly 合用 |
activationPrice | DECIMAL | NO | 追踪止损激活价格,仅TRAILING_STOP_MARKET 需要此参数, 默认为下单当前市场价格(支持不同workingType ) |
callbackRate | DECIMAL | NO | 追踪止损回调比例,可取值范围[0.1, 10],其中 1代表1% ,仅TRAILING_STOP_MARKET 需要此参数 |
timeInForce | ENUM | NO | 有效方法 |
workingType | ENUM | NO | stopPrice 触发类型: MARK_PRICE (标记价格), CONTRACT_PRICE (合约最新价). 默认 CONTRACT_PRICE |
priceProtect | STRING | NO | 条件单触发保护:"TRUE","FALSE", 默认"FALSE". 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
newOrderRespType | ENUM | NO | "ACK", "RESULT", 默认 "ACK" |
symbol | STRING | YES | 交易对 |
priceMatch | ENUM | NO | OPPONENT / OPPONENT_5 / OPPONENT_10 / OPPONENT_20 /QUEUE / QUEUE_5 / QUEUE_10 / QUEUE_20 ;不能与price同时传 |
selfTradePreventionMode | ENUM | NO | NONE / EXPIRE_TAKER / EXPIRE_MAKER / EXPIRE_BOTH ; 默认NONE |
goodTillDate | LONG | NO | TIF为GTD时订单的自动取消时间, 当timeInforce 为GTD 时必传;传入的时间戳仅保留秒级精度,毫秒级部分会被自动忽略,时间戳需大于当前时间+600s且小于253402300799000 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
根据 order type
的不同,某些参数强制要求,具体如下:
Type | 强制要求的参数 |
---|---|
LIMIT |
timeInForce , quantity , price |
MARKET |
quantity |
STOP , TAKE_PROFIT |
quantity , price , stopPrice |
STOP_MARKET , TAKE_PROFIT_MARKET |
stopPrice |
TRAILING_STOP_MARKET |
quantity ,callbackRate |
条件单的触发必须:
- 如果订单参数
priceProtect
为true:- 达到触发价时,
MARK_PRICE
(标记价格)与CONTRACT_PRICE
(合约最新价)之间的价差不能超过改symbol触发保护阈值 - 触发保护阈值请参考接口
GET /fapi/v1/exchangeInfo
返回内容相应symbol中"triggerProtect"字段
- 达到触发价时,
STOP
,STOP_MARKET
止损单:- 买入: 最新合约价格/标记价格高于等于触发价
stopPrice
- 卖出: 最新合约价格/标记价格低于等于触发价
stopPrice
- 买入: 最新合约价格/标记价格高于等于触发价
TAKE_PROFIT
,TAKE_PROFIT_MARKET
止盈单:- 买入: 最新合约价格/标记价格低于等于触发价
stopPrice
- 卖出: 最新合约价格/标记价格高于等于触发价
stopPrice
- 买入: 最新合约价格/标记价格低于等于触发价
TRAILING_STOP_MARKET
跟踪止损单:- 买入: 当合约价格/标记价格区间最低价格低于激活价格
activationPrice
,且最新合约价格/标记价高于等于最低价设定回调幅度。 - 卖出: 当合约价格/标记价格区间最高价格高于激活价格
activationPrice
,且最新合约价格/标记价低于等于最高价设定回调幅度。
- 买入: 当合约价格/标记价格区间最低价格低于激活价格
- 如果订单参数
TRAILING_STOP_MARKET
跟踪止损单如果遇到报错{"code": -2021, "msg": "Order would immediately trigger."}
表示订单不满足以下条件:- 买入: 指定的
activationPrice
必须小于 latest price - 卖出: 指定的
activationPrice
必须大于 latest price
- 买入: 指定的
newOrderRespType
如果传RESULT
:MARKET
订单将直接返回成交结果;- 配合使用特殊
timeInForce
的LIMIT
订单将直接返回成交或过期拒绝结果。
STOP_MARKET
,TAKE_PROFIT_MARKET
配合closePosition
=true
:- 条件单触发依照上述条件单触发逻辑
- 条件触发后,平掉当时持有所有多头仓位(若为卖单)或当时持有所有空头仓位(若为买单)
- 不支持
quantity
参数 - 自带只平仓属性,不支持
reduceOnly
参数 - 双开模式下,
LONG
方向上不支持BUY
;SHORT
方向上不支持SELL
selfTradePreventionMode
仅在timeInForce
为IOC
或GTC
或GTD
时生效.极端行情时,
timeInForce
为GTD
的订单自动取消可能有一定延迟
撤销订单 (TRADE)
请求
{
"id": "5633b6a2-90a9-4192-83e7-925c90b6a2fd",
"method": "order.cancel",
"params": {
"apiKey": "HsOehcfih8ZRxnhjp2XjGXhsOBd6msAhKz9joQaWwZ7arcJTlD2hGOGQj1lGdTjR",
"orderId": 283194212,
"symbol": "BTCUSDT",
"timestamp": 1703439070722,
"signature": "b09c49815b4e3f1f6098cd9fbe26a933a9af79803deaaaae03c29f719c08a8a8"
}
}
响应:
{
"id": "5633b6a2-90a9-4192-83e7-925c90b6a2fd",
"status": 200,
"result": {
"clientOrderId": "myOrder1",
"cumQty": "0",
"cumQuote": "0",
"executedQty": "0",
"orderId": 283194212,
"origQty": "11",
"origType": "TRAILING_STOP_MARKET",
"price": "0",
"reduceOnly": false,
"side": "BUY",
"positionSide": "SHORT",
"status": "CANCELED",
"stopPrice": "9300",
"closePosition": false,
"symbol": "BTCUSDT",
"timeInForce": "GTC",
"type": "TRAILING_STOP_MARKET",
"activatePrice": "9020",
"priceRate": "0.3",
"updateTime": 1571110484038,
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"priceMatch": "NONE",
"selfTradePreventionMode": "NONE",
"goodTillDate": 0
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 1
}
]
}
取消订单
权重: 1
方式:
order.cancel
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderId
与origClientOrderId
必须至少发送一个
修改订单 (TRADE)
请求
{
"id": "c8c271ba-de70-479e-870c-e64951c753d9",
"method": "order.modify",
"params": {
"apiKey": "HMOchcfiT9ZRZnhjp2XjGXhsOBd6msAhKz9joQaWwZ7arcJTlD2hGPHQj1lGdTjR",
"orderId": 328971409,
"origType": "LIMIT",
"positionSide": "SHORT",
"price": "43769.1",
"priceMatch": "NONE",
"quantity": "0.11",
"side": "SELL",
"symbol": "BTCUSDT",
"timestamp": 1703426755754,
"signature": "d30c9f0736a307f5a9988d4a40b688662d18324b17367d51421da5484e835923"
}
}
响应:
{
"id": "c8c271ba-de70-479e-870c-e64951c753d9",
"status": 200,
"result": {
"orderId": 328971409,
"symbol": "BTCUSDT",
"status": "NEW",
"clientOrderId": "xGHfltUMExx0TbQstQQfRX",
"price": "43769.10",
"avgPrice": "0.00",
"origQty": "0.110",
"executedQty": "0.000",
"cumQty": "0.000",
"cumQuote": "0.00000",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "SELL",
"positionSide": "SHORT",
"stopPrice": "0.00",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"priceMatch": "NONE",
"selfTradePreventionMode": "NONE",
"goodTillDate": 0,
"updateTime": 1703426756190
},
"rateLimits": [
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 300,
"count": 1
},
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200,
"count": 1
},
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 1
}
]
}
修改订单功能,当前只支持限价(LIMIT)订单修改,修改后会在撮合队列里重新排序
权重: 10s order rate limit(X-MBX-ORDER-COUNT-10S)为1 1min order rate limit(X-MBX-ORDER-COUNT-1M)为1 IP rate limit(x-mbx-used-weight-1m)为1
方式:
order.modify
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
symbol | STRING | YES | 交易对 |
side | ENUM | YES | 买卖方向 SELL , BUY ; side 需要和原订单相同 |
quantity | DECIMAL | YES | 下单数量,使用closePosition 不支持此参数。 |
price | DECIMAL | YES | 委托价格 |
priceMatch | ENUM | NO | OPPONENT / OPPONENT_5 / OPPONENT_10 / OPPONENT_20 /QUEUE / QUEUE_5 / QUEUE_10 / QUEUE_20 ;不能与price同时传 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderId
与origClientOrderId
必须至少发送一个,同时发送则以 order id为准quantity
与price
均必须发送,这点和 dapi 修改订单不同- 当新订单的
quantity
或price
不满足PRICE_FILTER / PERCENT_FILTER / LOT_SIZE限制,修改会被拒绝,原订单依旧被保留 - 订单会在下列情况下被取消:
- 原订单被部分执行且新订单
quantity
<=executedQty
- 原订单是
GTX
,新订单的价格会导致订单立刻执行
- 原订单被部分执行且新订单
- 同一订单修改次数最多10000次
- 改单会保留该单原有的
selfTradePreventionMode
查询订单 (USER_DATA)
请求
{
"id": "0ce5d070-a5e5-4ff2-b57f-1556741a4204",
"method": "order.status",
"params": {
"apiKey": "HMOchcfii9ZRZnhjp2XjGXhsOBd6msAhKz9joQaWwZ7arcJTlD2hGPHQj1lGdTjR",
"orderId": 328999071,
"symbol": "BTCUSDT",
"timestamp": 1703441060152,
"signature": "ba48184fc38a71d03d2b5435bd67c1206e3191e989fe99bda1bc643a880dfdbf"
}
}
响应:
{
"id": "0ce5d070-a5e5-4ff2-b57f-1556741a4204",
"status": 200,
"result": {
"orderId": 328999071,
"symbol": "BTCUSDT",
"status": "NEW",
"clientOrderId": "bK2CASGXToGAKVsePruSCs",
"price": "43634.50",
"avgPrice": "0.00",
"origQty": "0.010",
"executedQty": "0.000",
"cumQuote": "0.00000",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "BUY",
"positionSide": "BOTH",
"stopPrice": "0.00",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"priceMatch": "NONE",
"selfTradePreventionMode": "NONE",
"goodTillDate": 0,
"time": 1703441059890,
"updateTime": 1703441059890
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 6
}
]
}
查询订单状态
- 请注意,如果订单满足如下条件,不会被查询到:
- 订单的最终状态为
CANCELED
或者EXPIRED
并且 订单没有任何的成交记录 并且 订单生成时间 + 3天 < 当前时间 - 订单创建时间 + 90天 < 当前时间
- 订单的最终状态为
方式:
order.status
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意:
- 至少需要发送
orderId
与origClientOrderId
中的一个 orderId
在symbol
维度是自增的
账户信息V2 (USER_DATA)
请求
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"method": "v2/account.status",
"params": {
"apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
"timestamp": 1702620814781,
"signature": "6bb98ef84170c70ba3d01f44261bfdf50fef374e551e590de22b5c3b729b1d8c"
}
}
响应:
单资产模式
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result": {
"feeTier": 0, // 手续费等级
"canTrade": true, // 是否可以交易
"canDeposit": true, // 是否可以入金
"canWithdraw": true, // 是否可以出金
"updateTime": 0, // 保留字段,请忽略
"multiAssetsMargin": false,
"tradeGroupId": -1,
"totalInitialMargin": "0.00000000", // 当前所需起始保证金总额(存在逐仓请忽略), 仅计算usdt资产
"totalMaintMargin": "0.00000000", // 维持保证金总额, 仅计算usdt资产
"totalWalletBalance": "23.72469206", // 账户总余额, 仅计算usdt资产
"totalUnrealizedProfit": "0.00000000", // 持仓未实现盈亏总额, 仅计算usdt资产
"totalMarginBalance": "23.72469206", // 保证金总余额, 仅计算usdt资产
"totalPositionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalOpenOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalCrossWalletBalance": "23.72469206", // 全仓账户余额, 仅计算usdt资产
"totalCrossUnPnl": "0.00000000", // 全仓持仓未实现盈亏总额, 仅计算usdt资产
"availableBalance": "23.72469206", // 可用余额, 仅计算usdt资产
"maxWithdrawAmount": "23.72469206" // 最大可转出余额, 仅计算usdt资产
"assets": [
{
"asset": "USDT", //资产
"walletBalance": "23.72469206", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "126.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1625474304765 //更新时间
},
{
"asset": "BUSD", //资产
"walletBalance": "103.12345678", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "103.12345678", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "103.12345678", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "126.72469206", // 可用余额
"maxWithdrawAmount": "103.12345678", // 最大可转出余额
"marginAvailable": true, // 否可用作联合保证金
"updateTime": 0 // 更新时间
}
],
"positions": [ // 头寸,将返回所有市场symbol。
//根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"initialMargin": "0", // 当前所需起始保证金(基于最新标记价格)
"maintMargin": "0", //维持保证金
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionInitialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0", // 当前挂单所需起始保证金(基于最新标记价格)
"leverage": "100", // 杠杆倍率
"isolated": true, // 是否是逐仓模式
"entryPrice": "0.00000", // 持仓成本价
"maxNotional": "250000", // 当前杠杆下用户可用的最大名义价值
"bidNotional": "0", // 买单净值,忽略
"askNotional": "0", // 卖单净值,忽略
"positionSide": "BOTH", // 持仓方向
"positionAmt": "0", // 持仓数量
"updateTime": 0 // 更新时间
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
多资产模式
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result": {
"totalInitialMargin": "0.00000000", // 当前所需起始保证金总额(存在逐仓请忽略), 仅计算usdt资产positions), only for USDT asset
"totalMaintMargin": "0.00000000", // 维持保证金总额, 仅计算usdt资产
"totalWalletBalance": "103.12345678", // 账户总余额, 仅计算usdt资产
"totalUnrealizedProfit": "0.00000000", // 持仓未实现盈亏总额, 仅计算usdt资产
"totalMarginBalance": "103.12345678", // 保证金总余额, 仅计算usdt资产
"totalPositionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalOpenOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalCrossWalletBalance": "103.12345678", // 全仓账户余额, 仅计算usdt资产
"totalCrossUnPnl": "0.00000000", // 全仓持仓未实现盈亏总额, 仅计算usdt资产
"availableBalance": "103.12345678", // 可用余额, 仅计算usdt资产
"maxWithdrawAmount": "103.12345678" // 最大可转出余额, 仅计算usdt资产
"assets": [
{
"asset": "USDT", // 资产
"walletBalance": "23.72469206", // 余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", // 全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"updateTime": 1625474304765 // 更新时间
},
{
"asset": "USDC",
"walletBalance": "103.12345678",
"unrealizedProfit": "0.00000000",
"marginBalance": "103.12345678",
"maintMargin": "0.00000000",
"initialMargin": "0.00000000",
"positionInitialMargin": "0.00000000",
"openOrderInitialMargin": "0.00000000",
"crossWalletBalance": "103.12345678",
"crossUnPnl": "0.00000000"
"availableBalance": "126.72469206",
"maxWithdrawAmount": "103.12345678",
"updateTime": 1625474304765
}
],
"positions": [ // 仅有仓位或挂单的交易对会被返回
// 根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"positionSide": "BOTH", // 持仓方向
"positionAmt": "1.000", // 持仓数量
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"isolatedMargin": "0.00000000",
"notional": "0",
"isolatedWallet": "0",
"initialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"maintMargin": "0", // 当前杠杆下用户可用的最大名义价值
"updateTime": 0 // 更新时间
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
多资产模式
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result": {
"totalInitialMargin": "0.00000000", // 以USD计价的所需起始保证金总额
"totalMaintMargin": "0.00000000", // 以USD计价的维持保证金总额
"totalWalletBalance": "126.72469206", // 以USD计价的账户总余额
"totalUnrealizedProfit": "0.00000000", // 以USD计价的持仓未实现盈亏总额
"totalMarginBalance": "126.72469206", // 以USD计价的保证金总余额
"totalPositionInitialMargin": "0.00000000", // 以USD计价的持仓所需起始保证金(基于最新标记价格)
"totalOpenOrderInitialMargin": "0.00000000", // 以USD计价的当前挂单所需起始保证金(基于最新标记价格)
"totalCrossWalletBalance": "126.72469206", // 以USD计价的全仓账户余额
"totalCrossUnPnl": "0.00000000", // 以USD计价的全仓持仓未实现盈亏总额
"availableBalance": "126.72469206", // 以USD计价的可用余额
"maxWithdrawAmount": "126.72469206" // 以USD计价的最大可转出余额
"assets": [
{
"asset": "USDT", // 资产
"walletBalance": "23.72469206", // 余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", // 全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"updateTime": 1625474304765 // 更新时间
},
{
"asset": "USDC",
"walletBalance": "103.12345678",
"unrealizedProfit": "0.00000000",
"marginBalance": "103.12345678",
"maintMargin": "0.00000000",
"initialMargin": "0.00000000",
"positionInitialMargin": "0.00000000",
"openOrderInitialMargin": "0.00000000",
"crossWalletBalance": "103.12345678",
"crossUnPnl": "0.00000000"
"availableBalance": "126.72469206",
"maxWithdrawAmount": "103.12345678",
"updateTime": 1625474304765
}
],
"positions": [ // 仅有仓位或挂单的交易对会被返回
// 根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"positionSide": "BOTH", // 持仓方向
"positionAmt": "1.000", // 持仓数量
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"isolatedMargin": "0.00000000",
"notional": "0",
"isolatedWallet": "0",
"initialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"maintMargin": "0", // 当前杠杆下用户可用的最大名义价值
"updateTime": 0 // 更新时间
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
现有账户信息。 用户在单资产模式和多资产模式下会看到不同结果,响应部分的注释解释了两种模式下的不同。
权重: 5
方式:
v2/account.status
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
账户信息 (USER_DATA)
请求
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"method": "account.status",
"params": {
"apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
"timestamp": 1702620814781,
"signature": "6bb98ef84170c70ba3d01f44261bfdf50fef374e551e590de22b5c3b729b1d8c"
}
}
响应:
单资产模式
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result": {
"feeTier": 0, // 手续费等级
"canTrade": true, // 是否可以交易
"canDeposit": true, // 是否可以入金
"canWithdraw": true, // 是否可以出金
"updateTime": 0, // 保留字段,请忽略
"multiAssetsMargin": false,
"tradeGroupId": -1,
"totalInitialMargin": "0.00000000", // 当前所需起始保证金总额(存在逐仓请忽略), 仅计算usdt资产
"totalMaintMargin": "0.00000000", // 维持保证金总额, 仅计算usdt资产
"totalWalletBalance": "23.72469206", // 账户总余额, 仅计算usdt资产
"totalUnrealizedProfit": "0.00000000", // 持仓未实现盈亏总额, 仅计算usdt资产
"totalMarginBalance": "23.72469206", // 保证金总余额, 仅计算usdt资产
"totalPositionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalOpenOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalCrossWalletBalance": "23.72469206", // 全仓账户余额, 仅计算usdt资产
"totalCrossUnPnl": "0.00000000", // 全仓持仓未实现盈亏总额, 仅计算usdt资产
"availableBalance": "23.72469206", // 可用余额, 仅计算usdt资产
"maxWithdrawAmount": "23.72469206" // 最大可转出余额, 仅计算usdt资产
"assets": [
{
"asset": "USDT", //资产
"walletBalance": "23.72469206", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "126.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1625474304765 //更新时间
},
{
"asset": "BUSD", //资产
"walletBalance": "103.12345678", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "103.12345678", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "103.12345678", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "126.72469206", // 可用余额
"maxWithdrawAmount": "103.12345678", // 最大可转出余额
"marginAvailable": true, // 否可用作联合保证金
"updateTime": 0 // 更新时间
}
],
"positions": [ // 头寸,将返回所有市场symbol。
//根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"initialMargin": "0", // 当前所需起始保证金(基于最新标记价格)
"maintMargin": "0", //维持保证金
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionInitialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0", // 当前挂单所需起始保证金(基于最新标记价格)
"leverage": "100", // 杠杆倍率
"isolated": true, // 是否是逐仓模式
"entryPrice": "0.00000", // 持仓成本价
"maxNotional": "250000", // 当前杠杆下用户可用的最大名义价值
"bidNotional": "0", // 买单净值,忽略
"askNotional": "0", // 卖单净值,忽略
"positionSide": "BOTH", // 持仓方向
"positionAmt": "0", // 持仓数量
"updateTime": 0 // 更新时间
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
多资产模式
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result": {
"feeTier": 0, // 手续费等级
"canTrade": true, // 是否可以交易
"canDeposit": true, // 是否可以入金
"canWithdraw": true, // 是否可以出金
"updateTime": 0, // 保留字段,请忽略
"multiAssetsMargin": true,
"tradeGroupId": -1,
"totalInitialMargin": "0.00000000", // 以USD计价的所需起始保证金总额
"totalMaintMargin": "0.00000000", // 以USD计价的维持保证金总额
"totalWalletBalance": "126.72469206", // 以USD计价的账户总余额
"totalUnrealizedProfit": "0.00000000", // 以USD计价的持仓未实现盈亏总额
"totalMarginBalance": "126.72469206", // 以USD计价的保证金总余额
"totalPositionInitialMargin": "0.00000000", // 以USD计价的持仓所需起始保证金(基于最新标记价格)
"totalOpenOrderInitialMargin": "0.00000000", // 以USD计价的当前挂单所需起始保证金(基于最新标记价格)
"totalCrossWalletBalance": "126.72469206", // 以USD计价的全仓账户余额
"totalCrossUnPnl": "0.00000000", // 以USD计价的全仓持仓未实现盈亏总额
"availableBalance": "126.72469206", // 以USD计价的可用余额
"maxWithdrawAmount": "126.72469206" // 以USD计价的最大可转出余额
"assets": [
{
"asset": "USDT", //资产
"walletBalance": "23.72469206", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1625474304765 //更新时间
},
{
"asset": "BUSD", //资产
"walletBalance": "103.12345678", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "103.12345678", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "103.12345678", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "103.12345678", // 可用余额
"maxWithdrawAmount": "103.12345678", // 最大可转出余额
"marginAvailable": true, // 否可用作联合保证金
"updateTime": 0 // 更新时间
}
],
"positions": [ // 头寸,将返回所有市场symbol。
//根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"initialMargin": "0", // 当前所需起始保证金(基于最新标记价格)
"maintMargin": "0", //维持保证金
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionInitialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0", // 当前挂单所需起始保证金(基于最新标记价格)
"leverage": "100", // 杠杆倍率
"isolated": true, // 是否是逐仓模式
"entryPrice": "0.00000", // 持仓成本价
"breakEvenPrice": "0.0", // 持仓成本价
"maxNotional": "250000", // 当前杠杆下用户可用的最大名义价值
"bidNotional": "0", // 买单净值,忽略
"askNotional": "0", // 买单净值,忽略
"positionSide": "BOTH", // 持仓方向
"positionAmt": "0", // 持仓数量
"updateTime": 0 // 更新时间
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
现有账户信息。 用户在单资产模式和多资产模式下会看到不同结果,响应部分的注释解释了两种模式下的不同。
权重: 5
方式:
account.status
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
账户余额 (USER_DATA)
请求
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"method": "account.balance",
"params": {
"apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
"timestamp": 1702561978458,
"signature": "208bb94a26f99aa122b1319490ca9cb2798fccc81d9b6449521a26268d53217a"
}
}
响应:
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result": {
[
{
"accountAlias": "SgsR", // 账户唯一识别码
"asset": "USDT", // 资产
"balance": "122607.35137903", // 总余额
"crossWalletBalance": "23.72469206", // 全仓余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 下单可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1617939110373
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
Weight: 5
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
账户余额V2 (USER_DATA)
请求
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"method": "v2/account.balance",
"params": {
"apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
"timestamp": 1702561978458,
"signature": "208bb94a26f99aa122b1319490ca9cb2798fccc81d9b6449521a26268d53217a"
}
}
响应:
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result": {
[
{
"accountAlias": "SgsR", // 账户唯一识别码
"asset": "USDT", // 资产
"balance": "122607.35137903", // 总余额
"crossWalletBalance": "23.72469206", // 全仓余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 下单可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1617939110373
}
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
权重: 5
方式:
v2/account.status
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
用户持仓风险V2 (USER_DATA)
请求
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"method": "v2/account.position",
"params": {
"apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
"symbol": "BTCUSDT",
"timestamp": 1702920680303,
"signature": "31ab02a51a3989b66c29d40fcdf78216978a60afc6d8dc1c753ae49fa3164a2a"
}
}
响应:
单向持仓模式下:
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result":[
{
"symbol": "ADAUSDT",
"positionSide": "BOTH", // 持仓方向
"positionAmt": "30",
"entryPrice": "0.385",
"breakEvenPrice": "0.385077",
"markPrice": "0.41047590",
"unRealizedProfit": "0.76427700", // 持仓未实现盈亏
"liquidationPrice": "0",
"isolatedMargin": "0",
"notional": "12.31427700",
"marginAsset": "USDT",
"isolatedWallet": "0",
"initialMargin": "0.61571385", // 初始保证金
"maintMargin": "0.08004280", // 维持保证金
"positionInitialMargin": "0.61571385",// 仓位初始保证金
"openOrderInitialMargin": "0", // 订单初始保证金
"adl": 2,
"bidNotional": "0",
"askNotional": "0",
"updateTime": 1720736417660 // 更新时间
}
],
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
双向持仓模式下:
javascript { "id": "605a6d20-6588-4cb9-afa0-b0ab087507ba", "status": 200, "result": [ { "symbol": "ADAUSDT", "positionSide": "LONG", "positionAmt": "30", "entryPrice": "0.385", "breakEvenPrice": "0.385077", "markPrice": "0.41047590", "unRealizedProfit": "0.76427700", "liquidationPrice": "0", "isolatedMargin": "0", "notional": "12.31427700", "marginAsset": "USDT", "isolatedWallet": "0", "initialMargin": "0.61571385", "maintMargin": "0.08004280", "positionInitialMargin": "0.61571385", "openOrderInitialMargin": "0", "adl": 2, "bidNotional": "0", "askNotional": "0", "updateTime": 1720736417660 }, { "symbol": "COMPUSDT", "positionSide": "SHORT", "positionAmt": "-1.000", "entryPrice": "70.92841", "breakEvenPrice": "70.900038636", "markPrice": "49.72023376", "unRealizedProfit": "21.20817624", "liquidationPrice": "2260.56757210", "isolatedMargin": "0", "notional": "-49.72023376", "marginAsset": "USDT", "isolatedWallet": "0", "initialMargin": "2.48601168", "maintMargin": "0.49720233", "positionInitialMargin": "2.48601168", "openOrderInitialMargin": "0", "adl": 2, "bidNotional": "0", "askNotional": "0", "updateTime": 1708943511656 } ], "rateLimits": [ { "rateLimitType": "REQUEST_WEIGHT", "interval": "MINUTE", "intervalNum": 1, "limit": 2400, "count": 20 } ] }
权重: 5
方式:
v2/account.position
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意
请与账户推送信息ACCOUNT_UPDATE
配合使用,以满足您的及时性和准确性需求。
用户持仓风险 (USER_DATA)
请求
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"method": "account.position",
"params": {
"apiKey": "xTaDyrmvA9XT2oBHHjy39zyPzKCvMdtH3b9q4xadkAg2dNSJXQGCxzui26L823W2",
"symbol": "BTCUSDT",
"timestamp": 1702920680303,
"signature": "31ab02a51a3989b66c29d40fcdf78216978a60afc6d8dc1c753ae49fa3164a2a"
}
}
响应:
单向持仓模式下:
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result":[
{
"entryPrice": "0.00000", // 开仓均价
"breakEvenPrice": "0.0", // 盈亏平衡价
"marginType": "isolated", // 逐仓模式或全仓模式
"isAutoAddMargin": "false",
"isolatedMargin": "0.00000000", // 逐仓保证金
"leverage": "10", // 当前杠杆倍数
"liquidationPrice": "0", // 参考强平价格
"markPrice": "6679.50671178", // 当前标记价格
"maxNotionalValue": "20000000", // 当前杠杆倍数允许的名义价值上限
"positionAmt": "0.000", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"notional": "0",
"isolatedWallet": "0",
"symbol": "BTCUSDT", // 交易对
"unRealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionSide": "BOTH", // 持仓方向
"updateTime": 1625474304765 // 更新时间
}
],
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
双向持仓模式下:
{
"id": "605a6d20-6588-4cb9-afa0-b0ab087507ba",
"status": 200,
"result": [
{
"symbol": "BTCUSDT",
"positionAmt": "0.001",
"entryPrice": "22185.2",
"breakEvenPrice": "0.0",
"markPrice": "21123.05052574",
"unRealizedProfit": "-1.06214947",
"liquidationPrice": "19731.45529116",
"leverage": "4",
"maxNotionalValue": "100000000",
"marginType": "cross",
"isolatedMargin": "0.00000000",
"isAutoAddMargin": "false",
"positionSide": "LONG",
"notional": "21.12305052",
"isolatedWallet": "0",
"updateTime": 1655217461579
},
{
"symbol": "BTCUSDT",
"positionAmt": "0.000",
"entryPrice": "0.0",
"breakEvenPrice": "0.0",
"markPrice": "21123.05052574",
"unRealizedProfit": "0.00000000",
"liquidationPrice": "0",
"leverage": "4",
"maxNotionalValue": "100000000",
"marginType": "cross",
"isolatedMargin": "0.00000000",
"isAutoAddMargin": "false",
"positionSide": "SHORT",
"notional": "0",
"isolatedWallet": "0",
"updateTime": 0
}
],
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 20
}
]
}
权重: 5
方式:
account.position
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意
请与账户推送信息ACCOUNT_UPDATE
配合使用,以满足您的及时性和准确性需求。
深度信息
请求
{
"id": "51e2affb-0aba-4821-ba75-f2625006eb43",
"method": "depth",
"params": {
"symbol": "BTCUSDT"
}
}
响应:
{
"id": "51e2affb-0aba-4821-ba75-f2625006eb43",
"status": 200,
"result": {
"lastUpdateId": 1027024,
"E": 1589436922972, // 消息时间
"T": 1589436922959, // 撮合引擎时间
"bids": [ // 买单
[
"4.00000000", // 价格
"431.00000000" // 数量
]
],
"asks": [ // 卖单
[
"4.00000200", // 价格
"12.00000000" // 数量
]
]
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 5
}
]
}
获取有限档订单薄信息
方式:
depth
权重:
limit | 权重 |
---|---|
5, 10, 20, 50 | 2 |
100 | 5 |
500 | 10 |
1000 | 20 |
更新速率: 15ms
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
limit | INT | NO | 默认 500; 可选值:[5, 10, 20, 50, 100, 500, 1000] |
最新价格
请求
{
"id": "9d32157c-a556-4d27-9866-66760a174b57",
"method": "ticker.price",
"params": {
"symbol": "BTCUSDT"
}
}
响应:
{
"id": "9d32157c-a556-4d27-9866-66760a174b57",
"status": 200,
"result": {
"symbol": "BTCUSDT",
"price": "6000.01",
"time": 1589437530011
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 2
}
]
}
或(当不发送symbol)
{
"id": "9d32157c-a556-4d27-9866-66760a174b57",
"status": 200,
"result": [
{
"symbol": "BTCUSDT",
"price": "6000.01",
"time": 1589437530011
}
],
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 2
}
]
}
返回最近价格
权重:
* 单交易对1
* 无交易对2
方式:
ticker.price
更新速率: 实时
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
- 不发送交易对参数,则会返回所有交易对信息
当前最优挂单
请求
{
"id": "9d32157c-a556-4d27-9866-66760a174b57",
"method": "ticker.book",
"params": {
"symbol": "BTCUSDT"
}
}
响应:
{
"id": "9d32157c-a556-4d27-9866-66760a174b57",
"status": 200,
"result": {
"lastUpdateId": 1027024,
"symbol": "BTCUSDT", // 交易对
"bidPrice": "4.00000000", //最优买单价
"bidQty": "431.00000000", //挂单量
"askPrice": "4.00000200", //最优卖单价
"askQty": "9.00000000", //挂单量
"time": 1589437530011 // 撮合引擎时间
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 2
}
]
}
或(当不发送symbol)
{
"id": "9d32157c-a556-4d27-9866-66760a174b57",
"status": 200,
"result": [
{
"lastUpdateId": 1027024,
"symbol": "BTCUSDT", // 交易对
"bidPrice": "4.00000000", //最优买单价
"bidQty": "431.00000000", //挂单量
"askPrice": "4.00000200", //最优卖单价
"askQty": "9.00000000", //挂单量
"time": 1589437530011 // 撮合引擎时间
}
]
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 2
}
]
}
返回当前最优的挂单(最高买单,最低卖单)
权重:
* 单交易对2
* 无交易对5
方式:
ticker.book
更新速率: 实时
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
- 不发送交易对参数,则会返回所有交易对信息
生成listenKey (USER_STREAM)
请求
{
"id": "d3df8a61-98ea-4fe0-8f4e-0fcea5d418b0",
"method": "userDataStream.start",
"params": {
"apiKey": "vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A"
}
}
响应:
{
"id": "d3df8a61-98ea-4fe0-8f4e-0fcea5d418b0",
"status": 200,
"result": {
"listenKey": "xs0mRXdAKlIPDRFrlPcw0qI41Eh3ixNntmymGyhrhgqo7L6FuLaWArTD7RLP"
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 2
}
]
}
以下请求用于管理 用户信息推送订阅
创建一个新的user data stream,返回值为一个listenKey,即websocket订阅的stream名称。
注意: 订阅流回在60分钟内关闭如果没有定期请求userDataStream.ping
权重: 5
方式:
userDataStream.start
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
apiKey |
STRING | YES |
延长listenKey有效期 (USER_STREAM)
请求
{
"id": "815d5fce-0880-4287-a567-80badf004c74",
"method": "userDataStream.ping",
"params": {
"listenKey": "xs0mRXdAKlIPDRFrlPcw0qI41Eh3ixNntmymGyhrhgqo7L6FuLaWArTD7RLP",
"apiKey": "vmPUZE6mv9SD5VNHk9HlWFsOr9aLE2zvsw0MuIgwCIPy8atIco14y7Ju91duEh8A"
}
}
响应
{
"id": "815d5fce-0880-4287-a567-80badf004c74",
"status": 200,
"result": {
"listenKey": "3HBntNTepshgEdjIwSUIBgB9keLyOCg5qv3n6bYAtktG8ejcaW5HXz9Vx1JgIieg"
},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 2
}
]
}
保持用户数据流活跃。
即使你在 WebSocket Streams 上监听数据,用户数据流会在 60 分钟后自动关闭。为了保持流的开启,你需要定期使用 userDataStream.ping
请求发送 ping。
建议每 30 分钟发送一次 ping.
权重: 5
方式:
userDataStream.ping
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
listenKey |
STRING | YES | |
apiKey |
STRING | YES |
关闭listenKey (USER_STREAM)
请求
{
"id": "819e1b1b-8c06-485b-a13e-131326c69599",
"method": "userDataStream.stop",
"params": {
"listenKey": "xs0mRXdAKlIPDRFrlPcw0qI41Eh3ixNntmymGyhrhgqo7L6FuLaWArTD7RLP",
"apiKey": "vmPUZE6mv9SD5VNHk9HlWFsOr9aLE2zvsw0MuIgwCIPy8atIco14y7Ju91duEh8A"
}
}
响应
{
"id": "819e1b1b-8c06-485b-a13e-131326c69599",
"status": 200,
"result": {},
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 2400,
"count": 2
}
]
}
关闭账户数据流
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
listenKey |
STRING | YES | |
apiKey |
STRING | YES |
listenKey 过期推送
Payload:
{
"stream": "OfYGbUzi3PraNagEkdKuFwUHn48brFsItTdsuiIXrucEvD0rhRXZ7I6URWfE8YE8",
"data": {
"e": "listenKeyExpired", // 事件类型
"E": "1699596037418", // 事件时间
"listenKey": "OfYGbUzi3PraNagEkdKuFwUHn48brFsItTdsuiIXrucEvD0rhRXZ7I6URWfE8YE8"
}
}
当前连接使用的有效listenKey过期时,user data stream 将会推送此事件。
注意:
- 此事件与websocket连接中断没有必然联系
- 只有正在连接中的有效
listenKey
过期时才会收到此消息 - 收到此消息后user data stream将不再更新,直到用户使用新的有效的
listenKey
错误代码
error JSON payload:
{
"code":-1121,
"msg":"Invalid symbol."
}
错误由两部分组成:错误代码和消息。 代码是通用的,但是消息可能会有所不同。
10xx - 常规服务器或网络问题
-1000 UNKNOWN
- An unknown error occured while processing the request.
- 处理请求时发生未知错误。
-1001 DISCONNECTED
- Internal error; unable to process your request. Please try again.
- 内部错误; 无法处理您的请求。 请再试一次.
-1002 UNAUTHORIZED
- You are not authorized to execute this request.
- 您无权执行此请求。
-1003 TOO_MANY_REQUESTS
- Too many requests queued.
- 排队的请求过多。
- Too many requests; please use the websocket for live updates.
- 请求权重过多; 请使用websocket获取最新更新。
- Too many requests; current limit is %s requests per minute. Please use the websocket for live updates to avoid polling the API.
- 请求权重过多; 当前限制为每分钟%s请求权重。 请使用websocket进行实时更新,以避免轮询API。
- Way too many requests; IP banned until %s. Please use the websocket for live updates to avoid bans.
- 请求权重过多; IP被禁止,直到%s。 请使用websocket进行实时更新,以免被禁。
-1004 DUPLICATE_IP
- This IP is already on the white list
- IP地址已经在白名单
-1005 NO_SUCH_IP
- No such IP has been white listed
- 白名单上没有此IP地址
-1006 UNEXPECTED_RESP
- An unexpected response was received from the message bus. Execution status unknown.
- 从消息总线收到意外的响应。执行状态未知。
-1007 TIMEOUT
- Timeout waiting for response from backend server. Send status unknown; execution status unknown.
- 等待后端服务器响应超时。 发送状态未知; 执行状态未知。
-1008 SERVER_BUSY
- Server is currently overloaded with other requests. Please try again in a few minutes.
- 服务器响应超时。 请稍后重试
-1014 UNKNOWN_ORDER_COMPOSITION
- Unsupported order combination.
- 不支持当前的下单参数组合
-1015 TOO_MANY_ORDERS
- Too many new orders.
- 新订单太多。
- Too many new orders; current limit is %s orders per %s. * 新订单太多; 当前限制为每%s %s个订单。
-1016 SERVICE_SHUTTING_DOWN
- This service is no longer available.
- 该服务不可用。
-1020 UNSUPPORTED_OPERATION
- This operation is not supported.
- 不支持此操作。
-1021 INVALID_TIMESTAMP
- Timestamp for this request is outside of the recvWindow.
- 此请求的时间戳在recvWindow之外。
- Timestamp for this request was 1000ms ahead of the server's time. * 此请求的时间戳比服务器时间提前1000毫秒。
-1022 INVALID_SIGNATURE
- Signature for this request is not valid.
- 此请求的签名无效。
-1023 START_TIME_GREATER_THAN_END_TIME
- Start time is greater than end time.
- 参数里面的开始时间在结束时间之后
-1099 NOT_FOUND
- Not found, unauthenticated, or unauthorized.
11xx - Request issues
-1100 ILLEGAL_CHARS
- Illegal characters found in a parameter.
- 在参数中发现非法字符。
- Illegal characters found in parameter '%s'; legal range is '%s'.
- 在参数
%s
中发现非法字符; 合法范围是%s
。
-1101 TOO_MANY_PARAMETERS
- Too many parameters sent for this endpoint.
- 为此端点发送的参数太多。
- Too many parameters; expected '%s' and received '%s'.
- 参数太多;预期为
%s
并收到了%s
。 - Duplicate values for a parameter detected. * 检测到的参数值重复。
-1102 MANDATORY_PARAM_EMPTY_OR_MALFORMED
- A mandatory parameter was not sent, was empty/null, or malformed.
- 未发送强制性参数,该参数为空/空或格式错误。
- Mandatory parameter '%s' was not sent, was empty/null, or malformed.
* 强制参数
%s
未发送,为空/空或格式错误。 - Param '%s' or '%s' must be sent, but both were empty/null!
* 必须发送参数
%s
或%s
,但两者均为空!
-1103 UNKNOWN_PARAM
- An unknown parameter was sent.
- 发送了未知参数。
-1104 UNREAD_PARAMETERS
- Not all sent parameters were read.
- 并非所有发送的参数都被读取。
- Not all sent parameters were read; read '%s' parameter(s) but was sent '%s'.
- 并非所有发送的参数都被读取; 读取了
%s
参数,但被发送了%s
。
-1105 PARAM_EMPTY
- A parameter was empty.
- 参数为空。
- Parameter '%s' was empty.
- 参数
%s
为空。
-1106 PARAM_NOT_REQUIRED
- A parameter was sent when not required.
- 发送了不需要的参数。
- Parameter '%s' sent when not required.
- 发送了不需要参数
%s
。
-1108 BAD_ASSET
- Invalid asset.
- 资产不正确
-1109 BAD_ACCOUNT
- Invalid account.
- 非有效账户
-1110 BAD_INSTRUMENT_TYPE
- Invalid symbolType.
- 交易对不正确
-1111 BAD_PRECISION
- Precision is over the maximum defined for this asset.
- 精度超过为此资产定义的最大值。
-1112 NO_DEPTH
- No orders on book for symbol.
- 交易对没有挂单。
-1113 WITHDRAW_NOT_NEGATIVE
- Withdrawal amount must be negative.
- 提现数量需要为负
-1114 TIF_NOT_REQUIRED
- TimeInForce parameter sent when not required.
- 发送的
TimeInForce
参数不需要。
-1115 INVALID_TIF
- Invalid timeInForce.
- 无效的
timeInForce
-1116 INVALID_ORDER_TYPE
- Invalid orderType.
- 无效订单类型。
-1117 INVALID_SIDE
- Invalid side.
- 无效买卖方向。
-1118 EMPTY_NEW_CL_ORD_ID
- New client order ID was empty.
- 新的客户订单ID为空。
-1119 EMPTY_ORG_CL_ORD_ID
- Original client order ID was empty.
- 客户自定义的订单ID为空。
-1120 BAD_INTERVAL
- Invalid interval.
- 无效时间间隔。
-1121 BAD_SYMBOL
- Invalid symbol.
- 无效的交易对。
-1122 INVALID_SYMBOL_STATUS
- Invalid symbol status.
- 交易对状态不正确。
-1125 INVALID_LISTEN_KEY
- This listenKey does not exist.
- 此
listenKey
不存在。建议重新使用POST /fapi/v1/listenKey
生成listenKey
-1126 ASSET_NOT_SUPPORTED
- This asset is not supported.
- 不支持该资产
-1127 MORE_THAN_XX_HOURS
- Lookup interval is too big.
- 查询间隔太大。
- More than %s hours between startTime and endTime.
- 从开始时间到结束时间之间超过
%s
小时。
-1128 OPTIONAL_PARAMS_BAD_COMBO
- Combination of optional parameters invalid.
- 可选参数组合无效。
-1130 INVALID_PARAMETER
- Invalid data sent for a parameter.
- 发送的参数为无效数据。
- Data sent for parameter '%s' is not valid.
- 发送参数
%s
的数据无效。
-1136 INVALID_NEW_ORDER_RESP_TYPE
- Invalid newOrderRespType.
- 无效的 newOrderRespType。
20xx - Processing Issues
-2010 NEW_ORDER_REJECTED
- NEW_ORDER_REJECTED
- 新订单被拒绝
-2011 CANCEL_REJECTED
- CANCEL_REJECTED
- 取消订单被拒绝
-2012 CANCEL_ALL_FAIL
- Batch cancel failure.
- 批量取消失败
-2013 NO_SUCH_ORDER
- Order does not exist.
- 订单不存在。
-2014 BAD_API_KEY_FMT
- API-key format invalid.
- API-key 格式无效。
-2015 REJECTED_MBX_KEY
- Invalid API-key, IP, or permissions for action.
- 无效的API密钥,IP或操作权限。
-2016 NO_TRADING_WINDOW
- No trading window could be found for the symbol. Try ticker/24hrs instead.
- 找不到该交易对的交易窗口。 尝试改为24小时自动报价。
-2017 API_KEYS_LOCKED
- API Keys are locked on this account.
- API key被上锁
-2018 BALANCE_NOT_SUFFICIENT
- Balance is insufficient.
- 余额不足
-2019 MARGIN_NOT_SUFFICIEN
- Margin is insufficient.
- 杠杆账户余额不足
-2020 UNABLE_TO_FILL
- Unable to fill.
- 无法成交
-2021 ORDER_WOULD_IMMEDIATELY_TRIGGER
- Order would immediately trigger.
- 订单可能被立刻触发
-2022 REDUCE_ONLY_REJECT
- ReduceOnly Order is rejected.
ReduceOnly
订单被拒绝
-2023 USER_IN_LIQUIDATION
- User in liquidation mode now.
- 用户正处于被强平模式
-2024 POSITION_NOT_SUFFICIENT
- Position is not sufficient.
- 持仓不足
-2025 MAX_OPEN_ORDER_EXCEEDED
- Reach max open order limit.
- 挂单量达到上限
-2026 REDUCE_ONLY_ORDER_TYPE_NOT_SUPPORTED
- This OrderType is not supported when reduceOnly.
- 当前订单类型不支持
reduceOnly
-2027 MAX_LEVERAGE_RATIO
- Exceeded the maximum allowable position at current leverage.
- 挂单或持仓超出当前初始杠杆下的最大值
-2028 MIN_LEVERAGE_RATIO
- Leverage is smaller than permitted: insufficient margin balance.
- 调整初始杠杆过低,导致可用余额不足
40xx - Filters and other Issues
-4000 INVALID_ORDER_STATUS
- Invalid order status.
- 订单状态不正确
-4001 PRICE_LESS_THAN_ZERO
- Price less than 0.
- 价格小于0
-4002 PRICE_GREATER_THAN_MAX_PRICE
- Price greater than max price.
- 价格超过最大值
-4003 QTY_LESS_THAN_ZERO
- Quantity less than zero.
- 数量小于0
-4004 QTY_LESS_THAN_MIN_QTY
- Quantity less than min quantity.
- 数量小于最小值
-4005 QTY_GREATER_THAN_MAX_QTY
- Quantity greater than max quantity.
- 数量大于最大值
-4006 STOP_PRICE_LESS_THAN_ZERO
- Stop price less than zero.
- 触发价小于最小值
-4007 STOP_PRICE_GREATER_THAN_MAX_PRICE
- Stop price greater than max price.
- 触发价大于最大值
-4008 TICK_SIZE_LESS_THAN_ZERO
- Tick size less than zero.
- 价格精度小于0
-4009 MAX_PRICE_LESS_THAN_MIN_PRICE
- Max price less than min price.
- 最大价格小于最小价格
-4010 MAX_QTY_LESS_THAN_MIN_QTY
- Max qty less than min qty.
- 最大数量小于最小数量
-4011 STEP_SIZE_LESS_THAN_ZERO
- Step size less than zero.
- 步进值小于0
-4012 MAX_NUM_ORDERS_LESS_THAN_ZERO
- Max num orders less than zero.
- 最大订单量小于0
-4013 PRICE_LESS_THAN_MIN_PRICE
- Price less than min price.
- 价格小于最小价格
-4014 PRICE_NOT_INCREASED_BY_TICK_SIZE
- Price not increased by tick size.
- 价格增量不是价格精度的倍数。
-4015 INVALID_CL_ORD_ID_LEN
- Client order id is not valid.
- 客户订单ID有误。
- Client order id length should not be more than 36 chars
- 客户订单ID长度应该不多于36字符
-4016 PRICE_HIGHTER_THAN_MULTIPLIER_UP
- Price is higher than mark price multiplier cap.
-4017 MULTIPLIER_UP_LESS_THAN_ZERO
- Multiplier up less than zero.
- 价格上限小于0
-4018 MULTIPLIER_DOWN_LESS_THAN_ZERO
- Multiplier down less than zero.
- 价格下限小于0
-4019 COMPOSITE_SCALE_OVERFLOW
- Composite scale too large.
-4020 TARGET_STRATEGY_INVALID
- Target strategy invalid for orderType '%s',reduceOnly '%b'.
- 目标策略值不适合
%s
订单状态, 只减仓%b
。
-4021 INVALID_DEPTH_LIMIT
- Invalid depth limit.
- 深度信息的
limit
值不正确。 - '%s' is not valid depth limit.
%s
不是合理的深度信息的limit
值。
-4022 WRONG_MARKET_STATUS
- market status sent is not valid.
- 发送的市场状态不正确。
-4023 QTY_NOT_INCREASED_BY_STEP_SIZE
- Qty not increased by step size.
- 数量的递增值不是步进值的倍数。
-4024 PRICE_LOWER_THAN_MULTIPLIER_DOWN
- Price is lower than mark price multiplier floor.
-4025 MULTIPLIER_DECIMAL_LESS_THAN_ZERO
- Multiplier decimal less than zero.
-4026 COMMISSION_INVALID
- Commission invalid.
- 收益值不正确
%s
less than zero.%s
少于0%s
absolute value greater than%s
%s
绝对值大于%s
-4027 INVALID_ACCOUNT_TYPE
- Invalid account type.
- 账户类型不正确。
-4028 INVALID_LEVERAGE
- Invalid leverage
- 杠杆倍数不正确
- Leverage
%s
is not valid - 杠杆
%s
不正确 - Leverage
%s
already exist with%s
- 杠杆
%s
已经存在于%s
-4029 INVALID_TICK_SIZE_PRECISION
- Tick size precision is invalid.
- 价格精度小数点位数不正确。
-4030 INVALID_STEP_SIZE_PRECISION
- Step size precision is invalid.
- 步进值小数点位数不正确。
-4031 INVALID_WORKING_TYPE
- Invalid parameter working type
- 不正确的参数类型
- Invalid parameter working type:
%s
- 不正确的参数类型:
%s
-4032 EXCEED_MAX_CANCEL_ORDER_SIZE
- Exceed maximum cancel order size.
- 超过可以取消的最大订单量。
- Invalid parameter working type:
%s
- 不正确的参数类型:
%s
-4033 INSURANCE_ACCOUNT_NOT_FOUND
- Insurance account not found.
- 风险保障基金账号没找到。
-4044 INVALID_BALANCE_TYPE
- Balance Type is invalid.
- 余额类型不正确。
-4045 MAX_STOP_ORDER_EXCEEDED
- Reach max stop order limit.
- 达到止损单的上限。
-4046 NO_NEED_TO_CHANGE_MARGIN_TYPE
- No need to change margin type.
- 不需要切换仓位模式。
-4047 THERE_EXISTS_OPEN_ORDERS
- Margin type cannot be changed if there exists open orders.
- 如果有挂单,仓位模式不能切换。
-4048 THERE_EXISTS_QUANTITY
- Margin type cannot be changed if there exists position.
- 如果有仓位,仓位模式不能切换。
-4049 ADD_ISOLATED_MARGIN_REJECT
- Add margin only support for isolated position.
-4050 CROSS_BALANCE_INSUFFICIENT
- Cross balance insufficient.
- 全仓余额不足。
-4051 ISOLATED_BALANCE_INSUFFICIENT
- Isolated balance insufficient.
- 逐仓余额不足。
-4052 NO_NEED_TO_CHANGE_AUTO_ADD_MARGIN
- No need to change auto add margin.
-4053 AUTO_ADD_CROSSED_MARGIN_REJECT
- Auto add margin only support for isolated position.
- 自动增加保证金只适用于逐仓。
-4054 ADD_ISOLATED_MARGIN_NO_POSITION_REJECT
- Cannot add position margin: position is 0.
- 不能增加逐仓保证金: 持仓为0
-4055 AMOUNT_MUST_BE_POSITIVE
- Amount must be positive.
- 数量必须是正整数
-4056 INVALID_API_KEY_TYPE
- Invalid api key type.
- API key的类型不正确
-4057 INVALID_RSA_PUBLIC_KEY
- Invalid api public key
- API key不正确
-4058 MAX_PRICE_TOO_LARGE
- maxPrice and priceDecimal too large,please check.
- maxPrice和priceDecimal太大,请检查。
-4059 NO_NEED_TO_CHANGE_POSITION_SIDE
- No need to change position side.
- 无需变更仓位方向
-4060 INVALID_POSITION_SIDE
- Invalid position side.
- 仓位方向不正确。
-4061 POSITION_SIDE_NOT_MATCH
- Order's position side does not match user's setting.
- 订单的持仓方向和用户设置不一致。
-4062 REDUCE_ONLY_CONFLICT
- Invalid or improper reduceOnly value.
- 仅减仓的设置不正确。
-4063 INVALID_OPTIONS_REQUEST_TYPE
- Invalid options request type
- 无效的期权请求类型
-4064 INVALID_OPTIONS_TIME_FRAME
- Invalid options time frame
- 无效的期权时间窗口
-4065 INVALID_OPTIONS_AMOUNT
- Invalid options amount
- 无效的期权数量
-4066 INVALID_OPTIONS_EVENT_TYPE
- Invalid options event type
- 无效的期权事件类型
-4067 POSITION_SIDE_CHANGE_EXISTS_OPEN_ORDERS
- Position side cannot be changed if there exists open orders.
- 如果有挂单,无法修改仓位方向。
-4068 POSITION_SIDE_CHANGE_EXISTS_QUANTITY
- Position side cannot be changed if there exists position.
- 如果有仓位, 无法修改仓位方向。
-4069 INVALID_OPTIONS_PREMIUM_FEE
- Invalid options premium fee
- 无效的期权费
-4070 INVALID_CL_OPTIONS_ID_LEN
- Client options id is not valid.
- 客户的期权ID不合法
- Client options id length should be less than 32 chars
- 客户的期权ID长度应该小于32个字符
-4071 INVALID_OPTIONS_DIRECTION
- Invalid options direction
- 期权的方向无效
-4072 OPTIONS_PREMIUM_NOT_UPDATE
- premium fee is not updated, reject order
- 期权费没有更新
-4073 OPTIONS_PREMIUM_INPUT_LESS_THAN_ZERO
- input premium fee is less than 0, reject order
- 输入的期权费小于0
-4074 OPTIONS_AMOUNT_BIGGER_THAN_UPPER
- Order amount is bigger than upper boundary or less than 0, reject order
-4075 OPTIONS_PREMIUM_OUTPUT_ZERO
- output premium fee is less than 0, reject order
-4076 OPTIONS_PREMIUM_TOO_DIFF
- original fee is too much higher than last fee
- 期权的费用比之前的费用高
-4077 OPTIONS_PREMIUM_REACH_LIMIT
- place order amount has reached to limit, reject order
- 下单的数量达到上限
-4078 OPTIONS_COMMON_ERROR
- options internal error
- 期权内部系统错误
-4079 INVALID_OPTIONS_ID
- invalid options id
- invalid options id: %s
- duplicate options id %d for user %d
- 期权ID无效
-4080 OPTIONS_USER_NOT_FOUND
- user not found
- user not found with id: %s
- 用户找不到
-4081 OPTIONS_NOT_FOUND
- options not found
- options not found with id: %s
- 期权找不到
-4082 INVALID_BATCH_PLACE_ORDER_SIZE
- Invalid number of batch place orders.
- Invalid number of batch place orders: %s
- 批量下单的数量不正确
-4083 PLACE_BATCH_ORDERS_FAIL
- Fail to place batch orders.
- 无法批量下单
-4084 UPCOMING_METHOD
- Method is not allowed currently. Upcoming soon.
- 方法不支持
-4085 INVALID_NOTIONAL_LIMIT_COEF
- Invalid notional limit coefficient
- 期权的有限系数不正确
-4086 INVALID_PRICE_SPREAD_THRESHOLD
- Invalid price spread threshold
- 无效的价差阀值
-4087 REDUCE_ONLY_ORDER_PERMISSION
- User can only place reduce only order
- 用户只能下仅减仓订单
-4088 NO_PLACE_ORDER_PERMISSION
- User can not place order currently
- 用户当前不能下单
-4104 INVALID_CONTRACT_TYPE
- Invalid contract type
- 无效的合约类型
-4114 INVALID_CLIENT_TRAN_ID_LEN
- clientTranId is not valid
- clientTranId不正确
- Client tran id length should be less than 64 chars
- 客户的tranId长度应该小于64个字符
-4115 DUPLICATED_CLIENT_TRAN_ID
- clientTranId is duplicated
- clientTranId重复
- Client tran id should be unique within 7 days
- 客户的tranId应在7天内唯一
-4118 REDUCE_ONLY_MARGIN_CHECK_FAILED
- ReduceOnly Order Failed. Please check your existing position and open orders
- 仅减仓订单失败。请检查现有的持仓和挂单
-4131 MARKET_ORDER_REJECT
- The counterparty's best price does not meet the PERCENT_PRICE filter limit
- 交易对手的最高价格未达到PERCENT_PRICE过滤器限制
-4135 INVALID_ACTIVATION_PRICE
- Invalid activation price
- 无效的激活价格
-4137 QUANTITY_EXISTS_WITH_CLOSE_POSITION
- Quantity must be zero with closePosition equals true
- 数量必须为0,当closePosition为true时
-4138 REDUCE_ONLY_MUST_BE_TRUE
- Reduce only must be true with closePosition equals true
- Reduce only 必须为true,当closePosition为true时
-4139 ORDER_TYPE_CANNOT_BE_MKT
- Order type can not be market if it's unable to cancel
- 订单类型不能为市价单如果不能取消
-4140 INVALID_OPENING_POSITION_STATUS
- Invalid symbol status for opening position
- 无效的交易对状态
-4141 SYMBOL_ALREADY_CLOSED
- Symbol is closed
- 交易对已下架
-4142 STRATEGY_INVALID_TRIGGER_PRICE
- REJECT: take profit or stop order will be triggered immediately
- 拒绝:止盈止损单将立即被触发
-4144 INVALID_PAIR
- Invalid pair
- 无效的pair
-4161 ISOLATED_LEVERAGE_REJECT_WITH_POSITION
- Leverage reduction is not supported in Isolated Margin Mode with open positions
- 逐仓仓位模式下无法降低杠杆
-4164 MIN_NOTIONAL
- Order's notional must be no smaller than 5.0 (unless you choose reduce only)
- 订单的名义价值不可以小于5,除了使用reduce only
- Order's notional must be no smaller than %s (unless you choose reduce only)
- 订单的名义价值不可以小于
%s
,除了使用reduce only
-4165 INVALID_TIME_INTERVAL
- Invalid time interval
- 无效的间隔
- Maximum time interval is %s days
- 最大的时间间隔为
%s
天
-4167 ISOLATED_REJECT_WITH_JOINT_MARGIN
- Unable to adjust to Multi-Assets mode with symbols of USDⓈ-M Futures under isolated-margin mode.
- 因有交易对在逐仓模式,无法切换多资产模式
-4168 JOINT_MARGIN_REJECT_WITH_ISOLATED
- Unable to adjust to isolated-margin mode under the Multi-Assets mode.
- 多资产模式下无法使用逐仓
-4169 JOINT_MARGIN_REJECT_WITH_MB
- Unable to adjust Multi-Assets Mode with insufficient margin balance in USDⓈ-M Futures.
- 保证金不足无法切换多资产模式
-4170 JOINT_MARGIN_REJECT_WITH_OPEN_ORDER
- Unable to adjust Multi-Assets Mode with open orders in USDⓈ-M Futures.
- 账户有订单无法切换多资产模式
-4171 NO_NEED_TO_CHANGE_JOINT_MARGIN
- Adjusted asset mode is currently set and does not need to be adjusted repeatedly.
- 多资产模式已经被设置
-4172 JOINT_MARGIN_REJECT_WITH_NEGATIVE_BALANCE
- Unable to adjust Multi-Assets Mode with a negative wallet balance of margin available asset in USDⓈ-M Futures account.
-4183 PRICE_HIGHTER_THAN_STOP_MULTIPLIER_UP
- Price is higher than stop price multiplier cap.
- 止盈止损订单价格不应高于触发价与报价乘数上限的乘积
- Limit price can't be higher than %s.
- 止盈止损订单价格不应高于
%s
-4184 PRICE_LOWER_THAN_STOP_MULTIPLIER_DOWN
- Price is lower than stop price multiplier floor.
- 止盈止损订单价格不应低于触发价与报价乘数下限的乘积
- Limit price can't be lower than %s.
- 止盈止损订单价格不应低于
%s
f
-4192 COOLING_OFF_PERIOD
- Trade forbidden due to Cooling-off Period.
- 合约冷静期禁止开仓
-4202 ADJUST_LEVERAGE_KYC_FAILED
- Intermediate Personal Verification is required for adjusting leverage over 20x
- 需要通过中级KYC才能使用20x以上杠杆
-4203 ADJUST_LEVERAGE_ONE_MONTH_FAILED
- More than 20x leverage is available one month after account registration.
- 开户1个月后才可以使用20倍以上杠杆
-4205 ADJUST_LEVERAGE_X_DAYS_FAILED
- More than 20x leverage is available %s days after Futures account registration.
- 开户%s天后才可以使用20倍以上杠杆
-4206 ADJUST_LEVERAGE_KYC_LIMIT
- Users in this country has limited adjust leverage.
- Users in your location/country can only access a maximum leverage of %s
- 该国家有杠杆限制
- 该国家杠杆不能超过%s倍
-4208 ADJUST_LEVERAGE_ACCOUNT_SYMBOL_FAILED
- Current symbol leverage cannot exceed 20 when using position limit adjustment service.
- 开启仓位放大功能的用户无法使用20x以上杠杆
-4209 ADJUST_LEVERAGE_SYMBOL_FAILED
- The max leverage of Symbol is 20x
- Leverage adjustment failed. Current symbol max leverage limit is %sx
- 交易对最大杠杆为20x
- 杠杆调整失败。交易对最大杠杆为%sx
-4210 STOP_PRICE_HIGHER_THAN_PRICE_MULTIPLIER_LIMIT
- Stop price is higher than price multiplier cap.
- Stop price can't be higher than %s
- 触发价超过价格上限
- 触发价不能超过%s
-4211 STOP_PRICE_LOWER_THAN_PRICE_MULTIPLIER_LIMIT
- Stop price is lower than price multiplier floor.
- Stop price can't be lower than %s
- 触发价低于超过价格下限
- 触发价不能低于%s
-4400 TRADING_QUANTITATIVE_RULE
- Futures Trading Quantitative Rules violated, only reduceOnly order is allowed, please try again later.
- 违反合约量化交易规则,账户设置为近减仓,请之后再试
-4401 COMPLIANCE_RESTRICTION
- Compliance restricted account permission: can only place reduceOnly order.
- 账户不满足合规条件,设置为仅减仓
-4402 COMPLIANCE_BLACK_SYMBOL_RESTRICTION
- Dear user, as per our Terms of Use and compliance with local regulations, this feature is currently not available in your region.
- 根据合规要求,所在地区不提供此服务
-4403 ADJUST_LEVERAGE_COMPLIANCE_FAILED
- Dear user, as per our Terms of Use and compliance with local regulations, the leverage can only up to 10x in your region
- Dear user, as per our Terms of Use and compliance with local regulations, the leverage can only up to %sx in your region
- 根据合规要求,所在地区杠杆不可超过10x
- 根据合规要求,所在地区杠杆不可超过%sx
50xx - Order Execution Issues
-5021 FOK_ORDER_REJECT
- Due to the order could not be filled immediately, the FOK order has been rejected. The order will not be recorded in the order history
- 订单无法完全成交,FOK订单被拒绝
-5022 GTX_ORDER_REJECT
- Due to the order could not be executed as maker, the Post Only order will be rejected. The order will not be recorded in the order history
- 订单无法仅做maker单, Post Only订单被拒绝
-5024 MOVE_ORDER_NOT_ALLOWED_SYMBOL_REASON
- Symbol is not in trading status. Order amendment is not permitted.
- 交易对不在交易状态,无法改单
-5025 LIMIT_ORDER_ONLY
- Only limit order is supported.
- 仅支持限价单改单
-5026 Exceed_Maximum_Modify_Order_Limit
- Exceed maximum modify order limit.
- 超过单个订单改单次数上限
-5027 SAME_ORDER
- No need to modify the order.
- 与原订单相同,非必要改单
-5028 ME_RECVWINDOW_REJECT
- 请求的时间戳在撮合的recvWindow之外
-5037 INVALID_PRICE_MATCH
- 非法价格匹配类型
-5038 UNSUPPORTED_ORDER_TYPE_PRICE_MATCH
- 价格匹配功能仅支持LIMIT/STOP/TAKE_PROFIT类型的订单
-5039 INVALID_SELF_TRADE_PREVENTION_MODE
- 不正确的STP模式
-5040 FUTURE_GOOD_TILL_DATE
- goodTillDate时间戳需要大于当前时间600秒且小于253402300799000
-5041 BBO_ORDER_REJECT
- 该档位没有对应价格