API Cex Plus

Cex Plus

 

Unterstützte APIs

 

 

Properties

WebSockets API

WebSocket ist ein TCP-basiertes Vollduplex-Kommunikationsprotokoll. Vollduplex bedeutet, dass beide Parteien einander Nachrichten asynchron über denselben Kommunikationskanal senden können. Dieser Abschnitt beschreibt, welche Nachrichten Exchange Plus und Client einander senden sollten. Alle Nachrichten sollten gültige JSON-Objekte sein.

 

Die WebSocket API wird hauptsächlich verwendet, um Informationen zu erhalten oder Aktionen auszuführen, die mit der REST API nicht verfügbar oder nicht einfach durchführbar sind. Einige Anfragen oder Aktionen sind jedoch sowohl mit der REST API als auch mit der WebSocket API möglich. Exchange Plus sendet Nachrichten an den Client als Antwort auf eine zuvor vom Client gesendete Anfrage oder als Benachrichtigung über ein Ereignis (ohne vorherige Client-Anfrage).

 

 

Öffentliche API-Aufrufe

 

Das öffentliche API-Rate-Limit ist vorgesehen, um das System vor DDoS-Angriffen zu schützen und sicherzustellen, dass alle Clients die gleiche Stufe stabilen Zugriffs auf die Exchange-Plus-API-Endpunkte haben können. Öffentliche Anfragen sind durch die IP-Adresse begrenzt, von der aus öffentliche API-Anfragen gestellt werden. Anfragelimits werden anhand der mit jedem öffentlichen API-Aufruf verbundenen Kosten bestimmt. Standardmäßig hat jede öffentliche Anfrage Kosten von 1 Punkt, aber für einige spezifische Anfragen können diese Kosten höher sein. Aktuelle Informationen zu den Kosten des Anfrage-Rate-Limits finden Sie in der Spezifikation jeder Methode.

 

Exchange Plus begrenzt öffentliche API-Aufrufe auf maximal 100 Punkte pro Minute, wobei zu berücksichtigen ist, dass jeder öffentliche API-Aufruf seine eigenen Kosten hat (siehe unten). Wird das Anfragelimit erreicht, antwortet Exchange Plus mit einem Fehler, sendet ein Disconnected-Ereignis an den Client und schließt anschließend die WS-Verbindung. Exchange Plus bedient den Client ab der nächsten Kalenderminute weiter. Im folgenden Beispiel wird der Anfragezähler um 11:02:00.000 zurückgesetzt.

 

Methode Beschreibung
GetTicker Diese Methode ist darauf ausgelegt, aktuelle Informationen über den Ticker abzurufen, einschließlich Daten über aktuelle Preise, 24-Stunden-Preis- und Volumenänderungen, das letzte Trade-Ereignis usw. bestimmter Vermögenswerte.
GetOrderBook Diese Methode ermöglicht es dem Client, den aktuellen Orderbuch-Snapshot für ein bestimmtes Handelspaar zu empfangen.
GetCandles Mit der Candles-Methode kann der Client historische OHLCV-Kerzen verschiedener Auflösungen und Datentypen empfangen. Der Client kann zusätzliche Zeitrahmen- und Limit-Filter angeben, um die Antwort genauer an die Anforderungen des Clients anzupassen.
GetTradeHistory Diese Methode ermöglicht es dem Client, historische Daten zu aufgetretenen Trades für ein angefordertes Handelspaar abzurufen. Der Client kann die Trade-History-Anfrage mit zusätzlichen Filterparametern ergänzen, wie Zeitrahmen, tradeIds-Bereich, Seite usw., um Trades zu erhalten, die den Anfrageparametern entsprechen.
GetServerTime Diese Methode wird verwendet, um die aktuelle Zeit auf dem Exchange Plus-Server abzurufen. Sie kann für Anwendungen nützlich sein, die mit der Serverzeit synchronisiert werden müssen.
GetPairsInfo Die Methode Pair Info ermöglicht es dem Client, die Parameter für alle unterstützten Handelspaare zu empfangen.
GetCurrenciesInfo Die Methode Currencies Info ermöglicht es dem Client, die Parameter für alle in Exchange Plus konfigurierten Währungen sowie die Ein- und Auszahlungsverfügbarkeit zwischen Exchange Plus und der CEX.IO Wallet zu empfangen.
GetProcessingInfo Diese Anfrage ermöglicht es dem Client, detaillierte Informationen über verfügbare Optionen für Einzahlungen von externen Wallets und Auszahlungen an externe Wallets für jede unterstützte Kryptowährung zu erhalten, einschließlich des Kryptowährungsnamens und der verfügbaren Blockchains für Einzahlungen/Auszahlungen. Außerdem werden für jede unterstützte Blockchain der Typ der Kryptowährung auf der angegebenen Blockchain, die aktuelle Verfügbarkeit von Einzahlung/Auszahlung, die Mindestbeträge für Einzahlungen/Auszahlungen und die externen Auszahlungsgebühren angegeben. Verarbeitungsinformationen machen den Client flexibler bei der Auswahl der gewünschten Blockchain zum Erhalt der Einzahlungsadresse und zum Initiieren externer Auszahlungen über eine bestimmte Blockchain, sodass der Client einen bequemeren Weg zum Übertragen seiner Krypto-Assets zum oder vom CEX.IO-Ökosystem nutzt.
SubscribeOrderBook Der Client kann durch Abonnieren über WebSocket den Order-Book-Feed für ein angefordertes Handelspaar abonnieren. Als Antwort auf eine Order-Book-Subscribe-Anfrage erhält der Client den aktuellen (anfänglichen) Order-Book-Snapshot für das angeforderte Paar mit der angegebenen seqId-Nummer. Um die folgenden Aktualisierungen des Order Books zu verfolgen, muss der Client über WebSocket „order_book_increment“-Nachrichten abonnieren, die den Handelspaar-Namen, die seqId-Nummer sowie die Bids- und Asks-Preisniveau-Deltas enthalten.
UnSubscribeOrderBook Bestellt das Orderbuch-Abonnement ab.
SubscribeTrade Durch Verwendung der Trade-Subscribe-Methode kann sich der Client über WebSocket für einen Live-Feed von Trade-Ereignissen anmelden, die für das angeforderte Handelspaar auftreten. Als Antwort auf die Trade-Subscribe-Anfrage erhält der Client einen eindeutigen Bezeichner des Trade-Abonnements, der später für die Abbestellung verwendet werden sollte, wenn das Trade-Abonnement für den Client nicht mehr benötigt wird. Der Client sollte sich über WebSocket für "tradeHistorySnapshot"- und "tradeUpdate"-Nachrichten anmelden, um initiale und periodische Trade-History-Snapshots sowie Live-Trade-Ereignisse für das angeforderte Handelspaar zu empfangen.
UnSubscribeTrade Den Trade-Channel abbestellen.

 

 

Beispiel: den aktuellsten Ticker des BTC-USD-Paares abrufen

 


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-Aufrufe

 

Exchange Plus verwendet API-Schlüssel, um Zugriff auf private APIs zu gewähren.

 

Der Client kann API-Schlüssel generieren, konfigurieren und verwalten, Berechtigungsstufen festlegen, IPs für API-Schlüssel auf die Whitelist setzen usw. über das Exchange Plus Web Terminal im Abschnitt API Keys Management Profile.

 

API-Keys-Limit: Standardmäßig kann ein Client bis zu 5 API Keys haben.

 

Um den Zugriff auf bestimmte Funktionen bei der Verwendung von API-Schlüsseln einzuschränken, sollte für jeden API-Schlüssel ein spezifischer Satz von Berechtigungen definiert werden. Der definierte Berechtigungssatz kann bei Bedarf später bearbeitet werden.

 

Die folgenden Berechtigungsebenen sind für API-Schlüssel verfügbar:

 

 

 

Methode Beschreibung
GetCurrentFee Diese Methode gibt die aktuellen Gebühren zu einem bestimmten Zeitpunkt an, unter Berücksichtigung des aktuellen 30-Tage-Volumens des Clients und des Wochentags (Gebühren können z. B. an Wochenenden abweichen).
GetFeeStrategy Fee Strategy gibt alle Gebührenoptionen zurück, die für den Client angewendet werden könnten, unter Berücksichtigung des Handelsvolumens des Clients, des Wochentags, der Paare, der Paargruppen usw. Diese Methode liefert Informationen über die allgemeine Gebührenstrategie, die alle möglichen Handelsgebührenwerte umfasst, die für den Client angewendet werden können. Um die aktuellen Handelsgebühren basierend auf dem aktuellen 30-Tage-Handelsvolumen des Clients zu erhalten, sollte der Client die Methode [Current Fee] verwenden. Um das aktuelle 30-Tage-Handelsvolumen zu erhalten, sollte der Client die Methode [Volume] verwenden.
GetVolume Diese Anfrage ermöglicht es dem Client, sein Handelsvolumen der letzten 30 Tage im USD-Äquivalent zu erhalten.
CreateAccount Diese Anfrage ermöglicht es dem Client, ein neues Unterkonto zu erstellen. Standardmäßig kann ein Client bis zu 5 Unterkonten haben, einschließlich des Hauptkontos.
GetAccountStatus Durch Verwendung der Account-Status-V3-Methode kann der Client das aktuelle Guthaben und seinen indikativen Gegenwert in der umgerechneten Währung (standardmäßig „USD“), die in offenen (aktiven) Orders gesperrten Beträge je Unterkonto und Währung herausfinden. Wenn für den Client ein Handelsgebühren-Guthaben verfügbar ist, enthält die Antwort außerdem allgemeine Handelsgebühren-Guthabendaten wie Promo-Name, Währungsname, Gesamtguthaben und Ablaufdatum dieser Promo auf dem Handelsgebühren-Guthaben. Es liegt in der Verantwortung des Clients, das verfügbare Handelsguthaben seiner Unterkonten zu verfolgen, da das aktuelle Unterkonto-Guthaben um den Betrag reduziert wird, der in offenen (aktiven) Orders auf dem Unterkonto gesperrt ist.
GetOrders Diese Anfrage ermöglicht es dem Client, Informationen über seine Aufträge herauszufinden.
NewOrder Der Client kann neue Orders über die WebSocket-API platzieren, indem er Do My New Order Request verwendet. Zusammen mit einer Antwort auf diese Anfrage sendet Exchange Plus Account-Event- und Execution-Report-Nachrichten an den Client, wenn die Anfrage erfolgreich ist. Die Antwortnachricht gibt den letzten aktuellen Status der Order an, der im System zum Zeitpunkt des Sendens der Antwort verfügbar ist. Wenn der Client keine Antwortnachricht auf Do My New Order Request erhalten hat, kann der Client den aktuellen Status der Order abfragen, indem er Get My Orders Request mit dem Parameter clientOrderId verwendet. Beim Senden einer Anfrage für eine neue Order wird dringend empfohlen, den Parameter clientOrderId zu verwenden, der der spezifischen New-Order-Anfrage auf der Client-Seite entspricht. Exchange Plus vermeidet das mehrfache Platzieren von Orders mit derselben clientOrderId. Wenn mehr als eine neue Order mit identischer clientOrderId und anderen identischen Order-Parametern identifiziert werden, platziert Exchange Plus nur die erste Order und gibt den Status dieser Order in der Antwort auf die zweite und nachfolgende New-Order-Anfragen mit denselben Parametern an den Client zurück. Wenn mehr als eine neue Order mit identischer clientOrderId, aber mit anderen unterschiedlichen Order-Parametern identifiziert werden, verarbeitet Exchange Plus nur die erste Order und lehnt die zweite und nachfolgende New-Order-Anfragen mit derselben clientOrderID, aber mit anderen unterschiedlichen Order-Parametern ab.
NewMarketOrder Platziert eine neue Market-Order.
NewLimitOrder Platziert eine neue Limit-Order.
CancelOrder Der Client kann Orders abbrechen. Zusammen mit einer Antwort auf diese Anforderung sendet Exchange Plus Account-Event- und Execution-Report-Nachrichten an den Client, wenn diese Anforderung erfolgreich ist. Wenn die Anforderung zum Abbrechen einer Order abgelehnt wird, sendet Exchange Plus außerdem eine Order-Cancellation-Rejection-Nachricht.
CancelAllOrders Der Client kann alle offenen Orders über die WebSocket-API stornieren. Zusammen mit einer Antwort auf diese Anfrage startet Exchange Plus den Stornierungsprozess für alle offenen Orders und sendet entsprechende Account-Event- und Execution-Report-Nachrichten an den Client.
GetTransactionHistory Diese Anfrage ermöglicht es dem Client, seine Finanztransaktionen herauszufinden (Einzahlungen, Auszahlungen, interne Überweisungen, Provisionen oder Trades).
GetFundingHistory Diese Anfrage ermöglicht es dem Client, seine Einzahlungs- und Auszahlungstransaktionen zu finden.
InternalTransfer Der Client kann anfordern, Geld zwischen seinen Unterkonten oder zwischen seinem Hauptkonto und einem Unterkonto zu übertragen. Exchange Plus berechnet dem Client keine Provision für die Übertragung von Geldern zwischen seinen Konten. Zusammen mit einer Antwort auf diese Anfrage sendet Exchange Plus dem Client Account-Event-Nachrichten, wenn diese Anfrage erfolgreich ist.
GetDepositAddress Diese Methode kann vom Client verwendet werden, um eine Krypto-Adresse zum Einzahlen von Kryptowährung zu erhalten. Einzahlungsadressen können für Haupt- und Unterkonten generiert werden. Die Liste der verfügbaren Blockchains zum Generieren von Einzahlungsadressen kann vom Client über die Anfrage Get Processing Info empfangen werden.
FundsDepositFromWallet Der Client kann Gelder von der CEX.IO-Wallet auf das Exchange-Plus-Konto einzahlen. Das System vermeidet die Verarbeitung mehrerer Einzahlungsanfragen mit derselben clientTxId. Wenn mehrere Einzahlungsanfragen mit identischer clientTxId empfangen werden, verarbeitet das System nur die erste Einzahlungsanfrage und lehnt die zweite und nachfolgende Einzahlungsanfragen mit derselben clientTxId ab.
FundsWithdrawalToWallet Der Client kann Gelder vom Exchange-Plus-Konto in die CEX.IO-Wallet abheben. Das System vermeidet mehrfache Abhebungsanfragen mit derselben clientTxId. Wenn mehrere Abhebungsanfragen mit identischer clientTxId eingehen, verarbeitet das System nur die erste Abhebungsanfrage und lehnt die zweite und nachfolgende Abhebungsanfragen mit derselben clientTxId ab.
GetWalletBalance Ruft die CEX.IO-Wallet-Guthaben-Informationen ab.
SubscribeAccountEvents Abonniert Echtzeit-Benachrichtigungen über Kontoereignisse (Guthabenänderungen, Order-Ausführungen).
UnSubscribeAccountEvents Hebt das Abonnement von Account-Ereignisbenachrichtigungen auf.
   

 

 

Beispiel: die Orders abrufen.

 


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;