API Binance

Binance

 

Binanceは国際的な多言語の暗号通貨取引所です。BinanceのデータにアクセスするためのいくつかのAPIを提供しています。以下のAPIがサポートされています:

 

  1. WebSocketストリーム: 一部のメソッドを購読してリアルタイムでデータを取得できます。イベントはサーバーから購読者であるクライアントにプッシュされます。プロトコルとしてWebSocketを使用します。
  2. UserData ストリーム: サブスクライブしたクライアントはアカウントの詳細を受け取ります。認証には API キーが必要で、WebSocket をプロトコルとして使用します。
  3. REST API: 認証に API キーとシークレットが必要で、プロトコルとして HTTPS を使用します。
    1. マーケットデータ
    2. アカウントおよび取引データ
    3. ウォレット
  4. Futures: WebSocket 先物市場データストリームは Binance Futures Client API を通じてサポートされています。

 

クライアントは Binance.us もサポートしており、次の API がサポートされています:

 

  1. WebSocketストリーム: 一部のメソッドを購読してリアルタイムでデータを取得できます。イベントはサーバーから購読者であるクライアントにプッシュされます。プロトコルとしてWebSocketを使用します。
  2. UserData ストリーム: サブスクライブしたクライアントはアカウントの詳細を受け取ります。認証には API キーが必要で、WebSocket をプロトコルとして使用します。
  3. REST API: クライアントはサーバーの市場データやアカウントデータをリクエストできます。認証には API キーとシークレットが必要で、プロトコルとして HTTPS を使用します。

 

プロパティ

Binance API には public と private の2種類のメソッドがあります。パブリックメソッドはティッカー価格の取得など、認証なしでアクセスできます。一部はプライベートであり、ユーザーデータに関連するため、Binance APIキーの使用が必要です。

 

 

 

 

最も一般的な使用方法

 

WebSocket Stream API

ベースエンドポイントは wss://stream.binance.com:9443 です。クライアントは接続成功後にイベントをサブスクライブ/アンサブスクライブできます。

以下のサブスクリプション/サブスクリプション解除メソッドがサポートされています。

 

メソッド パラメータ 説明
AggregateTrades 銘柄 単一のテイカー注文に集約された取引情報をプッシュします
取引 銘柄 生の取引情報をプッシュします。各取引には固有の買い手と売り手がいます
KLine Symbol, Interval 現在の klines/ローソク足を毎秒、毎分、毎時間プッシュ更新します。
MiniTicker 銘柄 24時間ローリングウィンドウのミニティッカー統計です。これらはUTC日の統計ではなく、過去24時間の24時間ローリングウィンドウです。
AllMiniTickers   配列内で変更されたすべてのシンボルの 24 時間ローリングウィンドウのミニティッカー統計。これらは UTC 日の統計ではなく、過去 24 時間の 24 時間ローリングウィンドウです。変更されたティッカーのみが配列に存在することに注意してください。
Ticker 銘柄 単一銘柄の24時間ローリングウィンドウのティッカー統計。これらはUTC日の統計ではなく、過去24時間の24時間ローリングウィンドウです。
AllMarketTickers   変動があったすべての銘柄の24時間ローリングウィンドウのティッカー統計(配列形式)。これらはUTC日の統計ではなく、過去24時間の24時間ローリングウィンドウです。変動のあったティッカーのみが配列に含まれます。
BookTicker 銘柄 指定されたシンボルについて、最良買い気配または売り気配の価格や数量への更新をリアルタイムでプッシュします。
AllBookTickers   すべての銘柄の最良の売値または買値の価格または数量の更新をリアルタイムでプッシュします。
PartialBookDepth Symbol、Depth 上位 <levels> 件の買いと売りを毎秒プッシュします。有効な <levels> は 5、10、または 20 です。
DiffDepth 銘柄 ローカルで注文板を管理するために使用される注文板の価格と数量の深度更新。

 

サブスクライブ/アンサブスクライブが成功した後、クライアントはその結果に関するメッセージを受け取ります。id は Subscribed / Unsubscribed メソッドの結果です。

 


{
  "result": null,
  "id": 1
}

 

User Data Stream API

Binanceアカウントから取得した有効なApiKeyが必要で、ApiKey はコンポーネントの Binance.ApiKey プロパティに設定する必要があります。

 

変化があるたびに次のデータがクライアントにプッシュされます。任意のメソッドをサブスクライブする必要はありません。有効な ApiKey が設定されていれば自動的に行われます。

 

メソッド 説明
アカウントのアップデート アカウントの状態は outboundAccountInfo イベントで更新されます。
残高更新

残高の更新は以下の場合に発生します:

 

  • 口座への入金または出金
  • 口座間の資金移動(例:スポットからマージンへ)
注文の更新 注文はexecutionReportイベントで更新されます。

 

 

REST API

ベースエンドポイントは https://api.binance.com です。すべてのエンドポイントは JSON オブジェクトまたは配列を返します。データは昇順で返されます。最古が最初、最新が最後です。

 

プロパティ REST_API.BinanceOptions を使用して REST API オプションにアクセスします。

 

 

パブリック API エンドポイント

 

これらのエンドポイントには認証なしでアクセスできます。

 

汎用エンドポイント

 

メソッド パラメータ 説明
Ping   REST API への接続をテストします。
GetServerTime   REST API への接続をテストして現在のサーバー時刻を取得します。
GetExchangeInformation   現在の取引所の取引ルールとシンボル情報

 

 

Market Data エンドポイント

 

メソッド パラメータ 説明
GetOrderBook 銘柄 オーダーブックを取得します。
GetTrades 銘柄 最近の取引を取得します。
GetHistoricalTrades 銘柄 古い取引を取得します。
GetAggregateTrades 銘柄 圧縮された集約トレードを取得します。同じ注文から、同じ価格で、同時に約定したトレードは数量が集計されます。
GetKLines Symbol, Interval 銘柄の kline/ローソク足バー。Klines は開始時刻で一意に識別されます。
GetAveragePrice 銘柄 シンボルの現在の平均価格。
Get24hrTicker 銘柄 24 時間のローリングウィンドウの価格変動統計。シンボルなしでアクセスする場合は注意が必要です。
GetPriceTicker 銘柄 シンボルの最新価格。
GetPriceTickers シンボル シンボルの配列の最新価格。例: ["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 Side, Symbol, Quantity, StopPrice, LimitPrice 新しいストップ注文を発注します。
PlaceStopTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice 新しいトレーリングストップ注文を出します。
PlaceTakeProfitOrder Side, Symbol, Quantity, StopPrice, LimitPrice 新しい利益確定注文を発注します。
PlaceTakeProfitTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice 新しいTake ProfitのTrailing注文を発注します
PlaceLimitMakerOrder Side, Symbol, Quantity 新しいLimit Market Orderを発注します
TestNewOrder Symbol, Side, Type 新しい注文の作成と署名/recvWindow の長さをテストします。新しい注文を作成して検証しますが、マッチングエンジンには送信しません。
QueryOrder 銘柄 注文のステータスを確認します。
CancelOrder 銘柄 アクティブな注文をキャンセルします。OrderId または OrigClientOrderId のいずれかを送信する必要があります。
CancelAllOpenOrders シンボル(オプション)  
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(One-Triggers-the-Other)注文リストを発注します。
NewOrderListOTOCO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingSide, PendingAboveType, PendingBelowType, PendingQuantity 新しいOTOCO(One-Triggers-a-One-Cancels-the-Other)注文リストを発注します。
NewSOROrder Symbol, Side, Type, Quantity スマートオーダールーティング(SOR)を使用して注文を出します。
TestSOROrder Symbol, Side, Type, Quantity Smart Order Routing(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 エンドポイントで確認できます。
Limit 価格は baseAsset から quoteAsset の方向で定義されます。
baseAmount または quoteAmount のいずれかを使用します。

CancelConvertLimitOrder OrderId ユーザーが指値注文をキャンセルできるようにします
GetConvertLimitOpenOrders   既存のすべての指値注文を照会できるようにします
GetConvertTradeHistory StartTime、EndTime startTimeとendTimeの最大間隔は30日です。

 

 

 

ウォレットエンドポイント

(*ウォレットエンドポイントはデモではなく本番サーバーでのみ動作します)

 

メソッド 説明
GetWalletSystemStatus システムステータスを取得します。
GetWalletAllCoinsInformation ユーザーのコイン情報を取得します(入出金可能なもの)。
GetWalletDailyAccountSnapshot Type: "SPOT", "MARGIN", "FUTURES"
  • クエリの期間は30日未満である必要があります
  • 過去1か月以内のクエリのみをサポートします
  • startTimeとendTimeが送信されない場合、デフォルトで過去7日間のレコードを返します
SetWalletDisableFastWithdrawSwitch このリクエストはアカウントの即時出金スイッチを無効にします。
このエンドポイントをリクエストするAPIキーの「trade」オプションを有効にする必要があります。
SetWalletEnableFastWithdrawSwitch このリクエストはアカウントの高速出金スイッチを有効にします。
このエンドポイントをリクエストする API キーに「trade」オプションを有効にする必要があります。
高速出金スイッチがオンになると、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 キーに対してユニバーサル転送の許可オプションを有効にする必要があります。MAIN_UMFUTURE スポットアカウントから USDⓈ-M 先物アカウントへの振替

タイプの列挙型:

  • MAIN_CMFUTURE スポット口座から COIN-M 先物口座への振替
  • MAIN_MARGIN スポット口座からマージン(クロス)口座への振替
  • UMFUTURE_MAIN USDⓈ-M 先物口座からスポット口座への振替
  • UMFUTURE_MARGIN USDⓈ-M 先物口座からマージン(クロス)口座への振替
  • CMFUTURE_MAIN COIN-M 先物口座からスポット口座への振替
  • CMFUTURE_MARGIN COIN-M 先物口座からマージン(クロス)口座への振替
  • MARGIN_MAIN マージン(クロス)口座からスポット口座への振替
  • MARGIN_UMFUTURE マージン(クロス)口座から USDⓈ-M 先物への振替
  • MARGIN_CMFUTURE マージン(クロス)口座から COIN-M 先物への振替
  • ISOLATEDMARGIN_MARGIN 分離マージン口座からマージン(クロス)口座への振替
  • MARGIN_ISOLATEDMARGIN マージン(クロス)口座から分離マージン口座への振替
  • ISOLATEDMARGIN_ISOLATEDMARGIN 分離マージン口座から分離マージン口座への振替
  • MAIN_FUNDING スポット口座からファンディング口座への振替
  • FUNDING_MAIN ファンディング口座からスポット口座への振替
  • FUNDING_UMFUTURE ファンディング口座から UMFUTURE 口座への振替
  • UMFUTURE_FUNDING UMFUTURE 口座からファンディング口座への振替
  • MARGIN_FUNDING MARGIN 口座からファンディング口座への振替
  • FUNDING_MARGIN ファンディング口座からマージン口座への振替
  • FUNDING_CMFUTURE ファンディング口座から CMFUTURE 口座への振替
  • CMFUTURE_FUNDING CMFUTURE 口座からファンディング口座への振替
GetWalletQueryUserUniversalTransferHistory
  • type が ISOLATEDMARGIN_MARGIN および ISOLATEDMARGIN_ISOLATEDMARGIN の場合、fromSymbol を送信する必要があります。
  • type が MARGIN_ISOLATEDMARGIN および ISOLATEDMARGIN_ISOLATEDMARGIN の場合、toSymbol を送信する必要があります。
  • 過去 6 ヶ月以内のクエリのみサポートされます。
  • startTime と endTime が送信されない場合、デフォルトで過去 7 日間のレコードを返します。
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バージョンが最新にアップグレードされている場合も影響しません。