API Cex Plus

Cex Plus

 

Ondersteunde API's

 

 

Eigenschappen

WebSockets API

WebSocket is een op TCP gebaseerd vollduplex-communicatieprotocol. Vollduplex betekent dat beide partijen elkaar asynchroon berichten kunnen sturen via hetzelfde communicatiekanaal. In dit gedeelte wordt beschreven welke berichten Exchange Plus en de client naar elkaar moeten sturen. Alle berichten moeten geldige JSON-objecten zijn.

 

WebSocket API wordt voornamelijk gebruikt voor het verkrijgen van informatie of het uitvoeren van acties die niet beschikbaar zijn of niet eenvoudig te doen zijn via REST API. Sommige verzoeken of acties zijn echter mogelijk in zowel REST API als WebSocket API. Exchange Plus verzendt berichten naar Client als antwoord op een eerder door Client verzonden verzoek, of als melding over een gebeurtenis (zonder voorafgaand verzoek van Client).

 

 

Openbare API-aanroepen

 

De snelheidslimiet voor openbare API is bedoeld om het systeem te beschermen tegen DDoS-aanvallen en ervoor te zorgen dat alle clients hetzelfde niveau van stabiele toegang hebben tot de Exchange Plus API-eindpunten. Openbare aanvragen zijn beperkt per IP-adres van waaruit de openbare API-aanvragen worden gedaan. Aanvraaglimieten worden bepaald op basis van de kosten die zijn gekoppeld aan elke openbare API-aanroep. Standaard heeft elke openbare aanvraag een kostprijs van 1 punt, maar voor sommige specifieke aanvragen kan deze kostprijs hoger zijn. Raadpleeg de actuele informatie over de kostprijs van aanvraagsnelheidslimieten in de specificatie van elke methode.

 

Exchange Plus beperkt openbare API-aanroepen tot maximaal 100 punten per minuut, rekening houdend met het feit dat elke openbare API-aanroep zijn kosten heeft (zie hieronder). Als de snelheidsgrens voor verzoeken wordt bereikt, antwoordt Exchange Plus met een fout, verstuurt een verbreekgebeurtenis naar de Client en sluit de WS-verbinding daarna. Exchange Plus blijft de Client bedienen vanaf de volgende kalenderminuut. In het volgende voorbeeld wordt de verzoekteller gereset om 11:02:00.000.

 

Methode Beschrijving
GetTicker Deze methode is ontworpen om actuele informatie over Ticker te verkrijgen, inclusief gegevens over huidige prijzen, 24-uurs prijs- en volumewijzigingen, laatste handelsevenement enz. van bepaalde activa.
GetOrderBook Met deze methode kan de client de huidige orderboekmomentopname ontvangen voor een specifiek handelspaar.
GetCandles Via de Candles-methode kan de client historische OHLCV-kaarsen ophalen van verschillende resoluties en gegevenstypen. De client kan aanvullende tijdframe- en limietfilters opgeven om het antwoord beter af te stemmen op de vereisten van de client.
GetTradeHistory Deze methode stelt de Client in staat historische gegevens op te vragen over uitgevoerde transacties voor het gevraagde handelspaar. De Client kan het Trade History-verzoek aanvullen met aanvullende filterparameters, zoals tijdsperiode, tradeIds-bereik, kant, enz. om transacties te ontvangen die overeenkomen met de verzoekparameters.
GetServerTime Deze methode wordt gebruikt om de huidige tijd op de Exchange Plus-server op te halen. Het kan nuttig zijn voor applicaties die gesynchroniseerd moeten zijn met de servertijd.
GetPairsInfo Met de Pair Info-methode kan de client de parameters ontvangen voor alle ondersteunde handelsparen.
GetCurrenciesInfo De methode Currencies Info stelt de client in staat om de parameters op te halen voor alle valuta's die zijn geconfigureerd in Exchange Plus, evenals de beschikbaarheid van stortingen en opnames tussen Exchange Plus en de CEX.IO Wallet.
GetProcessingInfo Dit verzoek stelt de client in staat om gedetailleerde informatie te ontvangen over beschikbare opties voor stortingen vanuit externe wallets en opnames naar externe wallets voor elke ondersteunde cryptovaluta, inclusief de naam van de cryptovaluta en beschikbare blockchains voor stortingen\opnames. Ook worden per ondersteunde blockchain het type cryptovaluta op die blockchain, de huidige beschikbaarheid van stortingen\opnames, minimumbedragen voor stortingen\opnames en externe opnamekosten aangegeven. Deze informatie maakt de client flexibeler in het kiezen van de gewenste blockchain voor het ontvangen van stortingsadressen en het initiëren van externe opnames via een bepaalde blockchain, zodat de client op een meer handige manier zijn crypto-activa kan overmaken naar of vanuit het CEX.IO Ecosysteem.
SubscribeOrderBook Door zich te abonneren via WebSocket kan de client zich abonneren op de orderboekfeed voor het gevraagde handelspaar. Als antwoord op een verzoek om orderboekabonnement ontvangt de client de huidige (initiële) orderboekmomentopname voor het gevraagde paar met het aangegeven seqId-nummer. Om volgende updates van het orderboek bij te houden, moet de client zich via WebSocket abonneren op berichten van het type "order_book_increment", die de naam van het handelspaar, het seqId-nummer en de delta's van de bied- en vraagprijsniveaus bevatten.
UnSubscribeOrderBook Afmelden van het orderboekkanaal.
SubscribeTrade Door de Trade Subscribe-methode te gebruiken kan de client via WebSocket abonneren op een live feed van handelsgebeurtenissen die plaatsvinden op het gevraagde handelspaar. Als reactie op het Trade Subscribe-verzoek ontvangt de client een unieke identificator van het handelsabonnement dat verder moet worden gebruikt voor het beëindigen van het abonnement wanneer het handelsabonnement niet langer nodig is. De client moet via WebSocket abonneren op "tradeHistorySnapshot" en "tradeUpdate"-berichten om initiële en periodieke handelsgeschiedenismomentopnamen en live handelsgebeurtenissen voor het gevraagde handelspaar te ontvangen.
UnSubscribeTrade Afmelden van het handelskanaal.

 

 

Voorbeeld: haal de nieuwste ticker van het BTC-USD-paar op

 


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;

 

 

 

Privé API-aanroepen

 

Exchange Plus gebruikt API-sleutels om toegang te verlenen tot privé-API's.

 

De client kan API-sleutels genereren, configureren en beheren, toestemmingsniveaus instellen, gecategoriseerde IP-adressen voor API-sleutels enz. via Exchange Plus Web Terminal in de sectie API-sleutelbeheer in het profiel.

 

API-sleutellimiet: Standaard kan een client maximaal 5 API-sleutels hebben.

 

Om de toegang tot bepaalde functionaliteit bij het gebruik van API-sleutels te beperken, moet voor elke API-sleutel een specifieke set machtigingen worden gedefinieerd. De gedefinieerde set machtigingen kan indien nodig verder worden bewerkt.

 

De volgende machtigingsniveaus zijn beschikbaar voor API-sleutels:

 

 

 

Methode Beschrijving
GetCurrentFee Deze methode geeft de huidige kosten aan op een specifiek moment, rekening houdend met het bijgewerkte 30-daagse volume van de klant en de dag van de week (kosten kunnen bijvoorbeeld verschillen in het weekend).
GetFeeStrategy Fee Strategy returns alle fee options, which could be applied for Client, considering Client’s trading volume, day of week, pairs, group of pairs etc. Deze methode provides information about general fee strategy, which includes alle possible trading fee values that can be applied for Client. To receive huidig trading fees, based on Client's huidig 30d trading volume, Client should use [Huidig Fee] method. To receive huidig 30d trading volume, Client should use [Volume] method.
GetVolume Dit verzoek stelt de client in staat zijn handelsvolume voor de afgelopen 30 dagen in USD-equivalent te ontvangen.
CreateAccount Dit verzoek stelt de Client in staat een nieuw subaccount aan te maken. Standaard kan een Client maximaal 5 subaccounts hebben, inclusief het hoofdaccount.
GetAccountStatus Door de Account Status V3-methode te gebruiken, kan de Client het huidige saldo en het indicatieve equivalent ervan in geconverteerde valuta (standaard "USD") achterhalen, evenals de bedragen die zijn vergrendeld in open (actieve) orders per sub-account en valuta. Als er een trading fee balance beschikbaar is voor de Client, zal de response ook algemene trading-fee-saldogegevens bevatten zoals promonaam, valutanaam, totaalsaldo en de vervaldatum van deze promo op de Trading Fee Balance. Het is de verantwoordelijkheid van de Client om het beschikbare trading-saldo van zijn sub-accounts bij te houden, namelijk het huidige sub-accountsaldo verminderd met het saldobedrag dat is vergrendeld in open (actieve) orders op het sub-account.
GetOrders Dit verzoek stelt de client in staat informatie over zijn orders op te vragen.
NewOrder Een client kan nieuwe orders plaatsen via de WebSocket API door gebruik te maken van Do My New Order Request. Naast een respons op dit verzoek stuurt Exchange Plus Account Event- en Execution Report-berichten naar de client als het verzoek succesvol is. Het responsbericht geeft de laatste up-to-date status van de order aan die op het moment van verzending van de respons in het systeem beschikbaar is. Als de client geen responsbericht heeft ontvangen op Do My New Order Request, kan de client de huidige status van de order opvragen via Get My Orders Request met de parameter clientOrderId. Bij het verzenden van een verzoek voor een nieuwe order wordt sterk aanbevolen de parameter clientOrderId te gebruiken die overeenkomt met het specifieke nieuwe orderverzoek aan de clientzijde. Exchange Plus vermijdt het meerdere malen plaatsen van orders met dezelfde clientOrderId. Als meer dan één nieuwe order met identieke clientOrderId en andere orderparameters wordt geïdentificeerd, plaatst Exchange Plus alleen de eerste order en retourneert de status van die order aan de client als respons op het tweede en volgende nieuwe orderverzoek met dezelfde parameters. Als meer dan één nieuwe order met identieke clientOrderId maar met verschillende andere orderparameters wordt geïdentificeerd, verwerkt Exchange Plus alleen de eerste order en wijst het tweede en volgende nieuwe orderverzoek met dezelfde clientOrderId maar met verschillende andere orderparameters af.
NewMarketOrder Plaatst een nieuwe marktorder.
NewLimitOrder Plaatst een nieuw limietorder.
CancelOrder De client kan orders annuleren. Samen met een antwoord op dit verzoek verzendt Exchange Plus Account-gebeurtenis- en Uitvoeringsrapportberichten naar de client als dit verzoek succesvol is. Als het verzoek om een order te annuleren wordt afgewezen, verzendt Exchange Plus ook een Order Annuleringsafwijzingsbericht.
CancelAllOrders Client kan alle openstaande orders annuleren via de WebSocket API. Naast een antwoord op dit verzoek start Exchange Plus het annuleringsproces voor alle openstaande orders en stuurt bijbehorende Account Event- en Execution Report-berichten naar de client.
GetTransactionHistory Dit verzoek stelt de client in staat zijn financiële transacties (stortingen, opnames, interne overdrachten, commissies of transacties) te raadplegen.
GetFundingHistory Dit verzoek stelt de client in staat zijn storting- en opnametransacties te vinden.
InternalTransfer De client kan verzoeken om geld over te boeken tussen zijn subaccounts of tussen zijn hoofdaccount en een subaccount. Exchange Plus brengt de client geen commissie in rekening voor het overboeken van fondsen tussen zijn accounts. Samen met een antwoord op dit verzoek stuurt Exchange Plus Account Event-berichten naar de client als dit verzoek succesvol is.
GetDepositAddress Deze methode kan door de client worden gebruikt om een cryptoadres te ontvangen voor het storten van cryptocurrency. Een stortingsadres kan worden gegenereerd voor hoofd- en subaccounts. De lijst met beschikbare blockchains voor het genereren van een stortingsadres kan door de client worden ontvangen via een Get Processing Info-aanvraag.
FundsDepositFromWallet De client kan fondsen storten van de CEX.IO Wallet naar een Exchange Plus-account. Het systeem vermijdt de verwerking van meerdere stortingsverzoeken met dezelfde clientTxId. Als er meerdere stortingsverzoeken met een identieke clientTxId worden ontvangen, verwerkt het systeem alleen het eerste stortingsverzoek en wijst het tweede en alle volgende stortingsverzoeken met dezelfde clientTxId af.
FundsWithdrawalToWallet De client kan fondsen opnemen van het Exchange Plus-account naar de CEX.IO Wallet. Het systeem vermijdt meerdere opnameverzoeken met dezelfde clientTxId. Als meerdere opnameverzoeken met identieke clientTxId worden ontvangen, verwerkt het systeem alleen het eerste opnameverzoek en wijst het tweede en volgende opnameverzoeken af met dezelfde clientTxId.
GetWalletBalance Haalt de CEX.IO-walletbalans op.
SubscribeAccountEvents Abonneert op realtime-accountgebeurtenisnotificaties (saldowijzigingen, orderuitvoeringen).
UnSubscribeAccountEvents Meld u af van accountgebeurtenismeldingen.
   

 

 

Voorbeeld: haal de orders op.

 


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;