API Cex Plus

Cex Plus

 

サポートされている API

 

 

プロパティ

WebSockets API

WebSocket は TCP ベースの全二重通信プロトコルです。全二重とは、両者が同じ通信チャネルを使用して非同期にメッセージを送り合えることを意味します。このセクションでは、Exchange Plus とクライアントが互いに送り合うべきメッセージを説明します。すべてのメッセージは有効な JSON オブジェクトである必要があります。

 

WebSocket API は主に REST API で利用できないまたは行いにくい情報を取得したりアクションを実行したりするために使用されます。ただし、一部のリクエストやアクションは REST API と WebSocket API の両方で実行できます。Exchange Plus は、クライアントが以前に送信したリクエストへのレスポンスとして、またはイベントに関する通知(クライアントの事前リクエストなし)としてクライアントにメッセージを送信します。

 

 

パブリック API 呼び出し

 

パブリックAPIのレート制限は、DDoS攻撃からシステムを保護し、すべてのクライアントがExchange Plus APIエンドポイントへの同等の安定したアクセスを確保するために設けられています。パブリックリクエストは、パブリックAPIリクエストが行われるIPアドレスによって制限されます。リクエスト制限は各パブリックAPIコールに関連するコストによって決まります。デフォルトでは、各パブリックリクエストのコストは1ポイントですが、特定のリクエストではこのコストが高くなる場合があります。各メソッドの仕様で最新のリクエストレート制限コスト情報を確認してください。

 

Exchange Plus は、パブリック API の呼び出しを1分あたり最大100ポイントに制限しています。各パブリック API 呼び出しにはコストがあります(以下を参照)。リクエストのレート制限に達すると、Exchange Plus はエラーで応答し、クライアントに切断イベントを送信してから WebSocket 接続を閉じます。Exchange Plus は次のカレンダー分からクライアントへのサービスを再開します。次の例では、リクエストカウンターは11:02:00.000にリセットされます。

 

メソッド 説明
GetTicker このメソッドは、特定の資産の現在の価格、24 時間の価格と出来高の変化、最後の取引イベントなどを含む Ticker の現在情報を取得するように設計されています。
GetOrderBook このメソッドにより、クライアントは特定の取引ペアの現在の注文板スナップショットを受信できます。
GetCandles Candlesメソッドを使用すると、クライアントはさまざまな解像度とデータタイプの過去のOHLCVローソク足を受信できます。クライアントは、追加の時間枠と制限フィルターを指定して、レスポンスをクライアントの要件により正確にすることができます。
GetTradeHistory このメソッドを使用すると、クライアントは要求された取引ペアで発生した取引の履歴データを取得できます。クライアントは、リクエストに一致する取引を受信するために、期間、取引 ID 範囲、売買方向などの追加フィルターパラメータで取引履歴リクエストを補足できます。
GetServerTime このメソッドは Exchange Plus サーバーの現在時刻を取得するために使用されます。サーバーの時刻と同期する必要があるアプリケーションに便利です。
GetPairsInfo Pair Info メソッドにより、クライアントはサポートされているすべての取引ペアのパラメーターを受け取ることができます。
GetCurrenciesInfo Currencies Info メソッドを使用すると、クライアントは Exchange Plus で設定されたすべての通貨のパラメータ、および Exchange Plus と CEX.IO ウォレット間の入出金の可否を受け取ることができます。
GetProcessingInfo このリクエストにより、クライアントは外部ウォレットからの入金および外部ウォレットへの出金のオプションに関する詳細情報を取得できます。各サポートされている暗号通貨について、暗号通貨名および入出金可能なブロックチェーンが含まれます。また、各サポートされているブロックチェーンについて、そのブロックチェーン上の暗号通貨の種類、現在の入出金可否、入出金の最低金額、外部出金手数料が記載されています。この情報により、クライアントは入金アドレスの受け取りや外部出金の開始に最適なブロックチェーンを選択する際に、より柔軟な対応が可能になります。
SubscribeOrderBook クライアントは WebSocket 経由でサブスクライブすることで、リクエストされた取引ペアの注文書フィードをサブスクライブできます。注文書サブスクライブリクエストへのレスポンスとして、クライアントはリクエストされたペアの現在の(初期)注文書スナップショットを指定された seqId 番号とともに受け取ります。注文書の以降の更新を追跡するには、クライアントは WebSocket 経由で「order_book_increment」メッセージをサブスクライブする必要があります。これには取引ペア名、seqId 番号、買い注文と売り注文の価格レベルのデルタが含まれます。
UnSubscribeOrderBook オーダーブックチャンネルからアンサブスクライブします。
SubscribeTrade Trade Subscribe メソッドを使用することで、クライアントはリクエストされた取引ペアで発生するトレードイベントのライブフィードを WebSocket 経由で購読できます。Trade Subscribe リクエストへの応答として、クライアントはトレードのサブスクリプションが不要になったときの購読解除に使用するトレードサブスクリプションの一意の識別子を受け取ります。クライアントは「tradeHistorySnapshot」と「tradeUpdate」メッセージを受信するために WebSocket 経由で購読し、リクエストされた取引ペアの初期および定期的なトレード履歴スナップショットとライブトレードイベントを受け取る必要があります。
UnSubscribeTrade 取引チャンネルの購読を解除します。

 

 

使用例: BTC-USD ペアの最新ティッカーを取得します。

 


oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.OnCexPlusConnect := OnCexPlusConnectEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
 
procedure OnCexPlusConnectEvent(Sender: TObject);
begin
  oCexPlus.GetTicker('BTC-USD');
end;
 
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Ticker data: ' + Msg);
end;

 

 

 

プライベート API 呼び出し

 

Exchange Plus はプライベート API へのアクセスを許可するために API キーを使用します。

 

クライアントは、Exchange Plus Web TerminalのAPI Keys Management Profileセクションを介して、APIキーの生成、設定、管理、権限レベルの設定、APIキーのホワイトリスト登録されたIPなどを行うことができます。

 

API キーの制限: デフォルトでは、クライアントは最大 5 つの API キーを持てます。

 

API キーを使用する際に特定の機能へのアクセスを制限するには、各 API キーに対して特定のパーミッションセットを定義する必要があります。定義されたパーミッションセットは必要に応じてさらに編集できます。

 

API キーに使用可能な権限レベルは以下のとおりです。

 

 

 

メソッド 説明
GetCurrentFee このメソッドは、クライアントの最新30日間の取引量と曜日(例えば週末は手数料が異なる場合があります)を考慮した特定時点の現在の手数料を示します。
GetFeeStrategy Fee Strategy は、クライアントの取引量、曜日、ペア、ペアのグループなどを考慮して、クライアントに適用され得るすべての手数料オプションを返します。このメソッドは、クライアントに適用可能なすべての取引手数料の値を含む、一般的な手数料戦略に関する情報を提供します。クライアントの現在の30日間の取引量に基づく現在の取引手数料を受け取るには、クライアントは [Current Fee] メソッドを使用する必要があります。現在の30日間の取引量を受け取るには、クライアントは [Volume] メソッドを使用する必要があります。
GetVolume このリクエストにより、クライアントは過去 30 日間の USD 相当の取引量を受け取ることができます。
CreateAccount このリクエストにより、クライアントは新しいサブアカウントを作成できます。デフォルトでは、クライアントはメインアカウントを含めて最大 5 つのサブアカウントを持つことができます。
GetAccountStatus Account Status V3メソッドを使用することで、クライアントは現在の残高と、変換通貨(デフォルトは「USD」)での参考換算額、各サブアカウントおよび通貨ごとにオープン(アクティブ)注文でロックされている金額を確認できます。クライアントに取引手数料残高が利用可能な場合、レスポンスにはTrading Fee Balanceのプロモ名、通貨名、合計残高、このプロモの有効期限といった一般的な取引手数料残高データも含まれます。サブアカウントで利用可能な取引残高を、現在のサブアカウント残高からサブアカウントのオープン(アクティブ)注文でロックされている残高額を差し引いた値として追跡するのは、クライアントの責任です。
GetOrders このリクエストにより、クライアントは自分の注文に関する情報を確認できます。
NewOrder クライアントは、Do My New Order Requestを使用してWebSocket APIを介して新規注文を発注できます。このリクエストへの応答とともに、リクエストが成功するとExchange PlusはAccount EventおよびExecution ReportメッセージをClientに送信します。応答メッセージは、応答送信時点でシステムで利用可能な注文の最新ステータスを示します。ClientがDo My New Order Requestへの応答メッセージを受信しなかった場合、ClientはclientOrderIdパラメータを使用してGet My Orders Requestで注文の現在のステータスを照会できます。新規注文をリクエストする際は、クライアント側の特定の新規注文リクエストに対応するclientOrderIdパラメータを使用することを強く推奨します。Exchange Plusは、同じclientOrderIdで複数回注文を発注することを回避します。同一のclientOrderIdとその他の注文パラメータを持つ複数の新規注文が識別された場合、Exchange Plusは最初の注文のみを発注し、同じパラメータを持つ2番目以降の新規注文リクエストへの応答として、その注文のステータスをClientに返します。同一のclientOrderIdだが他の注文パラメータが異なる複数の新規注文が識別された場合、Exchange Plusは最初の注文のみを処理し、同じclientOrderIDだが他の注文パラメータが異なる2番目以降の新規注文リクエストを拒否します。
NewMarketOrder 新しい成行注文を出します。
NewLimitOrder 新しい指値注文を発注します。
CancelOrder クライアントは注文をキャンセルできます。このリクエストへのレスポンスとともに、このリクエストが成功した場合、Exchange Plus はクライアントにアカウントイベントと約定レポートメッセージを送信します。また、注文キャンセルのリクエストが拒否された場合、Exchange Plus は注文キャンセル拒否メッセージを送信します。
CancelAllOrders クライアントは WebSocket API 経由ですべての未決注文をキャンセルできます。このリクエストへのレスポンスとともに、Exchange Plus はすべての未決注文のキャンセルプロセスを開始し、対応するアカウントイベントと約定レポートメッセージをクライアントに送信します。
GetTransactionHistory このリクエストにより、クライアントは自身の金融取引(入金、出金、内部送金、手数料、または取引)を確認できます。
GetFundingHistory このリクエストにより、クライアントは入出金トランザクションを確認できます。
InternalTransfer クライアントはサブアカウント間、またはメインアカウントとサブアカウント間の資金移動をリクエストできます。Exchange Plus はアカウント間の資金移動に手数料を請求しません。このリクエストが成功した場合、Exchange Plus はクライアントにアカウントイベントメッセージを送信します。
GetDepositAddress このメソッドはクライアントが暗号通貨の入金用の暗号アドレスを受け取るために使用できます。入金アドレスはメインアカウントおよびサブアカウントに対して生成できます。入金アドレスを生成するために利用可能なブロックチェーンの一覧は、クライアントが「処理情報の取得」リクエストを通じて取得できます。
FundsDepositFromWallet クライアントは、CEX.IO Walletから Exchange Plusアカウントに資金を入金できます。システムは、同じclientTxIdを持つ複数の入金リクエストの処理を回避します。同じclientTxIdを持つ複数の入金リクエストを受信した場合、システムは最初の入金リクエストのみを処理し、同じclientTxIdを持つ2番目以降の入金リクエストを拒否します。
FundsWithdrawalToWallet クライアントは Exchange Plus アカウントから CEX.IO ウォレットに資金を出金できます。システムは同じ clientTxId を持つ複数の出金リクエストを回避します。同一の clientTxId を持つ複数の出金リクエストが受信された場合、システムは最初の出金リクエストのみを処理し、同じ clientTxId を持つ 2 番目以降の出金リクエストを拒否します。
GetWalletBalance CEX.IO ウォレットの残高情報を取得します。
SubscribeAccountEvents リアルタイムのアカウントイベント通知(残高変更、注文約定)にサブスクライブします。
UnSubscribeAccountEvents アカウントイベント通知のサブスクライブを解除します。
   

 

 

例: 注文を取得します。

 


oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your-api-key';
oCexPlus.CexPlus.ApiSecret := 'your-api-secret';
oCexPlus.OnCexPlusAuthenticated := OnCexPlusAuthenticatedEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
 
procedure OnCexPlusAuthenticatedEvent(Sender: TObject);
begin
  oCexPlus.GetOrders();
end;
 
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Orders: ' + Msg);
end;