sgcWebSockets 2023.8.0 から CEX.IO Plus API がサポートされています。
対応 API
- WebSockets API:公開 WebSocket サーバーに接続し、リアルタイムの市場データ更新を取得します。
WebSockets API
WebSocket は TCP ベースの全二重通信プロトコルです。全二重とは、同一の通信チャネルを使用して双方が非同期にメッセージを送受信できることを意味します。このセクションでは、Exchange Plus とクライアントが送受信すべきメッセージについて説明します。すべてのメッセージは有効な JSON オブジェクトである必要があります。
WebSocket API は主に、REST API では利用できない情報の取得やアクションの実行に使用されます。ただし、REST API と WebSocket API の両方で実行できるリクエストやアクションも存在します。Exchange Plus はクライアントへのレスポンス、またはイベント通知(クライアントからのリクエストなし)としてメッセージを送信します。
Public API Calls
パブリック API レート制限は、DDoS 攻撃からシステムを保護し、すべてのクライアントが Exchange Plus API エンドポイントに同等の安定したアクセスを確保するために設けられています。パブリックリクエストは、API リクエスト元の IP アドレスで制限されます。リクエスト制限は各パブリック API 呼び出しのコストに基づいて決定されます。デフォルトでは各パブリックリクエストのコストは 1 ポイントですが、一部のリクエストはコストが高くなる場合があります。各メソッドの仕様で最新のレート制限コスト情報を確認してください。
Exchange Plus はパブリック API 呼び出しを 1 分あたり最大 100 ポイントに制限しています(各 API 呼び出しのコストを考慮)。レート制限に達した場合、Exchange Plus はエラーで応答し、クライアントへ切断イベントを送信してから WS 接続を閉じます。Exchange Plus は次の暦分から再びクライアントへのサービスを再開します。次の例では、リクエストカウンターは 11:02:00.000 にリセットされます。
例: 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;
Private API Calls
Exchange Plus ではプライベート API へのアクセスに API キーを使用します。
クライアントは Exchange Plus ウェブターミナルの「API キー管理プロファイル」セクションから、API キーの生成・設定・管理、権限レベルの設定、API キーのホワイトリスト IP 設定などを行えます。
API キーの上限:デフォルトでは、クライアントは最大 5 つの API キーを保有できます。
API キーを使用する際に特定の機能へのアクセスを制限するため、各 API キーには特定の権限セットを定義する必要があります。定義した権限セットは後から編集することもできます。
API キーで利用可能な権限レベルは以下のとおりです:
- Read(読み取り):アカウント関連データの閲覧、レポートの受信、市場データのサブスクリプションなどに対応する権限レベルです。
- Trade(取引):アカウントに代わって注文の発注・取消を許可する権限レベルです。
- Funds Internal(内部送金):CEX.IO Exchange Plus ポートフォリオ内のアカウント間(サブアカウント間、またはメインアカウントとサブアカウント間)での資金移動を許可する権限レベルです。
- Funds Wallet(ウォレット送金):CEX.IO Exchange Plus ポートフォリオのアカウント(メインアカウントおよびサブアカウント)から CEX.IO ウォレットへの資金移動、およびその逆を許可する権限レベルです。
例:注文一覧を取得する。
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;
