Skip to main content

更新日志 (2024-04-10)

2024-04-10#

以下更新的生效时间已被推迟到 4月25日 05:00 UTC

  • "交易规范信息"响应中的交易对权限信息已从字段 permissions 移至字段 permissionSets
  • 字段 permissions 将为空,并将在未来版本中删除。
  • 以前,"permissions":["SPOT","MARGIN"] 代表如果您的账户具有 SPOTMARGIN 权限,您就可以在该交易对上下订单。现在,等效项是 "permissionSets":[["SPOT","MARGIN"]](请注意额外的方括号)。permissionSets数组中的每个权限数组称为 "permission set"。
  • 交易对的权限现在可以有更多权限类型。例如,"permissionSets":[["SPOT","MARGIN"],["TRD_GRP_004","TRD_GRP_005"]] 指示除了支持以上提过的权限集,也接受 TRD_GRP_004TRD_GRP_005。交易对的 permissionSets 中可以有任意排列组合的权限集。

REST API

  • otoAllowed 现在将出现在 GET /api/v3/exchangeInfo 上,指示该交易品种是否支持 One-Triggers-the-Other (OTO) 订单。

WebSocket API

  • otoAllowed 现在将出现在 exchangeInfo 上,指示该交易品种是否支持 One-Triggers-the-Other (OTO) 订单。

SBE

  • 已发布新模式 2:0 Spot_2_0.xml。 当前模式 1:0 spot_1_0.xml 将被弃用,并从根据我们模式弃用政策,会将在 6 个月内下线。
  • 在 REST API 或 WebSocket API 上使用模式 1:0 时,消息 ExchangeInfoResponse 中的组"权限"将始终为空。在升级到模式 2:0后, 您才可以在 permissionSets 组中查找权限信息。
  • 最新模式仍将支持已弃用的 OCO 请求。
  • 请注意,在模式 2:0 实际发布之前尝试使用它会导致错误。

2024-04-02#

注意: 以下的变更将逐步推出,并预计需要大约一周的时间完成。

  • GET /api/v3/account 新加可选参数 omitZeroBalances,如果启用,则会隐藏所有零余额。
  • account.status 新加可选参数 omitZeroBalances,如果启用,则会隐藏所有零余额。
  • 以下请求的权重已从 10 增加到 25 (该规定将于2024年4月4日生效)
    • GET /api/v3/trades
    • GET /api/v3/historicalTrades
    • trades.recent
    • trades.historical

User Data Stream

  • 如果 listenKey 过期,将在流中发出新事件 listenKeyExpired

REST API

  • REST API 上现已弃用 POST /api/v3/order/oco 接口。从今开始,请使用新的 POST /api/v3/orderList/oco 接口(请注意,新接口使用不同的参数)。

WebSocket API

  • WebSocket API 上现已弃用 orderList.place 请求。从今开始,请使用新的 orderList.place.oco 请求(请注意,新接口使用不同的参数)。

以下内容将于发布日期 大约 一周后生效:

  • "交易规范信息"响应中的交易对权限信息已从字段 permissions 移至字段 permissionSets
  • 字段 permissions 将为空,并将在未来版本中删除。
  • 以前,"permissions":["SPOT","MARGIN"] 代表如果您的账户具有 SPOTMARGIN 权限,您就可以在该交易对上下订单。现在,等效项是 "permissionSets":[["SPOT","MARGIN"]](请注意额外的方括号)。permissionSets数组中的每个权限数组称为 "permission set"。
  • 交易对的权限现在可以有更多权限类型。例如,"permissionSets":[["SPOT","MARGIN"],["TRD_GRP_004","TRD_GRP_005"]] 指示除了支持以上提过的权限集,也接受 TRD_GRP_004TRD_GRP_005。交易对的 permissionSets 中可以有任意排列组合的权限集。

REST API

  • otoAllowed 现在将出现在 GET /api/v3/exchangeInfo 上,指示该交易品种是否支持 One-Triggers-the-Other (OTO) 订单。

WebSocket API

  • otoAllowed 现在将出现在 exchangeInfo 上,指示该交易品种是否支持 One-Triggers-the-Other (OTO) 订单。

SBE

  • 已发布新模式 2:0 Spot_2_0.xml。 当前模式 1:0 spot_1_0.xml 将被弃用,并从根据我们模式弃用政策,会将在 6 个月内下线。
  • 在 REST API 或 WebSocket API 上使用模式 1:0 时,消息 ExchangeInfoResponse 中的组"权限"将始终为空。在升级到模式 2:0后, 您才可以在 permissionSets 组中查找权限信息。
  • 最新模式仍将支持已弃用的 OCO 请求。
  • 请注意,在模式 2:0 实际发布之前尝试使用它会导致错误。

2024-02-28#

将于 2024 年 3 月 5 日生效。

简单二进制编码 (SBE) 将部署到现货的 Rest API 和 WebSocket API 生产系统上。

更多关于SBE的信息, 请参考常见问题解答 (FAQ)


2024-02-08#

现货的 WebSocket API 现在在测试网上支持简单二进制编码(SBE)。

SBE 模式已经更新了 WebSocket API 元数据,但并没有增加 schemaId 或者 version

SBE 的 FAQ 已经更新。


2023-12-08#

简单二进制编码 (SBE) 已经在现货测试网上线。 生产系统会在随后支持。 更多关于SBE的信息, 请参考常见问题解答 (FAQ)


2023-12-04#

注意: 以下的变更将逐步推出,并预计需要大约一周的时间完成。

  • 错误消息 Precision is over the maximum defined for this asset. 被改为 Parameter '%s' has too much precision.
    • 当参数的精度超出允许范围时,将返回此错误消息。例如,如果基础资产(base asset)精度为6,但是设置quantity=0.1234567,则会出现此错误消息。
    • 这会影响所有具有以下参数的请求:
      • quantity
      • quoteOrderQty
      • icebergQty
      • limitIcebergQty
      • stopIcebergQty
      • price
      • stopPrice
      • stopLimitPrice
  • 现在,请求查询OCO开单时会正确返回升序的结果。这会影响以下请求:
    • REST API: GET /api/v3/openOrderList
    • WebSocket API: openOrderList.status
  • 现在,当指定startTimefromId时,请求查询所有 OCO 订单会正确返回升序的结果。这会影响以下请求:
    • REST API: GET /api/v3/allOrderList
    • WebSocket API: allOrderLists
  • 修复了一个错误。订单查询请求不再会对新下的订单错误返回-2026 ORDER_ARCHIVED错误。
    • REST API: GET /api/v3/order
    • WebSocket API: order.status

REST API

  • 新接口 GET /api/v3/account/commission
  • 新接口 GET /api/v3/ticker/tradingDay
  • GET /api/v3/avgPrice 新加字段 closeTime, 用于显示最后交易时间。
  • GET /api/v3/klines/api/v3/uiKlines 新加可选参数 timeZone
  • POST /api/v3/order/testPOST /api/v3/sor/order/test 新加可选参数 computeCommissionRates
  • 关于发送无效接口的变动:
    • 以前,如果查询一个不存在的端点(例如 curl -X GET "https://api.binance.com/api/v3/exchangie"),你会收到 HTTP 404 状态码,以及响应 "<html><body><h2>404 Not found</h2></body></html>"。
    • 从现在开始,只有当接受请求头中包含text/html时,HTML响应才会出现在这种情况下。HTTP状态码将保持不变。

WebSocket API

  • 新请求 account.commission
  • 新增请求以允许会话身份验证: (请注意,这些请求只能使用Ed25519密钥。)
    • session.logon
    • session.logout
    • session.status
  • 新请求 ticker.tradingDay
  • 方法 avgPrice 新加字段 closeTime, 用于显示最后交易时间。
  • 方法 klinesuiKlines 新加可选参数 timeZone
  • 方法 order.testsor.order.test 新加可选参数 computeCommissionRates.
  • 修复了一个错误。之前在发送 ping 之前未经请求发送的 pongs 会导致断开连接。

WebSocket Streams

  • 新数据流 <symbol>@avgPrice
  • 请求中的id现在支持和 WebSocket API 里id一样的值:
    • 64位有符号整数 (之前是无符号整数)
    • 字母数字字符串;最大长度36
    • null
  • 修复了一个错误,之前在发送 ping 之前未经请求发送的 pongs 会导致断开连接。

User Data Streams

  • 当事件类型为 executionReport,而执行类型(x)为TRADE_PREVENTION时,字段lLY现在将始终为0。新增字段plpLpY将描述被阻止执行的数量、被阻止执行的价格和被阻止执行的名义金额。这些新字段显示了如果接收方订单没有启用自成交防止功能时,lLY会是什么值。

以下将在发布日期后大约一周后生效:

  • 交易对权限将仅影响下单,而不影响取消订单。
    • permissions仍然适用于撤消挂单再下单(Cancel-Replace orders)(比如,如果您的账户有使用此请求下单的权限,则将不允许取消操作)。

2023-10-19#

从 2023-10-19 00:00 UTC 开始生效

  • 调高如下接口的请求权重:
REST APIWebSocket API条件 之前的权重调整后权重
GET /api/v3/tradestrades.recentN/A210
GET /api/v3/depthdepthLimit 1-10025
Limit 101-5001025
Limit 501-10002050
Limit 1001-5000100250

2023-10-03#

  • 下单量的退回(Order decrement)功能在 06:15 UTC上线.
  • 此功能的更详细信息, 请参考 FAQ

2023-08-25#

  • Websocket API 的 exchangeInfo 中的 RAW REQUESTS 被移除,新增了用于表示WebSocket连接数限制的 CONNECTIONS

下面的变更会在UTC时间 2023-08-25 00:00 上线

  • WebSocket API 的 CONNECTIONS 被调整为每5分钟300。
  • REST API 和 WebSocket API 的 REQUEST_WEIGHT 调整为每分钟6,000。
  • REST API 中的 RAW_REQUESTS 调整为每5分钟61,000。
  • 之前连接到 WebSocket API 的权重为1。现权重调整到 2
  • 下表的 REST API 和 WebSocket API 请求的权重被调整:

|请求接口|之前请求权重| 新请求权重| |GET /api/v3/order
order.status |2 | 4| |GET /api/v3/orderList
orderList.status| 2|4| |GET /api/v3/openOrders
openOrders.status - symbol|3|6| |GET /api/v3/openOrders
openOrders.status - 不带 symbol|40|80| |GET /api/v3/openOrderList
openOrderLists.status|3|6| |GET /api/v3/allOrders
allOrders |10|20 |GET /api/v3/allOrderList
allOrderLists |10|20 |GET /api/v3/myTrades
myTrades|10|20| |GET /api/v3/myAllocations
myAllocations |10|20| |GET /api/v3/myPreventedMatches
myPreventedMatches - 使用 preventedMatchId | 1 | 2 |GET /api/v3/myPreventedMatches
myPreventedMatches - 使用 orderId|10|20| |GET /api/v3/account
account.status |10 |20| |GET /api/v3/rateLimit/order
account.rateLimits.orders|20|40| |GET /api/v3/exchangeInfo
exchangeInfo|10|20| |GET /api/v3/depth
depth - Limit 1-100|1|2| |GET /api/v3/depth
depth - Limit 101-500|5|10| |GET /api/v3/depth
depth - Limit 501-1000|10|20| |GET /api/v3/depth
depth - Limit 1001-5000|50|100| |GET /api/v3/aggTrades
trades.aggregate |1|2| |GET /api/v3/trades
trades.recent |1|2| |GET /api/v3/historicalTrades
trades.historical |5|10| |GET /api/v3/klines
klines |1|2| |GET /api/v3/uiKlines
uiKlines |1|2| |GET /api/v3/ticker/bookTicker
ticker.book - symbol|1|2| |GET /api/v3/ticker/bookTicker
ticker.book - 不带 symbol 或者 symbols|2|4| |GET /api/v3/ticker/price
ticker.price - symbol|1|2| |GET /api/v3/ticker/price
ticker.price - 不带 symbol 或者 symbols|2|4| |GET /api/v3/ticker/24hr
ticker.24hr - symbol 或者 symbols 带 1-20 交易对 |1|2| |GET /api/v3/ticker/24hr
ticker.24hr - symbols 21-100 交易对|20|40| |GET /api/v3/ticker/24hr
ticker.24hr - 不带 symbol 或者 symbols 带 101 个或者更多交易对|40|80| |GET /api/v3/avgPrice
avgPrice|1|2| |GET /api/v3/ticker
ticker|2|4| |GET /api/v3/ticker
ticker - 请求的最大权重|100|200| |POST /api/v3/userDataStream
userDataStream.start|1|2| |PUT /api/v3/userDataStream
userDataStream.ping|1|2| |DELETE /api/v3/userDataStream
userDataStream.stop|1|2|

2023-08-08#

智能订单路由(Smart Order Routing:SOR)添加到 API 中。您可以在SOR 常见问题 文档中找到更多详细信息。具体上线时间请关注相关公告。

REST API

  • GET /api/v3/exchangeInfo 变动:
    • 返回数据中添加新字段: sors, 用于描述交易中是否使用了 SOR。
  • GET /api/v3/myPreventedMatches 变动:
    • 对于所有的 Prevented Matches, 返回数据中添加新字段 makerSymbol
  • 为了在下单时使用 SOR 而添加的新接口:
    • POST /api/v3/sor/order
    • POST /api/v3/sor/order/test
  • 添加新接口: GET /api/v3/myAllocations

WEBSOCKET API

  • exchangeInfo 变动:
    • 返回数据中添加新字段: sors , 用于描述交易中是否使用了 SOR。
  • myPreventedMatches 变动:
    • 对于所有的 Prevented Matches, 返回数据中添加新字段 makerSymbol
  • 为了在下单时使用 SOR 而添加的新请求:
    • sor.order.place
    • sor.order.test
  • 添加新请求 myAllocations

USER DATA STREAM

  • executionReport 变动:
    • 以下这些字段只适用于下单时使用 SOR 的情况:
      • 新字段 b 代表 matchType
      • 新字段 a 代表 allocId
      • 新字段 k 代表 workingFloor
    • 这个字段只适用于订单因为触发 STP 而将过期的情况:
      • 新字段 Cs 代表 counterSymbol

2023-07-18#

  • 现在支持使用 Ed25519 类型的 API key。(UI 会在本周发布更新支持)
    • Ed25519 API keys 是 RSA API keys 的替代品,使用非对称加密技术来验证您的 API 请求。
    • 我们建议切换到 Ed25519 以提高性能和安全性。
      详情请参考API Key 类型
  • 文档已更新,包括了有关如何使用 Ed25519 key 对有效载荷进行签名的说明。

2023-07-11#

注意: 所有更改都将逐步推出,可能需要一周时间才能完成。

  • 错误消息的变动:
    • 之前当发送重复交易对时,会返回错误信息: "Mandatory parameter symbols was not sent, was empty/null, or malformed."
    • 现在则返回消息: "Symbol is present multiple times in the list", with a new error code -1151
    • 受影响的接口:
      • GET /api/v3/exchangeInfo
      • GET /api/v3/ticker/24hr
      • GET /api/v3/ticker/price
      • GET/api/v3/ticker/bookTicker
      • exchangeInfo
      • ticker.24hr
      • ticker.price
      • ticker.book
  • 修复一个bug,当查询没有被存档的订单时候,可能返回错误消息称已经被存档。

Rest API

  • GET /api/v3/account 变动:
    • 返回数据中添加新字段 preventSor
    • 返回数据中添加用户ID的新字段 uid
  • GET /api/v3/historicalTrades 变动:
    • 鉴权类型从 MARKET_DATA 变更为 NONE
    • 不需要设置 X-MBX-APIKEY 到请求的header中。

Websocket API

  • account.status 变动:

    • 返回数据中添加新字段 preventSor
    • 返回数据中添加用户ID的新字段 uid
  • trades.historical 变动:

    • 鉴权类型从 MARKET_DATA 变更为 NONE
    • 请求中不需要设置 apiKey
  • 修改了几个bugs: 当下单时设置 type=MARKETquoteOrderQty, 也被称为"反向市价单":

    • 当处于极端市场情况下, 订单不会返回部分成交,或者成交的数量为0甚至是负数。
    • 当这种反向市价单的成交数量超过交易对的 maxQty, 订单会因为违反MARKET_LOT_SIZE 过滤器而被拒绝。
  • 修复一个OCO订单的bug: 当使用 trailingDelta 时候, 当任何leg被触发时, trailingTime 值可能不正确。

  • 这些接口的返回数据中添加新字段 transactTime :

    • DELETE /api/v3/order
    • POST /api/v3/order/cancelReplace
    • DELETE /api/v3/openOrders
    • DELETE /api/v3/orderList
    • order.cancel
    • order.cancelReplace
    • openOrders.cancelAll
    • orderList.cancel

2023-06-06#

  • 为了提供系统的冗余能力,新加一个API接入网址: https://api-gcp.binance.com/
    • 此网址利用了 GCP (Google Cloud Platform) 的CDN,可能在性能上比api1-api4要慢。

2023-05-26#

注意: 所有更改都将逐步推出到我们的所有服务器,并可能需要一周时间才能完成。


2023-05-24#

  • 以前的市场数据 URL 已不建议使用。请立即更新您的代码,以防止来自我们的服务被中断
    • 来自 data.binance.com 的 API 市场数据现在可以从 data-api.binance.vision 访问。
    • 来自 data-stream.binance.com 的 Websocket 市场数据现在可以从 data-stream.binance.vision 访问。

2023-03-13#

注意: 所有更改都将逐步推出到我们的所有服务器,并可能需要一周时间才能完成。

  • 某些问题的错误消息已经改进,以便更轻松地进行解决。
情况之前的错误消息新错误消息
由于交易权限被禁用,账户无法下订单或取消订单。This action is disabled on this account.This account may not place or cancel orders.
当配置在交易对上的权限与账户上的权限不匹配时。This symbol is not permitted for this account.
当账户在其没有权限的交易对上下订单时。This symbol is restricted for this account.
symbol 不在 TRADING 时下订单。Unsupported order combination.This order type is not possible in this trading phase.
在不支持 IOCFOK 的交易阶段上使用 timeinForce = IOCFOK 下订单时。Limit orders require GTC for this phase.
  • 更正了查询归档订单的错误消息:

    • 之前,如果查询了一个归档订单(即状态为 CANCELEDEXPIREDexecutedQty == 0 而且最后的更新在 90 天以前),错误消息将是:
      {    "code": -2013,    "msg": "Order does not exist." }
    • 现在,错误消息为:
      {    "code": -2026,    "msg": "Order was canceled or expired with no executed qty over 90 days ago and has been archived." }
  • API 请求使用 startTimeendTime 的行为:

    • 之前,如果 startTime == endTime,一些请求会失败。
    • 现在,所有接受 startTimeendTime 的 API 请求会允许这些参数相等。这适用于以下接口:
      • Rest API
        • GET /api/v3/aggTrades
        • GET /api/v3/klines
        • GET /api/v3/allOrderList
        • GET /api/v3/allOrders
        • GET /api/v3/myTrades
      • Websocket API
        • trades.aggregate
        • klines
        • allOrderList
        • allOrders
        • myTrades
  • 如果用户的IP地址因违反 IP 速率限制(状态码为 418)而被禁止,那么连接到 WebSocket API 的用户将被断开连接。

虽然以下更改将在发布日期后 大约一周内生效,但是与其相关的文档已经被更改了:

  • 过滤器评估的更改:
    • 之前的行为: LOT_SIZEMARKET_LOT_SIZE 要求 (quantity - minQty) % stepSize == 0。
    • 新行为: 现在已更改为 (quantity % stepSize) == 0。
  • 使用 quoteOrderQtyMARKET订单的错误修复:
    • 之前的行为: 订单的状态将始终为 FILLED,即使订单没有完全成交。
    • 新行为: 如果订单由于流动性不足而没有完全成交,则订单状态将为 EXPIRED,仅当订单完全成交时状态为 FILLED

REST API

  • DELETE /api/v3/orderPOST /api/v3/order/cancelReplace 的更改:
    • 新的可选参数 cancelRestrictions,该参数用于决定是否能成功取消状态为 NEWPARTIALLY_FILLED 的订单。
    • 如果由于 cancelRestrictions 而取消订单失败,错误将是:
      {    "code": -2011,     "msg": "Order was not canceled due to cancel restrictions."}

WEBSOCKET API

  • order.cancelorder.cancelReplace 的更改:
    • 新的可选参数 cancelRestrictions,该参数用于决定是否能成功取消状态为 NEWPARTIALLY_FILLED 的订单。
    • 如果由于 cancelRestrictions 而取消订单失败,错误将是:
      {    "code": -2011,     "msg": "Order was not canceled due to cancel restrictions."}

更新日志 (2023-02-17)

2023-02-17#

WebSocket频率限制变动

WS-APIWebsocket Stream 现在限制每个IP地址、每5分钟可以发送连接请求的上限是300次。


2023-01-26#

根据此公告,Self-Trade Prevention 将在 2023-01-26 08:00 UTC 发布。


2023-01-23#


实际发布日期待定#

新功能:Self-Trade Prevention(STP)会添加到系统中。此功能将阻止订单与来自同一账户或者同一 tradeGroupId 账户的订单交易。

请使用现货 REST API 的 GET /api/v3/exchangeInfo 或 Websocket API 的 exchangeInfo 看 STP 的状态。

"defaultSelfTradePreventionMode": "NONE",   // selfTradePreventionMode 的默认值"allowedSelfTradePreventionModes": [        // selfTradePrevention 的可用模式    "NONE",    "EXPIRE_TAKER",    "EXPIRE_BOTH",    "EXPIRE_MAKER"]

STP 常见问题 文档中可以找到更多其它关于 STP 功能的详细信息。

REST API

  • 新的订单状态:EXPIRED_IN_MATCH - 订单由于 STP 触发而过期。
  • 新的接口:
    • GET /api/v3/myPreventedMatches - 获取由于 STP 触发而过期的订单。
  • 新的可选参数 selfTradePreventionMode 已添加到以下的接口:
    • POST /api/v3/order
    • POST /api/v3/order/oco
    • POST /api/v3/cancelReplace
  • 如果有预防自我交易(Prevented Match),所有下单相关的接口会出现新字段:
    • tradeGroupId - 仅当账户配置为 tradeGroupId 时才会出现。
    • preventedQuantity - 被防止交易的订单数量。
    • preventedMatches 数组会有以下的字段:
      • preventedMatchId
      • makerOrderId
      • price
      • takerPreventedQuantity - 仅当 selfTradePreventionMode 设置为 EXPIRE_TAKEREXPIRE_BOTH 时才会出现。
      • makerPreventedQuantity - 仅当 selfTradePreventionMode 设置为 EXPIRE_MAKEREXPIRE_BOTH 时才会出现。
  • 如果订单因 STP 触发而过期,以下查询订单接口的响应中可以出现新的字段 preventedMatchIdpreventedQuantity
    • GET /api/v3/order
    • GET /api/v3/openOrders
    • GET /api/v3/allOrders

WEBSOCKET API

  • 新的订单状态:EXPIRED_IN_MATCH - 订单由于 STP 触发而过期。
  • 新的请求:myPreventedMatches - 获取由于 STP 触发而过期的订单。
  • 新的可选参数 selfTradePreventionMode 已添加到以下的请求:
    • order.place
    • orderList.place
    • order.cancelReplace
  • 如果有防止自我交易,将为所有下订单的请求会出现的新响应:
    • tradeGroupId - 仅当账户配置为 tradeGroupId 时才会出现。
    • preventedQuantity - 被防止交易的订单数量。
    • preventedMatches 数组会有以下的字段:
      • preventedMatchId
      • makerOrderId
      • price
      • takerPreventedQuantity - 仅当 selfTradePreventionMode 设置为 EXPIRE_TAKEREXPIRE_BOTH 时才会出现。
      • makerPreventedQuantity - 仅当 selfTradePreventionMode 设置为 EXPIRE_MAKEREXPIRE_BOTH 时才会出现。
  • 如果订单因 STP 触发而过期,以下查询订单接口的响应中可以出现新的字段 preventedMatchIdpreventedQuantity
    • order.status
    • openOrders.status
    • allOrders

USER DATA STREAM

  • 新的执行类型:TRADE_PREVENTION
  • executionReport 的新字段(这些字段只会在订单因 STP 触发而过期时出现):
    • u - tradeGroupId
    • v - preventedMatchId
    • U - counterOrderId
    • A - preventedQuantity
    • B - lastPreventedQuantity

2022-12-28#

  • 现货 WebSocket API 文档已更新,添加了如何使用 RSA key 签署请求。

2022-12-26#

  • 现货的 Websocket API 发布到生产系统中。
  • 现货的 Websocket API 可以通过URL: wss://ws-api.binance.com/ws-api/v3 来访问。

2022-12-15#

  • 添加新的RSA签名验证方式
    • 文档已更新以显示如何创建 RSA keys。
    • 建议在生成 API key 时使用 RSA keys。
    • 我们接受PKCS#8(BEGIN PUBLIC KEY)。
    • 稍后将添加有关如何上传 RSA public key 的更多详细信息。
  • 现货 WebSocket API 现在可以在 SPOT 测试网上使用。
    • WebSocket API 允许通过 WebSocket 连接下订单、取消订单等。
    • WebSocket API 是一个 独立 于 WebSocket 市场数据流的服务。 即,下订单和收听市场数据需要两个独立的 WebSocket 连接。
    • WebSocket API 与 REST API 相同过滤器和速率限制规则。
    • WebSocket API 与 REST API 提供相同的功能,接受相同的参数,返回相同的状态和错误代码。

WEBSOCKET API 会晚些时候在生产系统中可用。

2022-12-13#

REST API

错误代码 -1003 的一些错误消息已更改

  • 之前的错误消息: Too much request weight used; current limit is %s request weight per %s %s. Please use the websocket for live updates to avoid polling the API. 改成了:
Too much request weight used; current limit is %s request weight per %s. Please use WebSocket Streams for live updates to avoid polling the API.
  • 之前的错误消息: Way too much request weight used; IP banned until %s. Please use the websocket for live updates to avoid bans. 改成了:
Way too much request weight used; IP banned until %s Please use WebSocket Streams for live updates to avoid bans.

2022-12-05#

备注: 这些更新正在逐步部署到我们所有的服务器,大约需要一周时间才能完成。

WEBSOCKET

  • !bookTicker2022-12-07 下线。 请改用按 symbol 的最优挂单信息的数据流(<symbol>@bookTicker)。
    • 可以通过一个连接订阅多个 <symbol>@bookTicker 数据流。 (例如wss://stream.binance.com:9443/stream?streams=btcusdt@bookTicker/bnbbtc@bookTicker

REST API

  • 新的错误代码 -1135

    • 如果参数是无效的 JSON 格式,则会出现此错误代码。
  • 新的错误代码 -1108

    • 如果发送的参数的值太长,可能会导致溢出,则会发生此错误。
    • 此错误代码可能出现在以下接口:
      • POST /api/v3/order
      • POST /api/v3/order/cancelReplace
      • POST /api/v3/order/oco
  • GET /api/v3/aggTrades 更新

    • 之前的规则: startTimeendTime 必须结合使用,并且只能相隔一个小时。
    • 新的规则: startTimeendTime 可以单独使用,一个小时的限制已被取消。
      • 仅使用 startTime 时,如果limit的值为N, 将返回从此时间开始的N条交易。
      • 仅使用 endTime 时,如果limit的值为N, 将返回到此时间的N条交易.
      • 如果不提供 limit,无论是组合使用还是单独发送,服务器端都将使用默认的 limit
  • GET /api/v3/myTrades 更新

    • 修复了 symbol + orderId 组合会返回所有交易,可能会超过LIMIT的默认值500

    • 之前的行为: API 将根据发送的参数组合发送特定的错误消息。 例如:

          {        "code": -1106,        "msg": "Parameter X was sent when not required."    }
    • 新的行为: 如果接口不支持可选参数组合,那么服务器会返回一般性的错误:

          {        "code": -1128,        "msg": "Combination of optional parameters invalid."    }
    • 添加一个新的参数组合: symbol + orderId + fromId.

    • 下面的参数组合不再支持:

      • symbol + fromId + startTime
      • symbol + fromId + endTime
      • symbol + fromId + startTime + endTime
    • 当前支持的所有参数组合:

      • symbol
      • symbol + orderId
      • symbol + startTime
      • symbol + endTime
      • symbol + fromId
      • symbol + startTime + endTime
      • symbol+ orderId + fromId

备注: 这些新字段将在发布日期后大约一周出现。

  • GET /api/v3/exchangeInfo 更新
    • 新字段 defaultSelfTradePreventionModeallowedSelfTradePreventionModes
  • 下单,查询订单和撤销订单接口的更新:
    • 响应中会出现新的字段 selfTradePreventionMode
    • 以下接口会受到影响:
      • POST /api/v3/order
      • POST /api/v3/order/oco
      • POST /api/v3/order/cancelReplace
      • GET /api/v3/order
      • DELETE /api/v3/order
      • DELETE /api/v3/orderList
  • GET /api/v3/account 更新
    • 响应中会出现新的字段 requireSelfTradePrevention.
  • 以下接口的响应中会出现新字段 workingTime(指示订单何时添加到了订单薄):
    • POST /api/v3/order
    • GET /api/v3/order
    • POST /api/v3/order/cancelReplace
    • POST /api/v3/order/oco
    • GET /api/v3/order
    • GET /api/v3/openOrders
    • GET /api/v3/allOrders
  • 如果trailingDelta作为参数提供给了TAKE_PROFITTAKE_PROFIT_LIMITSTOP_LOSSSTOP_LOSS_LIMIT的订单,那么下面接口中会出现trailingTime, 用来表示追踪单被激活和跟踪价格变化的时间:
    • POST /api/v3/order
    • GET /api/v3/order
    • GET /api/v3/openOrders
    • GET /api/v3/allOrders
    • POST /api/v3/order/cancelReplace
    • DELETE /api/v3/order
  • 字段 commissionRates 会在 GET /api/v3/acccount 的响应中出现。

USER DATA STREAM

  • eventType executionReport 有新的字段
    • V - selfTradePreventionMode
    • D - trailing_time (追踪单被激活时会出现)
    • W - workingTime (如果 isWorking=true 会出现)

2022-12-02#

  • 新增一个用于访问市场信息的RESTful API URL: https://data.binance.com.
  • 新增一个用于访问市场信息的WebSocket URL: wss://data-stream.binance.com.

2022-09-30#

!bookTicker的WebSocket推送的变更.

  • 全市场最优挂单信息推送(!bookTicker)计划在2022年11月下线, 具体下线的时间会在后面通告.
  • 请使用按Symbol的最优挂单信息推送(<symbol>@bookTicker).
  • 多个 <symbol>@bookTicker 可以订阅在一个WebSocket连接上.
    • 比如 wss://stream.binance.com:9443/stream?streams=btcusdt@bookTicker/bnbbtc@bookTicker

2022-09-15#

这些变动会是滚动发布,可能需要几天才会部署到所有服务器.

  • 接口 GET /api/v3/exchangeInfo 的变动
    • 添加一个新的参数 permissions , 用于查询适用于相应权限的所有交易对.
    • 如果查询时不提供此参数, 则默认值是 ["SPOT","MARGIN","LEVERAGED"].
      • 这表示如果请求 GET /api/v3/exchangeInfo 时候没有任何参数, 则会返回拥有权限是 SPOT, MARGIN , LEVERAGED 的交易对.
      • 如果要查询其他交易权限, 比如TRD_GRP_004等, 需要在查询参数里设置(比如permissions=TRD_GRP_004).
    • 此参数不可以同时和 symbol 或者 symbols 使用.

2022-08-23#

此变动会滚动发布, 可能需要一段时间更新到所有服务器上。

  • 接口 GET /api/v3/tickerGET /api/v3/ticker/24hr 变动
    • 添加新可选参数 type
    • type 可接受的参数值有 FULLMINI
      • FULL 是默认值, 也是原来接口所返回的响应
      • MINI 省略了以下字段: priceChangePercent, weightedAvgPrice, bidPrice, bidQty, askPrice, askQtylastQty
  • 添加新错误代码 -1008
    • 每当服务器的请求超载时都会发送此消息
    • 此错误代码只会在 SPOT API 里出现
  • 接口 GET /api/v3/account 添加新参数 brokered
  • 添加新接口: GET /api/v3/uiKlines
  • 添加新k线间隔: 1s

2022-08-08#

REST API

  • 接口 POST /api/v3/orderPOST /api/v3/order/cancelReplace 变动
    • 添加新可选参数 strategyIdstrategyType
      • strategyId 是用于将订单标识为某策略的参数。
      • strategyType 是用于标识在执行的策略。(例如:如果所有订单属于现货网格策略,订单可设置为strategyType=1000000)
  • 接口 POST /api/v3/order/oco 变动
    • 添加新可选参数 limitStrategyId, limitStrategyType, stopStrategyId, stopStrategyType
    • 这些是OCO订单里两个leg的策略元数据
    • limitStrategyTypestopStrategyType 都不能低于 1000000
  • 接口 GET /api/v3/order, GET /api/v3/openOrdersGET /api/v3/allOrders 变动
    • 新增参数 strategyIdstrategyType 必须在下单时填上字段才会在回应JSON里返回
  • 接口 DELETE /api/v3/orderDELETE /api/v3/openOrders 变动
    • 新增参数 strategyIdstrategyType 必须在下单时填上字段才会在回应JSON里返回

USER DATA STREAM

  • eventType executionReport 新增参数
    • j 代表 strategyId
    • J 代表 strategyType
    • 必须在下单时填上字段才会在回应里返回

2022-06-20#

接口 GET /api/v3/ticker 变动

  • 权重从每symbol 5 降低到 2.
  • 每次请求最多可以有100个交易对.
    • 如果symbols请求超过100个交易对, 会收到如下错误信息:
      { "code": -1101, "msg": "Too many values sent for parameter 'symbols', maximum allowed up to 100."}
  • 单请求的权重上限为100.
    • 比如,如果请求的交易对超过50个,请求的权重是100.

2022-06-15#

注意: 此变动不会立刻可用, 会在后面几天上线。

SPOT API

  • 添加新接口 GET /api/v3/ticker
    • 基于 windowSize 返回最近的价格变动。
    • 无需像 GET /api/v3/ticker/24hr 提供symbols参数。
    • 如果不提供 windowSize 参数,默认值是1d
    • 响应和 GET /api/v3/ticker/24hr 相似,但不包括以下数据:prevClosePrice, lastQty, bidPrice, bidQty, askPrice, askQty
  • 添加新接口 POST /api/v3/order/cancelReplace
    • 撤消当前的挂单并在同样的交易对上下新订单。
    • 过滤器会在撤单前做判断。
      • 例如,MAX_NUM_ORDERS 是 10,如果目前挂单也是10,调用 POST /api/v3/order/cancelReplace会失败。撤单与下单的操作都不会被执行。
    • 更新将在几天后上线,升级完毕后才会开启此功能。
  • GET /api/v3/exchangeInfosymbols列表里返回新数据cancelReplaceAllowed
  • 添加新的过滤器 NOTIONAL
    • 基于minNotionalmaxNotional 值来限制名义价值 (price * quantity)
  • 添加新的过滤器 EXCHANGE_MAX_NUM_ICEBERG_ORDERS
    • 账号最大冰山挂单数

WEBSOCKETS

  • 新的symbol ticker流, 可以选择 1h 或者 4h时间窗口:
    • 单个交易对: <symbol>@ticker_<window-size>
    • 市场所有交易对: !ticker_<window-size>@arr

2022-05-23#

  • Order Book 深度的变动

    • 之前深度的数量在一些极端情况下会出现负数.
    • 之后深度数量不会溢出, 而是限制在64位的最大值, 这表示深度的数量达到,或者超过了最大值. 最大值和交易对的base asset的精度有关. 比如如果精度是8位小数,最大值则为92,233,720,368.54775807.
    • 原有的深度价位, 在修复上线后, 需要价位上有变动, 才能体现新的修复.
  • 哪里有影响?

    • 现货深度接口
      • GET /api/v3/depth
    • Websocket Streams
      • <symbol>@depth
      • <symbol>@depth@100ms
      • <symbol>@depth<levels>
      • <symbol>@depth<levels>@100ms
  • MAX_POSITION 的更新

    • 如果一个订单的数量(quantity) 可能导致持有仓位溢出, 会触发过滤器 MAX_POSITION.

  • GET api/v3/aggTrades 更新
    • 如果同时提供 startTimeendTime, 旧的记录会返回.
  • 如果接口 GET /api/v3/myTrades 中没有提供参数 symbol, 错误消息变为:
{"code": -1102,"msg": "Mandatory parameter 'symbol' was not sent, was empty/null, or malformed."}
  • 下面的接口提供参数 symbols 用于查询多个symbol.

    • GET /api/v3/ticker/24hr
    • GET /api/v3/ticker/price
    • GET /api/v3/ticker/bookTicker
  • 上面接口的权重取决于请求 symbols 的数量, 具体请看下面的列表:

接口Symbols的数量权重
GET /api/v3/ticker/priceAny2
GET /api/v3/ticker/bookTickerAny2
GET /api/v3/ticker/24hr1-201
GET /api/v3/ticker/24hr21-10020
GET /api/v3/ticker/24hr>= 10140

2022-04-13#

REST API

  • 现货交易支持追踪止损(Trailing Stop)订单.
    • 追踪止损通过一个新的参数trailingDelta来设置基于市场价的一个自动触发价格.
    • 只适用于订单类型: STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT.
    • 参数trailingDelta的单位为基点(BIPS).
      • 比如一个STOP_LOSS卖单设置trailingDelta为100, 那么订单会在当前市场价格从下单后的最高点下降1%的时候被触发。(100 / 10,000 => 0.01 => 1%)
    • 用于OCO订单的时候, 如果市场变动触发了STOP_LOSS订单, 那么此止损订单变成追踪止损订单.
    • 当参数trailingDeltastopPrice一起使用时, 一旦stopPrice条件被触发,系统会开始追踪当前的价格变动. 从stopPrice价格开始,到基于trailingDelta值之间变动.
    • 如果没有提供stopPrice, 系统开始追踪价格从最新价到基于trailingDelta值之间变动.
  • POST /api/v3/order 变动
    • 添加新可选参数 trailingDelta
  • POST /api/v3/order/test 变动
    • 添加新可选参数 trailingDelta
  • POST /api/v3/order/oco 变动
    • 添加新可选参数 trailingDelta
  • 添加新的过滤器 TRAILING_DELTA
    • 用于限定 trailingDelta 的最大和最小值.

USER DATA STREAM

  • User Data Stream 的executionReport添加新参数
    • "d" 代表trailingDelta

2022-04-12#

Note: 下面的变更会在后面几天上线.

  • GET api/v3/allOrders 如果没有提供 symbol, 则返回错误信息:
    { "code": -1102, "msg": "Mandatory parameter 'symbol' was not sent, was empty/null, or malformed."}
  • 修复一个错误信息中的拼写错误。 如果账号被禁用了相应的权限(比如提款,交易等), 则服务器返回错误:
    "This action is disabled on this account."
  • 在市场数据(market data)审计中,发现了一些现货的聚合交易数据(aggTrades)中的问题.
    • 丢失的记录已经被补回.
    • 重复的记录被标记成无效,具体的值设置成如下:
      • p = '0' // price
      • q = '0' // qty
      • f = -1 // first_trade_id
      • l = -1 // last_trade_id

2022-02-28#

  • 在接口GET /api/v3/exchangeInfo中添加新字段allowTrailingStop.

2022-02-24#

  • 现货规则PRICE_FILTER里面的 (price-minPrice) % tickSize == 0 改成 price % tickSize == 0
  • 新添加了一个规则 PERCENT_PRICE_BY_SIDE.
  • 接口 GET api/v3/depth 的变动:
    • limit 原先必须是固定值(比如 5, 10, 20, 50, 100, 500, 1000, 5000), 现在可以是在1-5000之间的任意的正整数, 服务器会返回指定的limit数量。(比如如果设置limit=3, 会返回前3个最好的卖价和买价)
    • 如果limit超过5000, 服务器也最多返回5000条记录.
    • 相应的, 此接口的权重变成:
LimitRequest Weight
1-1001
101-5005
501-100010
1001-500050
  • GET api/v3/aggTrades 接口的变动:
    • 当同时提供参数 startTimeendTime, 最旧的订单会优先返回.

2021-12-29

  • 移除交易对类型枚举
  • 新增权限枚举

2021-11-01#

  • 新增接口 GET /api/v3/rateLimit/order
    • 回传用户在当前时间区间内的下单总数
    • 此接口的权重为20

2021-09-14#

  • 添加一个基于OpenAPI规范的RESTful API接口定义的YAML文件

2021-08-12#

  • GET api/v3/myTrades 添加新的参数 orderId

2021-05-12#

  • 在文档中添加接口的数据来源说明
  • 在每个接口中添加相应的数据源
  • GET api/v3/exchangeInfo 现在支持单个或者多个交易对查询

2021-04-26#

April 28, 2021 00:00 UTC 开始,下面接口的权重有如下变动:

  • GET /api/v3/order 权重改为 2
  • GET /api/v3/openOrders 权重改为 3
  • GET /api/v3/allOrders 权重改为 10
  • GET /api/v3/orderList 权重改为 2
  • GET /api/v3/openOrderList 权重改为 3
  • GET /api/v3/account 权重改为 10
  • GET /api/v3/myTrades 权重改为 10
  • GET /api/v3/exchangeInfo 权重改为 10

2021-01-01#

USER DATA STREAM

  • 移除outboundAccountInfo事件.

2020-11-27#

为了优化性能,除了当前的api.binance.com,新加了一些API的集群。如果访问api.binance.com有性能问题,也可以尝试访问:

2020-09-09#

用户数据 STREAM

  • outboundAccountInfo事件不再推荐使用。
  • outboundAccountInfo事件以后会被删除(具体时间未定) 请使用 outboundAccountPosition 事件.
  • outboundAccountInfo只推送余额不为0,以及余额刚变成0的资产。

2020-05-01#

  • 从2020-05-01 UTC 00:00开始, 所有交易对都会有最多200个挂单的限制, 体现在过滤器MAX_NUM_ORDERS上.
    • 已经存在的挂单不会被移除或者撤销。
    • 单交易对(symbol)的挂单数量达到或超过200的账号, 无法在此交易对上下新的订单, 除非挂单数量低于200。
    • OCO订单在被触发成LIMIT订单, 或者被触发成STOP_LOSS(或者STOP_LOSS_LIMIT)前, 被认为是2个挂单量. 一旦OCO订单被触发, 就只被算作一个挂单。

2020-04-23#

WEB SOCKET 连接限制

  • Websocket服务器每秒最多接受5个消息。消息包括:
    • PING帧
    • PONG帧
    • JSON格式的消息, 比如订阅, 断开订阅.
  • 如果用户发送的消息超过限制,连接会被断开连接。反复被断开连接的IP有可能被服务器屏蔽。
  • 单个连接最多可以订阅 1024 个Streams。

2020-03-24#

  • 添加过滤器 MAX_POSITION.

    • 这个过滤器定义账户允许的基于base asset的最大仓位。一个用户的仓位可以定义为如下资产的总和:

      • base asset的可用余额
      • base asset的锁定余额
      • 所有处于open的买单的数量总和
    • 如果用户的仓位大于最大的允许仓位,买单会被拒绝。


2018-11-13#

Rest API#

  • 账户交易权限被禁时允许进行撤单操作。
  • 增加了新的过滤器: PERCENT_PRICE, MARKET_LOT_SIZE, MAX_NUM_ICEBERG_ORDERS
  • 增加了 RAW_REQUESTS 频率限制. 该限制仅统计请求次数,不统计请求权重。
  • /api/v3/ticker/price 无symbol参数时,权重增加到2。
  • /api/v3/ticker/bookTicker 无symbol参数时,权重增加到2。
  • DELETE /api/v3/order 现在会返回订单撤销前所处的末次状态。
  • MIN_NOTIONAL 新增两个参数: applyToMarket (是否对市价单生效) and avgPriceMins (对市价单生效时,估算金额时使用过去几分钟的平均价格?).
  • /api/v1/exchangeInfo 中的限制增加了intervalNum. intervalNum表示该限制针对多少时间间隔进行统计. 例如: intervalNum= 5, interval = minute, 表示该限制对每5分钟内的行为进行统计。

如何计算过去n分钟平均价格:#

  1. [对过去n分钟所有订单的数量*价格求和] / 过去n分钟所有订单的数量
  2. 如果过去n分钟没有交易发生,则继续向前追溯,直到找到第一个交易,以此价格作为过去n分钟平均价格。
  3. 如果该交易对之前从未发生过交易,则无平均价格,亦即无法在该交易对下市价单,必须至少有一个(双方均未限价单)的交易成交后才可以下市价单。
  4. 当前系统使用的平均价格可以通过接口 https://api.binance.com/api/v3/avgPrice?symbol=<symbol>查询 例如 https://api.binance.com/api/v3/avgPrice?symbol=BNBUSDT

User data stream#

  • 成交报告中增加了 末次成交金额 (Y),等于 末次成交量 末次成交价格 (L l).

2018-07-18#

Rest API#

  • 新过滤器: ICEBERG_PARTS
  • POST api/v3/ordernewOrderRespType 参数的缺省值更改; MARKET LIMIT 默认为 FULL, 其他默认为 ACK.
  • POST api/v3/order RESULTFULL 响应中增加 cummulativeQuoteQty
  • GET api/v3/openOrders 无symbol调用权重下降为 40.
  • GET api/v3/ticker/24hr 无symbol调用权重下降为 40.
  • GET /api/v1/trades amount最大可取到1000.
  • GET /api/v1/historicalTrades amount最大可取到1000.
  • GET /api/v1/aggTrades amount最大可取到1000.
  • GET /api/v1/klines amount最大可取到1000.
  • 订单查询结果返回中增加 updateTime 字段,代表该订单末次更新(创建、成交、过期、取消、拒绝等等)时间; time 仅表示创建时间.
  • 订单查询结果中增加 cummulativeQuoteQty字段. 负值表示尚无任何成交,该字段不可用.
  • REQUESTS 限制更名为 REQUEST_WEIGHT. 避免名字造成的误解。

User data stream#

  • 订单报告与成交报告中增加cummulativeQuoteQty 字段 (Z). 表示已经成交的金额, 即已经花费的金额(买入订单)或已经收到的金额(卖出订单),均未计算手续费. 此功能增加之前成交的订单在历史订单接口中查询到的该字段可能小于零.
  • cummulativeQuoteQty/cummulativeQty 可以用来计算该订单已经成交部分的平均价格。
  • 成交报告中增加了 O字段 (订单创建时间)

2018-01-23#

  • GET /api/v1/historicalTrades权重降为 5
  • GET /api/v1/aggTrades 权重降为 1
  • GET /api/v1/klines 权重降为 1
  • GET /api/v1/ticker/24hr 不带symbol参数的权重降为 symbols总数 / 2
  • GET /api/v3/allOrders 权重降为 5
  • GET /api/v3/myTrades 权重降为 5
  • GET /api/v3/account 权重降为 5
  • GET /api/v1/depth limit=500 权重降为 5
  • GET /api/v1/depth limit=1000 权重降为 10
  • websocket 用户增加 -1003 error code

2018-01-20#

  • GET /api/v1/ticker/24hr 单symbol参数调用权重降为 1
  • GET /api/v3/openOrders 不带symbol参数的权重降为 symbols总数 / 2
  • GET /api/v3/allOrders 权重降为 15
  • GET /api/v3/myTrades 权重降为 15
  • GET /api/v3/order 权重降为 1
  • 自成交现在会在myTrades结果中有两条记录。

2018-01-14#

  • GET /api/v1/aggTrades 权重改为 2
  • GET /api/v1/klines 权重改为 2
  • GET /api/v3/order 权重改为 2
  • GET /api/v3/allOrders 权重改为 20
  • GET /api/v3/account 权重改为 20
  • GET /api/v3/myTrades 权重改为 20
  • GET /api/v3/historicalTrades 权重改为 20