Binance 是一家国际多语言加密货币交易所。它提供了一些 API 来访问 Binance 数据。支持以下 API:
该客户端也支持 Binance.us,以下 API 受到支持:
Binance API 有两种方法:公开和私有。公开方法无需身份验证即可访问,例如获取行情价格。部分与用户数据相关的方法是私有的,需要使用 Binance API 密钥。
REST API
基础端点为 wss://stream.binance.com:9443,客户端可在成功连接后订阅/取消订阅事件。
支持以下订阅/取消订阅方法。
| 方法 | 参数 | 描述 |
| AggregateTrades | 交易对 | 推送为单个 taker 订单聚合的交易信息 |
| 交易 | 交易对 | 推送原始交易信息;每笔交易有唯一的买方和卖方 |
| KLine | Symbol, Interval | 每秒、每分钟、每小时...推送当前 K 线/烛线更新。 |
| MiniTicker | 交易对 | 24 小时滚动窗口迷你行情统计。这些数据不是 UTC 日的统计数据,而是前 24 小时的 24 小时滚动窗口数据。 |
| AllMiniTickers | 所有价格变动交易对的 24 小时滚动窗口迷你 ticker 统计数据(以数组形式)。这些不是 UTC 日内的统计数据,而是过去 24 小时的 24 小时滚动窗口数据。请注意,数组中只包含价格发生变动的 ticker。 | |
| Ticker | 交易对 | 单个交易对的 24 小时滚动窗口行情统计。这不是 UTC 天的统计数据,而是前 24 小时的滚动窗口。 |
| AllMarketTickers | 所有发生变化的交易对 24 小时滚动窗口行情统计数组。这不是 UTC 天的统计数据,而是前 24 小时的滚动窗口。请注意,数组中只会包含发生变化的行情。 | |
| BookTicker | 交易对 | 实时推送指定交易对最优买卖价格或数量的任何更新。 |
| AllBookTickers | 实时推送所有交易对的最优买卖价或数量的任何更新。 | |
| PartialBookDepth | 交易对,深度 | 前 <levels> 档买卖盘,每秒推送一次。有效的 <levels> 值为 5、10 或 20。 |
| DiffDepth | 交易对 | 用于在本地管理订单簿的订单簿价格和数量深度更新。 |
成功订阅/取消订阅后,客户端会收到一条相关消息,其中 id 是 Subscribed / Unsubscribed 方法的返回结果。
{
"result": null,
"id": 1
}
需要从您的 Binance 账户获取有效的 ApiKey,并将 ApiKey 设置到组件的 Binance.ApiKey 属性中。
每次发生变化时,以下数据将被推送给客户端。如果设置了有效的 ApiKey,无需订阅任何方法,系统将自动完成订阅。
| 方法 | 描述 |
| 账户更新 | 账户状态通过 outboundAccountInfo 事件进行更新。 |
| 余额更新 |
余额更新发生在以下情况下:
|
| 订单更新 | 订单通过 executionReport 事件更新。 |
基础端点为:https://api.binance.com。所有端点返回 JSON 对象或数组。数据按升序返回,最旧的在前,最新的在后。
使用 REST_API.BinanceOptions 属性访问 REST API 选项。
公共 API 端点
这些端点无需任何授权即可访问。
通用端点
| 方法 | 参数 | 描述 |
| Ping | 测试与 Rest API 的连通性。 | |
| GetServerTime | 测试与 Rest API 的连接性并获取当前服务器时间。 | |
| GetExchangeInformation | 当前交易所交易规则和交易对信息 |
市场数据端点
| 方法 | 参数 | 描述 |
| GetOrderBook | 交易对 | 获取订单簿。 |
| GetTrades | 交易对 | 获取最新成交 |
| GetHistoricalTrades | 交易对 | 获取历史交易记录。 |
| GetAggregateTrades | 交易对 | 获取压缩的聚合交易数据。在同一时间以相同价格成交的同一订单的交易,其数量将被聚合。 |
| GetKLines | Symbol, Interval | 某交易对的 K 线/烛线柱。K 线以其开盘时间唯一标识。 |
| GetAveragePrice | 交易对 | 某个交易对的当前均价。 |
| Get24hrTicker | 交易对 | 24 小时滚动窗口价格变动统计。不带 symbol 参数访问时请谨慎。 |
| GetPriceTicker | 交易对 | 某个交易对的最新价格。 |
| GetPriceTickers | Symbols | 一个交易对或多个交易对的最新价格。示例:["BTCUSDT","BNBUSDT"] |
| GetBookTicker | 交易对 | 某个或多个交易对在订单簿中的最优价格/数量。 |
| GetUIKLines | Symbol, Interval | 某一交易对的 K 线/烛台图数据。响应格式与 GetKLines 类似,针对烛台图展示进行了优化。 |
| GetRollingWindowTicker | Symbol, Symbols, WindowSize | 滚动窗口价格变动统计。注意:如果未指定,WindowSize 默认为 1d。 |
| GetTradingDayTicker | Symbol, Symbols, Type | 某个交易日的价格变动统计数据。 |
私有 API 端点
需要 APIKey 和 APISecret 才能获得服务器授权。
账户数据端点
| 方法 | 参数 | 描述 |
| NewOrder | Symbol, Side, Type | 提交新订单。 |
| PlaceMarketOrder | Side, Symbol, Quantity | 下新的市价单 |
| PlaceMarketQuoteOrder | Side, Symbol, QuoteOrderQty | 下新市价报价单 |
| PlaceLimitOrder | Side, Symbol, Quantity, LimitPrice | 下限价单 |
| PlaceStopOrder | 方向、交易对、数量、止损价格、限价价格 | 下新止损单 |
| PlaceStopTrailingOrder | 方向,交易对,数量,TrailingDelta,LimitPrice | 下新的追踪止损订单 |
| PlaceTakeProfitOrder | 方向、交易对、数量、止损价格、限价价格 | 下新的止盈订单 |
| PlaceTakeProfitTrailingOrder | 方向,交易对,数量,TrailingDelta,LimitPrice | 下达新的止盈跟踪止损订单 |
| PlaceLimitMakerOrder | Side, Symbol, Quantity | 下新的限价市价单 |
| TestNewOrder | Symbol, Side, Type | 测试新订单创建和签名/recvWindow 时长。创建并验证新订单,但不将其发送到撮合引擎。 |
| QueryOrder | 交易对 | 查询订单状态。 |
| CancelOrder | 交易对 | 取消活跃订单。取消活跃订单。必须发送 OrderId 或 OrigClientOrderId 之一。 |
| CancelAllOpenOrders | Symbol(可选) | |
| GetOpenOrders | 获取某个交易对的所有未结订单。访问时不指定交易对请谨慎。 | |
| GetAllOrders | 交易对 | 获取所有账户订单;包括活跃、已取消或已成交的订单。 |
| NewOCO | Symbol, Side, Quantity, Price, StopPrice | 发送新的 OCO 订单 |
| CancelOCO | 交易对 | 取消整个订单列表 |
| QueryOCO | 交易对 | 根据提供的可选参数检索特定 OCO 订单 |
| GetAllOCO | 根据提供的可选参数检索所有 OCO 订单 | |
| GetOpenOCO | 获取所有未完成的 OCO 订单。 | |
| GetAccountInformation | 获取当前账户信息。 | |
| GetAccountTradeList | 交易对 | 获取特定账户和交易对的成交记录。 |
| CancelReplaceOrder | Symbol, Side, Type, CancelReplaceMode | 取消现有订单并在同一交易对上下新订单。 |
| NewOrderListOCO | Symbol, Side, Quantity, AboveType, BelowType | 下新的 OCO 订单列表。 |
| NewOrderListOTO | Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingType, PendingSide, PendingQuantity | 下一个新的 OTO(一触即发)订单列表。 |
| NewOrderListOTOCO | Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingSide, PendingAboveType, PendingBelowType, PendingQuantity | 下达新的 OTOCO(一触发一取消另一个)订单列表。 |
| NewSOROrder | Symbol, Side, Type, Quantity | 使用智能订单路由(SOR)下单。 |
| TestSOROrder | Symbol, Side, Type, Quantity | 使用智能订单路由(SOR)测试新订单。创建并验证新订单,但不将其发送至撮合引擎。 |
| GetOrderRateLimitUsage | 显示用户所有时间间隔的当前订单数使用情况。 | |
| GetPreventedMatches | 交易对 | 显示因 STP(自成交防护)而过期的订单列表。 |
| GetAllocations | 交易对 | 检索 SOR 订单执行产生的分配。 |
| GetAccountCommission | 交易对 | 获取当前账户手续费率。 |
转换端点
| 方法 | 参数 | 描述 |
| GetAllConvertPairs | FromAsset, ToAsset | 查询所有可转换代币对及各代币的上限/下限 |
| GetConvertAssetInfo | 查询支持资产的精度信息 | |
| SendConvertQuoteRequest | FromAsset, ToAsset | 为请求的令牌对请求报价 |
| AcceptConvertQuote | QuoteId | 通过报价 ID 接受所提供的报价。 |
| GetConvertOrderStatus | OrderId 或 QuoteId | 按订单 ID 查询订单状态。 |
| PlaceConvertLimitOrder | BaseAsset, QuoteAsset, Side, LimitPrice |
允许用户下限价单。 baseAsset 或 quoteAsset 可通过 exchangeInfo 端点确定。 |
| CancelConvertLimitOrder | OrderId | 允许用户取消限价订单 |
| GetConvertLimitOpenOrders | 允许用户查询所有现有限价单 | |
| GetConvertTradeHistory | StartTime, EndTime | startTime 与 endTime 之间的最大间隔为 30 天。 |
钱包端点
(*钱包端点仅适用于生产服务器,不适用于演示服务器)
| 方法 | 描述 |
| GetWalletSystemStatus | 获取系统状态。 |
| GetWalletAllCoinsInformation | 获取用户可用于存入和提取的代币信息。 |
| GetWalletDailyAccountSnapshot | 类型:"SPOT"、"MARGIN"、"FUTURES"
|
| SetWalletDisableFastWithdrawSwitch | 此请求将禁用您账户下的快速提现开关。 您需要为请求此端点的 API 密钥启用"交易"选项。 |
| SetWalletEnableFastWithdrawSwitch | 此请求将在您的账户下启用快速提现开关。 您需要为请求此端点的 API 密钥启用"交易"选项。 当快速提现开关开启后,向 Binance 账户划转资金将即时完成,无需链上交易,无交易 ID,也无提现手续费。 |
| WalletWithdraw |
提交提款请求。
|
| GetWalletDepositHistory | 获取存款历史。 |
| GetWalletWithdrawHistory | 获取提现历史记录。 |
| GetWalletDepositAddress | 通过网络获取充值地址。 |
| GetWalletAccountStatus | 获取账户状态详情。 |
| GetWalletAccountAPITradingStatus | 获取账户 API 交易状态详情。 |
| GetWalletDustLog | 仅返回最后 100 条记录 仅返回 2020/12/01 之后的记录 |
| GetWalletAssetsConvertedBNB | |
| WalletDustTransfer |
将零散资产转换为 BNB。 您需要为请求此端点的 API Key 开启现货与杠杆交易权限。 |
| GetWalletAssetDividendRecord | 查询资产分红记录。 |
| GetWalletAssetDetail | 获取 Binance 支持的资产详情。 |
| GetWalletTradeFee | 获取交易手续费 |
| WalletUserUniversalTransfer |
您需要为请求此端点的 API Key 启用"允许通用划转"选项。MAIN_UMFUTURE 现货账户划转至 USDⓈ-M 合约账户 类型的枚举:
|
| GetWalletQueryUserUniversalTransferHistory |
|
| GetWalletFundingWallet | 目前支持查询以下业务资产:Binance Pay、Binance Card、Binance Gift Card、Stock Token |
| GetWalletUserAsset | 获取用户资产,仅返回正值数据。 |
| GetWalletApiKeyPermission |
Binance 消息在 TsgcWebSocketClient 组件中接收,您可以使用以下事件:
OnConnect
成功连接到 Binance 服务器后。
OnDisconnect
与 Binance 服务器断开连接后
OnMessage
服务器发送给客户端的消息在此事件中处理。
OnError
如果协议出现任何错误,将调用此事件。
OnException
如果存在未处理的异常,将调用此事件。
此外,在 Binance API 组件中有一个名为 OnBinanceHTTPException 的特定事件,每次调用 HTTP 请求(REST API 或 WebSocket 用户数据流)出错时触发。
(*) 由于 Binance 服务器的变更,Rad Studio 10.1 之前的 Indy 版本将无法连接到测试服务器。此问题不影响 Enterprise 版,或已升级到最新 Indy 版本的情况。