API Cex Plus

Cex Plus

 

지원되는 API

 

 

Properties

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는 Public API 호출을 분당 최대 100 포인트로 제한하며, 각 Public API 호출에는 비용이 있다는 점을 고려합니다(아래 참조). 요청 속도 제한에 도달하면 Exchange Plus는 오류로 응답하고, Client에 disconnected 이벤트를 보내며, 그 후 WS 연결을 닫습니다. Exchange Plus는 다음 달력 분(minute)부터 Client에 대한 서비스를 계속합니다. 다음 예제에서 요청 카운터는 11:02:00.000에 재설정됩니다.

 

메서드 설명
GetTicker 이 메서드는 현재 가격, 24시간 가격 및 거래량 변동, 마지막 거래 이벤트 등 특정 자산에 대한 Ticker의 현재 정보를 얻도록 설계되었습니다.
GetOrderBook 이 메서드를 사용하면 클라이언트가 특정 trading pair에 대한 현재 order book 스냅샷을 수신할 수 있습니다.
GetCandles Candles 메서드를 사용하여 클라이언트는 다양한 해상도와 데이터 유형의 과거 OHLCV 캔들을 받을 수 있습니다. 클라이언트는 추가 시간 프레임과 제한 필터를 표시하여 응답을 클라이언트의 요구 사항에 더 정확하게 맞출 수 있습니다.
GetTradeHistory 이 메서드를 통해 클라이언트는 요청된 거래 쌍에서 발생한 거래에 대한 과거 데이터를 얻을 수 있습니다. 클라이언트는 timeframe 기간, tradeIds 범위, side 등의 추가 필터 매개변수로 Trade History 요청을 보완하여 요청 매개변수와 일치하는 거래를 받을 수 있습니다.
GetServerTime 이 메서드는 Exchange Plus 서버의 현재 시간을 가져오는 데 사용됩니다. 서버 시간과 동기화해야 하는 애플리케이션에 유용할 수 있습니다.
GetPairsInfo Pair Info 메서드는 클라이언트가 지원되는 모든 거래 쌍의 매개변수를 받을 수 있게 합니다.
GetCurrenciesInfo Currencies Info 메서드는 클라이언트가 Exchange Plus에 구성된 모든 통화의 매개변수와, Exchange Plus와 CEX.IO Wallet 간의 입출금 가용성을 수신할 수 있도록 합니다.
GetProcessingInfo 이 요청을 통해 클라이언트는 각 지원되는 암호화폐에 대해 외부 지갑에서 입금하고 외부 지갑으로 출금하기 위한 사용 가능한 옵션에 대한 상세 정보를 받을 수 있으며, 여기에는 암호화폐 이름과 입금\출금에 사용 가능한 블록체인이 포함됩니다. 또한 각 지원되는 블록체인에 대해 해당 블록체인의 암호화폐 유형, 현재 입금\출금 가능 여부, 입금\출금 최소 금액, 외부 출금 수수료가 표시됩니다. 처리 정보는 클라이언트가 입금 주소를 받고 특정 블록체인을 통해 외부 출금을 시작하기 위해 원하는 블록체인을 선택하는 데 더 유연하게 해주므로, 클라이언트가 CEX.IO 생태계로 또는 생태계에서 자신의 암호화 자산을 전송하는 더 편리한 방법을 사용할 수 있습니다.
SubscribeOrderBook WebSocket을 통해 구독하면 클라이언트는 요청한 거래 쌍에 대한 호가창 피드를 구독할 수 있습니다. Order Book Subscribe 요청에 대한 응답으로 클라이언트는 표시된 seqId 번호와 함께 요청한 쌍의 현재(초기) 호가창 스냅샷을 받습니다. 호가창에 대한 후속 업데이트를 추적하려면 클라이언트는 WebSocket을 통해 "order_book_increment" 메시지를 구독해야 하며, 이 메시지에는 거래 쌍 이름, seqId 번호, 매수 및 매도 가격 레벨 델타가 포함됩니다.
UnSubscribeOrderBook 호가창 채널에서 구독을 취소합니다.
SubscribeTrade Trade Subscribe 메서드를 사용하면 클라이언트는 WebSocket을 통해 요청된 거래 페어에서 발생하는 거래 이벤트의 라이브 피드를 구독할 수 있습니다. Trade Subscribe 요청에 대한 응답으로 클라이언트는 거래 구독의 고유 식별자를 받게 되며, 이는 클라이언트가 더 이상 거래 구독이 필요하지 않을 때 구독 취소에 추가로 사용해야 합니다. 클라이언트는 초기 및 주기적 Trade History 스냅샷과 요청된 거래 페어의 라이브 거래 이벤트를 수신하기 위해 WebSocket을 통해 "tradeHistorySnapshot" 및 "tradeUpdate" 메시지를 구독해야 합니다.
UnSubscribeTrade trade 채널에서 구독을 취소합니다.

 

 

예제: BTC-USD 쌍의 최신 ticker 가져오기

 


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 키를 사용하여 Private API에 대한 액세스를 허용합니다.

 

클라이언트는 API Keys Management Profile 섹션의 Exchange Plus Web Terminal을 통해 api key를 생성, 구성 및 관리하고, permission 수준을 설정하고, API key에 대한 허용된 IP 등을 설정할 수 있습니다.

 

API Keys 제한: 기본적으로 클라이언트는 최대 5개의 API Key를 가질 수 있습니다.

 

API 키를 사용하는 동안 특정 기능에 대한 액세스를 제한하려면 각 API 키에 대해 특정 권한 집합을 정의해야 합니다. 정의된 권한 집합은 필요한 경우 나중에 추가로 편집할 수 있습니다.

 

API Key에 대해 다음 권한 수준을 사용할 수 있습니다:

 

 

 

메서드 설명
GetCurrentFee 이 메서드는 Client의 최신 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 메시지를 클라이언트에 보냅니다. Response 메시지는 응답을 보내는 시점에 시스템에서 사용할 수 있는 주문의 최신 상태를 나타냅니다. 클라이언트가 Do My New Order Request에 대한 Response 메시지를 받지 못한 경우, 클라이언트는 clientOrderId 매개변수와 함께 Get My Orders Request를 사용하여 주문의 현재 상태를 쿼리할 수 있습니다. 새 주문에 대한 요청을 보낼 때, 클라이언트 측의 특정 새 주문 요청에 해당하는 clientOrderId 매개변수를 사용하는 것이 강력히 권장됩니다. Exchange Plus는 동일한 clientOrderId로 주문을 여러 번 하는 것을 방지합니다. 동일한 clientOrderId 및 기타 동일한 주문 매개변수를 가진 둘 이상의 새 주문이 식별되면, Exchange Plus는 첫 번째 주문만 처리하고 동일한 매개변수를 가진 두 번째 및 이후의 새 주문 요청에 대한 응답으로 해당 주문의 상태를 클라이언트에 반환합니다. 동일한 clientOrderId이지만 다른 주문 매개변수를 가진 둘 이상의 새 주문이 식별되면, Exchange Plus는 첫 번째 주문만 처리하고 동일한 clientOrderID이지만 다른 주문 매개변수를 가진 두 번째 및 이후의 새 주문 요청을 거부합니다.
NewMarketOrder 새 시장가 주문을 넣습니다.
NewLimitOrder 새 limit 주문을 합니다.
CancelOrder 클라이언트는 주문을 취소할 수 있습니다. 이 요청에 대한 응답과 함께, 이 요청이 성공하면 Exchange Plus는 클라이언트에 Account Event 및 Execution Report 메시지를 보냅니다. 또한 주문 취소 요청이 거부되면, Exchange Plus는 Order Cancellation Rejection 메시지를 보냅니다.
CancelAllOrders 클라이언트는 WebSocket API를 통해 모든 미체결 주문을 취소할 수 있습니다. 이 요청에 대한 응답과 함께 Exchange Plus는 모든 미체결 주문에 대한 취소 프로세스를 시작하고 해당 Account Event 및 Execution Report 메시지를 클라이언트에 보냅니다.
GetTransactionHistory 이 요청을 통해 클라이언트는 자신의 금융 거래(입금, 출금, 내부 이체, 수수료 또는 거래)를 확인할 수 있습니다.
GetFundingHistory 이 요청을 통해 클라이언트는 자신의 입금 및 출금 거래를 찾을 수 있습니다.
InternalTransfer 클라이언트는 자신의 하위 계정 간 또는 메인 계정과 하위 계정 간에 자금 이체를 요청할 수 있습니다. Exchange Plus는 계정 간 자금 이체에 대해 클라이언트에게 수수료를 부과하지 않습니다. 이 요청에 대한 응답과 함께, 요청이 성공하면 Exchange Plus는 클라이언트에게 Account Event 메시지를 보냅니다.
GetDepositAddress 이 메서드는 클라이언트가 암호화폐를 입금하기 위한 crypto 주소를 받는 데 사용할 수 있습니다. 입금 주소는 메인 및 하위 계정에 대해 생성할 수 있습니다. 입금 주소 생성에 사용할 수 있는 블록체인 목록은 Get Processing Info 요청을 통해 클라이언트가 받을 수 있습니다.
FundsDepositFromWallet 클라이언트는 CEX.IO Wallet에서 Exchange Plus 계정으로 자금을 입금할 수 있습니다. 시스템은 동일한 clientTxId를 가진 여러 입금 요청의 처리를 방지합니다. 동일한 clientTxId를 가진 여러 입금 요청이 수신되면 시스템은 첫 번째 입금 요청만 처리하고 동일한 clientTxId를 가진 두 번째 및 후속 입금 요청을 거부합니다.
FundsWithdrawalToWallet 클라이언트는 Exchange Plus 계정에서 CEX.IO Wallet으로 자금을 인출할 수 있습니다. 시스템은 동일한 clientTxId로 여러 인출 요청이 발생하는 것을 방지합니다. 동일한 clientTxId로 여러 인출 요청이 수신되면, 시스템은 첫 번째 인출 요청만 처리하고 동일한 clientTxId를 가진 두 번째 및 후속 인출 요청을 거부합니다.
GetWalletBalance CEX.IO Wallet 잔액 정보를 검색합니다.
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;