Kucoin to międzynarodowa, wielojęzyczna giełda kryptowalut. Udostępnia szereg API umożliwiających dostęp do danych Kucoin. Obsługiwane są następujące API:
Kucoin API posiada 2 typy metod: publiczne i prywatne. Metody publiczne są dostępne bez uwierzytelniania, na przykład: pobieranie cen tickers. Metody prywatne związane z danymi użytkownika wymagają użycia kluczy Kucoin API.
REST API
Aby subskrybować wiadomości kanału z określonego serwera, strona klienta powinna wysłać wiadomość subskrypcji do serwera.
Jeśli subskrypcja zakończy się powodzeniem, system wyśle do Ciebie wiadomości ack, gdy odpowiedź będzie ustawiona na true.
{
"id":"1545910660739",
"type":"ack"
}
Dopóki generowane są wiadomości dotyczące tematu, system wysyła odpowiednie wiadomości do strony klienta.
Obsługiwane są następujące metody subskrypcji i anulowania subskrypcji.
| Metoda | Parametry | Opis |
| SubscribeSymbolTickerV2 | Symbol | Subskrypcja tego tematu umożliwia otrzymywanie aktualizacji BBO w czasie rzeczywistym. Po subskrypcji, przy każdej zmianie w księdze zleceń, system będzie wysyłać aktualne informacje o symbolu ticker. Zalecane jest korzystanie z nowego tematu w celu uzyskiwania aktualnych informacji. |
| SubscribeSymbolTicker | Symbol | Subskrybuj ten temat, aby otrzymywać aktualizacje zmian BBO w czasie rzeczywistym. Kanał ticker dostarcza aktualizacje cen w czasie rzeczywistym przy każdym dopasowaniu. Jeśli wiele zleceń zostanie dopasowanych jednocześnie, przesłane zostanie tylko ostatnie zdarzenie dopasowania. |
| SubscribeLevel2MarketData | Symbol | Zasubskrybuj ten temat, aby otrzymywać dane arkusza zleceń poziomu 2. |
| SubscribeExecutionData | Symbol | Dla każdego wykonanego zlecenia system wysyła wiadomości o dopasowaniu w następującym formacie. |
| SubscribeLevel2_5BestAskBid | Symbol | Zwracane co najwyżej co 100 milisekund. |
| SubscribeLevel2_50BestAskBid | Symbol | Zwracane co najwyżej co 100 milisekund. |
| SubscribeContractMarketData | Symbol | Zasubskrybuj ten temat, aby otrzymywać dane rynkowe kontraktu. |
| SubscribeSystemAnnouncements | Symbol | Subskrybuj ten temat, aby otrzymywać komunikaty systemowe. |
| SubscribeTransactionStatistics | Symbol | Statystyki transakcji będą przesyłane do użytkowników co 5 sekund. |
| SubscribeKlines | Symbol | Subskrybuj dane klines (świece japońskie) dla kontraktu. |
| SubscribeFundingFeeSettlement | Symbol | Subskrybuj powiadomienia o rozliczeniach opłat finansowania. |
Jeśli parametr ACK jest ustawiony na true, po pomyślnej subskrypcji lub anulowaniu subskrypcji klient otrzymuje o tym wiadomość.
Wymaga ważnego ApiKey uzyskanego z konta Kucoin. ApiKey, ApiSecret i Passphrase muszą być ustawione we właściwości Kucoin komponentu klienta API.
Następujące dane są wypychane do klienta za każdym razem, gdy nastąpi zmiana. Nie jest konieczna subskrypcja żadnej metody — odbywa się ona automatycznie po ustawieniu prawidłowego ApiKey.
| Metoda | Opis |
| SubscribeTradeOrders | Ten temat przekazuje wszystkie zdarzenia zmian dotyczące zamówień użytkownika. |
| SubscribeAccountBalance |
Ta wiadomość jest odbierana, gdy zmienia się saldo konta. Zawiera szczegóły dotyczące zmiany. |
| SubscribePositionChange | System wyśle zdarzenie zmiany, gdy zmieni się status pozycji. |
| SubscribeStopOrder | Gdy zlecenie stop zostanie odebrane przez system, otrzymasz wiadomość z typem "open". Oznacza to, że zlecenie zostało wprowadzone do systemu i oczekuje na wyzwolenie. |
| SubscribeMarginMode | Subskrybuj zmiany trybu depozytów zabezpieczających. System wyślnie zdarzenie zmiany po zaktualizowaniu trybu depozytów. |
| SubscribeCrossMarginLeverage | Subskrybuje zmiany dźwigni cross margin. System wypychać będzie zdarzenie zmiany po zaktualizowaniu dźwigni cross margin. |
Wszystkie punkty końcowe zwracają obiekt JSON lub tablicę.
Publiczne punkty końcowe API
Te punkty końcowe są dostępne bez żadnej autoryzacji.
Ogólne punkty końcowe
| Metoda | Parametry | Opis |
| GetServiceStatus | Sprawdzenie łączności z Rest API i pobranie statusu usługi | |
| GetServerTime | Sprawdź połączenie z Rest API i pobierz bieżący czas serwera. |
Punkty końcowe danych rynkowych
| Metoda | Parametry | Opis |
| GetOpenContractList | Wyślij żądanie pobrania informacji o wszystkich otwartych kontraktach. | |
| GetOrderInfoContract | Wyślij żądanie, aby uzyskać informacje o podanym kontrakcie. | |
| GetTicker | Symbol | Ticker w czasie rzeczywistym zawiera ostatnią cenę transakcji, ostatnią wielkość transakcji, identyfikator transakcji, stronę dostawcy płynności, najlepszą cenę i wielkość oferty kupna oraz oferty sprzedaży, a także czas transakcji zleceń. Wiadomości te można uzyskać również przez WebSocket. Numer sekwencji służy do oceny ciągłości wiadomości przesyłanych przez WebSocket. |
| GetPartOrderBook20 | Symbol | Pobiera migawkę zagregowanych otwartych zleceń dla danego symbolu. |
| GetPartOrderBook100 | Symbol | Pobiera migawkę zagregowanych otwartych zleceń dla danego symbolu. |
| GetFullOrderBook | Symbol | Pobiera migawkę zagregowanych otwartych zleceń dla danego symbolu. |
| GetLevel2PullingMessages | Symbol | Jeśli wiadomości przesyłane przez WebSocket nie są ciągłe, można wysłać poniższe żądanie i ponownie pobrać dane, aby upewnić się, że sekwencja jest kompletna. W żądaniu parametr start oznacza numer sekwencji ostatnio odebranej wiadomości plus 1, a parametr end oznacza numer sekwencji aktualnie odebranej wiadomości minus 1. Po ponownym pobraniu wiadomości i zastosowaniu ich do lokalnej księgi zleceń można kontynuować jej aktualizację za pomocą strumieniowego kanału WebSocket. Jeśli różnica między parametrami end i start przekracza 500, należy zaprzestać korzystania z tego żądania i zaleca się przebudowanie księgi zleceń Level 2. |
| GetTradeHistory | Symbol | Lista ostatnich 100 transakcji dla symbolu. |
| GetInterestRateList | Symbol | Sprawdzenie listy stóp procentowych. |
| GetIndexList | Symbol | Sprawdź listę indeksów |
| GetCurrentMarkPrice | Symbol | Sprawdź bieżącą cenę mark. |
| GetPremiumIndex | Symbol | Wysyła żądanie pobrania indeksu premii. |
| GetCurrentFundingRate | Symbol | Wysyłanie żądania sprawdzenia bieżącej ceny mark. |
| GetKLine | Symbol | Pobierz dane K Line kontraktu |
Prywatne punkty końcowe API
Wymaga podania APIKey i APISecret w celu autoryzacji przez serwer.
Punkty końcowe użytkownika
| Metoda | Parametry | Opis |
| GetAccountOverview | Pobierz przegląd konta | |
| GetTransactionHistory | Jeśli istnieją otwarte pozycje, status pierwszej zwróconej strony będzie Pending, co wskazuje na zrealizowany zysk i stratę w bieżącym 8-godzinnym okresie rozliczeniowym. Należy podać minimalny numer przesunięcia bieżącej strony w polu offset, aby przejść do następnej strony. |
Punkty końcowe handlu
| Metoda | Parametry | Opis |
| PlaceOrder | Można składać dwa rodzaje zleceń: limit i market. Zlecenia mogą być składane wyłącznie wtedy, gdy konto dysponuje wystarczającymi środkami. Po złożeniu zlecenia środki zostają zablokowane na czas jego trwania. Wysokość zablokowanych środków zależy od rodzaju zlecenia i podanych parametrów. | |
| PlaceMarketOrder | Składa zlecenie rynkowe. | |
| PlaceLimitOrder | Składa zlecenie Limit. | |
| CancelOrder | Anuluje zlecenie według identyfikatora zlecenia. | |
| LimitOrderMassCancellation | Anuluje wszystkie otwarte zlecenia (z wyjątkiem zleceń stop). Odpowiedź zawiera listę identyfikatorów anulowanych zleceń. | |
| StopOrderMassCancellation | Anuluj wszystkie niewyzwolone zlecenia stop. Odpowiedź zawiera listę identyfikatorów anulowanych zleceń stop. Aby anulować wyzwolone zlecenia stop, należy użyć funkcji „Limit Order Mass Cancelation". | |
| GetOrderList | Wyświetl bieżące zlecenia. | |
| GetUntriggeredStopOrderList | Pobierz listę niewyzwolonych zleceń stop. | |
| GetListOrdersCompleted24hr | Pobierz listę ostatnich 1000 zleceń z ostatnich 24 godzin. Jeśli wymagane jest pobieranie historii zrealizowanych zleceń z małym opóźnieniem, można skorzystać z tego punktu końcowego. | |
| GetOrder | Pobierz pojedyncze zlecenie według identyfikatora (w tym zlecenie stop). | |
| GetOrderByClientOid | Pobierz pojedyncze zlecenie według identyfikatora zlecenia klienta (łącznie ze zleceniem stop). | |
| GetFills | Pobierz listę ostatnich transakcji. | |
| GetRecentFills | Pobierz listę ostatnich 1000 transakcji z ostatnich 24 godzin. Jeśli wymagane jest uzyskanie historii ostatnio zrealizowanych zleceń z niskim opóźnieniem, można skorzystać z tego punktu końcowego. | |
| ActiveOrderValueCalculation | Można zapytać ten punkt końcowy, aby uzyskać łączną liczbę i wartość wszystkich aktywnych zleceń. | |
| GetPositionDetails | Pobierz szczegóły określonej pozycji. | |
| GetPositionList | Pobierz szczegóły określonej pozycji. | |
| AutoDepositMargin | Włącz/Wyłącz automatyczne uzupełnianie depozytu zabezpieczającego | |
| AddMarginManually | Dodaj depozyt zabezpieczający ręcznie | |
| ObtainFuturesRiskLimitLevel | Interfejs ten może być używany do uzyskiwania informacji o poziomie limitu ryzyka dla określonego kontraktu | |
| AdjustRiskLimitLevel | Ten interfejs służy do dostosowania poziomu limitu ryzyka. Zmiana poziomu spowoduje anulowanie otwartego zlecenia; odpowiedź może jedynie wskazywać, czy żądanie zmiany zostało pomyślnie przesłane. | |
| GetFundingHistory | Prześlij żądanie, aby uzyskać historię finansowania. | |
| GetMaxOpenSize | Pobierz maksymalny rozmiar otwartej pozycji dla kontraktu. | |
| SwitchMarginMode | Przełączanie między trybem cross margin a isolated margin. | |
| GetMarginMode | Pobierz bieżący tryb marży dla kontraktu. |
Wiadomości Kucoin są odbierane w komponencie TsgcWebSocketClient; można użyć następujących zdarzeń:
OnConnect
Po pomyślnym nawiązaniu połączenia z serwerem Kucoin.
OnDisconnect
Po rozłączeniu z serwerem Kucoin
OnMessage
Wiadomości wysyłane przez serwer do klienta są obsługiwane w tym zdarzeniu.
OnError
W przypadku wystąpienia błędu protokołu wywoływane jest to zdarzenie.
OnException
Jeżeli wystąpi nieobsługiwany wyjątek, zostanie wywołane to zdarzenie.
Dodatkowo w komponencie Kucoin API istnieje specyficzne zdarzenie o nazwie OnKucoinHTTPException, wywoływane za każdym razem, gdy wystąpi błąd podczas wywołania żądania HTTP (REST API lub WebSocket Feeds).