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 ticker. Metody prywatne związane z danymi użytkownika wymagają użycia kluczy API Kucoin.
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 |
| SubscribeSymbolTicker | Symbol | Zasubskrybuj ten temat, aby otrzymywać powiadomienia push o zmianach BBO. Jeśli w ciągu jednej sekundy nie nastąpi żadna zmiana, powiadomienie nie zostanie wysłane. Dane są wysyłane co 100 ms z aktualnym BBO. Jeśli dane nie zmieniły się w stosunku do poprzednich, powiadomienie nie zostanie wysłane. |
| SubscribeAllSymbolsTicker | Subskrypcja tego tematu pozwala otrzymywać powiadomienia push o zmianach BBO wszystkich symboli rynkowych. | |
| SubscribeSymbolSnapshot | Symbol | Subskrybuj dane migawkowe dla jednego symbolu. Dane migawkowe są przesyłane w odstępach 2-sekundowych. |
| SubscribeMarketSnapshot | Rynek | Subskrybuj ten temat, aby otrzymać dane migawkowe dla całego rynku. Dane migawkowe są przesyłane co 2 sekundy. |
| SubscribeLevel2MarketData | Symbol | Subskrybuj ten temat, aby otrzymywać dane z arkusza zleceń poziomu 2. Po pomyślnym nawiązaniu subskrypcji WebSocket system będzie przesyłał do Ciebie przyrostowe dane zmian za pośrednictwem WebSocket. |
| SubscribeLevel2_5BestAskBid | Symbol | System zwróci dane 5 najlepszych zleceń ask/bid, które stanowią dane migawkowe aktualizowane co 100 milisekund (innymi słowy, dane 5 najlepszych zleceń ask/bid są zwracane co 100 milisekund w czasie rzeczywistym). |
| SubscribeLevel2_50BestAskBid | Symbol | System zwróci dane 50 najlepszych zleceń ask/bid, będące migawką danych co 100 milisekund (innymi słowy, dane 50 najlepszych zleceń ask/bid zwracane co 100 milisekund w czasie rzeczywistym). |
| SubscribeKlines | Symbol | Subskrybuj ten temat, aby otrzymywać dane K-Line. |
| SubscribeMatchExecutionData | Symbol | Subskrybuj ten temat, aby otrzymywać pasujący przepływ danych zdarzeń Poziomu 3. Dla każdej zrealizowanej transakcji system wysyła wiadomości dopasowania w następującym formacie. |
| SubscribeIndexPrice | Symbol | Subskrybuj ten temat, aby otrzymywać cenę indeksową dla handlu z depozytem zabezpieczającym. |
| SubscribeMarkPrice | Symbol | Subskrybuj ten temat, aby otrzymywać ceny mark price dla handlu na marży. |
| SubscribeOrderBookChanged | Symbol | Subskrybuj ten temat, aby otrzymywać zmiany w księdze zleceń handlu na depozycie zabezpieczającym. |
| SubscribeLevel1 | Symbol | Subskrybowanie danych najlepszego bid/ask poziomu 1 dla danego symbolu. |
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. |
| SubscribePositionStatus | System wyśle zdarzenie zmiany, gdy zmieni się status pozycji. |
| SubscribeMarginTradeOrders | System wyśle tę wiadomość do pożyczkodawców, gdy zlecenie zostanie dodane do arkusza zleceń. |
| 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. |
| SubscribeTradeOrdersV2 | Subskrybuj kanał zleceń handlowych V2 w celu otrzymywania rozszerzonych powiadomień o aktualizacjach zleceń. |
| SubscribeCrossMarginPosition | Subskrybuje aktualizacje pozycji na marżę krzyżową. System wyśle zdarzenie zmiany, gdy zmieni się pozycja na marżę krzyżową. |
| SubscribeIsolatedMarginPosition | Subskrybuj aktualizacje izolowanej pozycji na depozycie zabezpieczającym. System wyśle zdarzenie zmiany, gdy izolowana pozycja na depozycie zabezpieczającym ulegnie zmianie. |
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 |
| GetSymbolList | Rynek | Wyślij żądanie do tego punktu końcowego, aby uzyskać listę dostępnych par walutowych do handlu. Jeśli potrzebne są informacje rynkowe dotyczące symbolu transakcji |
| GetTicker | Symbol | Wyślij żądanie do tego punktu końcowego, aby uzyskać dane rynkowe poziomu 1. Zwracana wartość obejmuje najlepszą cenę i wielkość oferty kupna, najlepszą cenę i wielkość oferty sprzedaży oraz ostatnią cenę i wielkość transakcji. |
| GetAllTickers | Żądaj tykera rynkowego dla wszystkich par handlowych na rynku (w tym wolumen 24h). | |
| Get24hrStats | Symbol | Żądanie wysłane do tego punktu końcowego zwraca statystyki określonego tickera z ostatnich 24 godzin. |
| GetMarketList | Użyj tego punktu końcowego, aby uzyskać walutę transakcji dla całego rynku handlowego. | |
| GetPartOrderBook20 | Symbol | Wysyłając żądanie do tego punktu końcowego, można uzyskać listę otwartych zleceń dla symbolu. Arkusz zleceń poziomu 2 zawiera wszystkie oferty bid i ask (zagregowane według ceny); ten poziom zwraca tylko jeden rozmiar dla każdej aktywnej ceny (tak, jakby istniało tylko jedno zlecenie dla danej ceny). System zwróci 20 pozycji danych (dane bid i ask) z arkusza zleceń. |
| GetPartOrderBook100 | Symbol | Wyślij żądanie do tego punktu końcowego, aby uzyskać listę otwartych zleceń dla symbolu. Arkusz zleceń poziomu 2 zawiera wszystkie oferty kupna i sprzedaży (zagregowane według ceny); ten poziom zwraca tylko jeden rozmiar dla każdej aktywnej ceny (tak jakby istniało tylko jedno zlecenie dla tej ceny). System zwróci 100 pozycji danych (dane ofert kupna i sprzedaży) z arkusza zleceń. |
| GetFullOrderBook | Symbol | Żądanie przez ten punkt końcowy zwraca arkusz zleceń dla podanego symbolu. Arkusz zleceń poziomu 2 zawiera wszystkie oferty kupna i sprzedaży (zagregowane według ceny). Ten poziom zwraca tylko jeden zagregowany rozmiar dla każdej ceny (jakby istniało tylko jedno zlecenie dla tej ceny). To API zwraca dane z pełną głębokością. |
| GetKLines | Symbol | Żądaj przez ten punkt końcowy, aby uzyskać kline dla określonego symbolu. Dane są zwracane w zgrupowanych segmentach na podstawie żądanego typu. |
| GetCurrencies | Wyślij żądanie do tego punktu końcowego, aby uzyskać listę walut. | |
| GetCurrencyDetail | Waluta | Wyślij żądanie do tego punktu końcowego, aby uzyskać szczegóły waluty dla określonej waluty |
| GetFiatPrice | Wyślij żądanie do tego punktu końcowego, aby uzyskać szczegóły waluty dla określonej waluty | |
| GetPartOrderBook1 | Symbol | Wyślij żądanie do tego punktu końcowego, aby uzyskać najlepszą ofertę kupna/sprzedaży poziomu 1 dla danego symbolu. |
Prywatne punkty końcowe API
Wymaga podania APIKey i APISecret w celu autoryzacji przez serwer.
Punkty końcowe użytkownika
| Metoda | Parametry | Opis |
| GetAllSubAccounts | Informacje o użytkowniku wszystkich sub-użytkowników można uzyskać przez ten interfejs. | |
| GetListAccounts | Pobierz listę kont. | |
| GetAccount | AccountId | Informacje dotyczące pojedynczego konta. Tego punktu końcowego należy użyć, gdy znany jest identyfikator accountId. |
| GetAccountBalanceSubAccount | SubUserId | Ten punkt końcowy zwraca informacje o koncie użytkownika podrzędnego określonego przez subUserId. |
| InnerTransfer | Ten punkt końcowy API umożliwia wewnętrzne przelewy środków między kontami. Użytkownicy mogą bezpłatnie przenosić środki między kontem głównym, kontem handlowym, kontem marży krzyżowej i kontem marży izolowanej. Obsługiwany jest transfer środków z konta głównego, konta marży krzyżowej i konta handlowego na konto futures, jednak transfer środków z kont futures na inne konta nie jest obsługiwany. | |
| GetDepositAddresses | Waluta | Pobierz adresy depozytów dla waluty. |
| CreateDepositAddress | Waluta | Utwórz nowy adres depozytu dla waluty. |
| GetDepositList | Pobierz historię depozytów. | |
| GetAccountLedgers | Pobierz wpisy księgi rachunkowej konta. | |
| GetTradeFees | Symbole | Pobiera opłaty transakcyjne dla wskazanych instrumentów. |
Punkty końcowe wypłat
| Metoda | Parametry | Opis |
| GetWithdrawalsList | Pobierz listę wypłat. | |
| GetHistoricalWithdrawalsList | Lista historycznych wypłat KuCoin V1. | |
| GetWithdrawalsQuotas | Waluta | Pobierz limity wypłat |
| ApplyWithdraw | Waluta, adres, kwota | Utwórz wypłatę |
| CancelWithdraw | WithdrawalId | Anulować można tylko żądania wypłat o statusie PROCESSING. |
Punkty końcowe handlu
| Metoda | Parametry | Opis |
| PlaceOrder | Można składać dwa rodzaje zleceń: limitowane i rynkowe. Zlecenia mogą być składane wyłącznie wtedy, gdy konto posiada wystarczające środki. Po złożeniu zlecenia środki na koncie zostają zablokowane na czas jego realizacji. Wysokość i rodzaj zablokowanych środków zależy od typu zlecenia i podanych parametrów. | |
| PlaceMarketOrder | Składa zlecenie rynkowe. | |
| PlaceLimitOrder | Składa zlecenie Limit. | |
| PlaceMarginOrder | Składa zlecenie depozytowe z depozytem zabezpieczającym. | |
| CancelOrder | Anuluje zlecenie według identyfikatora zlecenia. | |
| CancelOrderByClientOid | Anuluje zlecenie według identyfikatora zlecenia klienta. | |
| CancelAllOrders | Anuluj wszystkie otwarte zlecenia. | |
| ListOrders | Wyślij żądanie do tego punktu końcowego, aby pobrać bieżącą listę zleceń. Elementy są stronicowane i posortowane w kolejności od najnowszych | |
| GetRecentOrders | Żądanie przez ten punkt końcowy pozwala pobrać 1000 zleceń z ostatnich 24 godzin. | |
| GetOrder | Wysyłając żądanie do tego punktu końcowego, można uzyskać informacje o pojedynczym zleceniu według identyfikatora zlecenia. | |
| GetOrderByClientOid | Żądanie do tego endpointu w celu uzyskania informacji o pojedynczym zleceniu na podstawie identyfikatora zlecenia klienta. | |
| ListFills | Użyj tego punktu końcowego, aby uzyskać ostatnie realizacje. | |
| GetRecentFills | Wysyłając żądanie do tego punktu końcowego, można uzyskać listę 1000 transakcji z ostatnich 24 godzin. | |
| PlaceStopOrder | Składa zlecenie Stop. | |
| PlaceStopMarketOrder | Składa zlecenie Stop Market. | |
| PlaceStopLimitOrder | Składa zlecenie Stop Limit. | |
| CancelStopOrder | Anuluje otwarte zlecenie Stop według identyfikatora zlecenia | |
| CancelStopOrderByClientOid | Anuluje otwarte zlecenie stop na podstawie identyfikatora zlecenia klienta | |
| CancelAllStopOrders | Anuluj wszystkie zlecenia stop | |
| GetStopOrder | Żądanie przez ten interfejs w celu uzyskania informacji o zleceniu stop na podstawie identyfikatora zlecenia. | |
| GetStopOrderByClientOid | Wyślij żądanie przez ten interfejs, aby uzyskać informacje o zleceniu stop za pomocą identyfikatora zlecenia klienta. | |
| ListStopOrders | Żądanie do tego punktu końcowego pozwala pobrać bieżącą listę nieaktywowanych zleceń stop. Elementy są stronicowane i posortowane malejąco według daty. | |
| PlaceHFOrder | Złóż zlecenie o wysokiej częstotliwości. | |
| CancelHFOrder | Anuluje zlecenie wysokiej częstotliwości na podstawie identyfikatora zlecenia. | |
| CancelHFOrderByClientOid | Anulowanie zlecenia wysokiej częstotliwości według identyfikatora zlecenia klienta. | |
| CancelAllHFOrders | Anuluj wszystkie zlecenia o wysokiej częstotliwości. | |
| GetHFActiveOrders | Pobierz aktywne zlecenia wysokiej częstotliwości. | |
| GetHFDoneOrders | Pobierz zakończone zlecenia o wysokiej częstotliwości. | |
| GetHFOrder | Pobierz określone zlecenie o wysokiej częstotliwości według identyfikatora zlecenia. |
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).