API Binance

Binance

 

Binance to międzynarodowa, wielojęzyczna giełda kryptowalut. Oferuje kilka API do uzyskiwania dostępu do danych Binance. Obsługiwane są następujące API:

 

  1. Strumienie WebSocket: pozwalają subskrybować określone metody i otrzymywać dane w czasie rzeczywistym. Zdarzenia są wypychane do klientów przez serwer do subskrybentów. Używa protokołu WebSocket.
  2. UserData stream: subskrybujący klienci otrzymują szczegóły konta. Wymaga klucza API do uwierzytelnienia i używa WebSocket jako protokołu.
  3. REST API: Wymaga klucza API i sekretu do uwierzytelniania i używa HTTPS jako protokołu.
    1. Dane rynkowe
    2. Dane konta i handlu
    3. Portfel
  4. Futures: strumieniowe transmisje danych rynkowych WebSocket Futures są obsługiwane przez interfejs API klienta Binance Futures.

 

Klient obsługuje również Binance.us; obsługiwane są następujące API:

 

  1. Strumienie WebSocket: pozwalają subskrybować określone metody i otrzymywać dane w czasie rzeczywistym. Zdarzenia są wypychane do klientów przez serwer do subskrybentów. Używa protokołu WebSocket.
  2. UserData stream: subskrybujący klienci otrzymują szczegóły konta. Wymaga klucza API do uwierzytelnienia i używa WebSocket jako protokołu.
  3. REST API: klienci mogą żądać danych rynkowych i konta od serwera. Wymaga klucza API i sekretu do uwierzytelniania; protokołem jest HTTPs.

 

Właściwości

API Binance ma 2 typy metod: publiczne i prywatne. Do metod publicznych można uzyskać dostęp bez uwierzytelniania, na przykład: pobieranie cen tickerów. Niektóre są prywatne i dotyczą danych użytkownika; te metody wymagają użycia kluczy API Binance.

 

 

 

 

Najczęstsze zastosowania

 

WebSocket Stream API

Bazowy endpoint to wss://stream.binance.com:9443; klient może subskrybować zdarzenia i anulować subskrypcje po nawiązaniu pomyślnego połączenia.

Obsługiwane są następujące metody subskrypcji i anulowania subskrypcji.

 

Metoda Parametry Opis
AggregateTrades Symbol przesyłanie zagregowanych informacji o transakcjach dla jednego zlecenia taker
Transakcje Symbol przesyłaj surowe informacje o transakcjach; każda transakcja ma unikalnego kupującego i sprzedającego
KLine Symbol, interwał wypycha aktualizacje bieżących wykresów klines/świecowych co sekundę, minutę, godzinę...
MiniTicker Symbol Statystyki mini-tickera w 24-godzinnym oknie kroczącym. NIE są to statystyki dnia UTC, lecz 24-godzinne okno kroczące dla poprzednich 24 godzin.
AllMiniTickers   Statystyki mini-tickera w 24-godzinnym oknie kroczącym dla wszystkich symboli, których wartości uległy zmianie, zebrane w tablicy. Nie są to statystyki dnia UTC, lecz 24-godzinne okno kroczące obejmujące poprzednie 24 godziny. W tablicy znajdują się wyłącznie tickery, których wartości się zmieniły.
Ticker Symbol Statystyki tickera dla kroczącego okna 24-godzinnego dla pojedynczego symbolu. NIE są to statystyki dnia UTC, lecz kroczące okno 24-godzinne dla poprzednich 24 godzin.
AllMarketTickers   Statystyki tickera dla kroczącego okna 24-godzinnego dla wszystkich symboli, które zmieniły się w tablicy. NIE są to statystyki dnia UTC, lecz kroczące okno 24-godzinne dla poprzednich 24 godzin. Uwaga: w tablicy będą obecne tylko tickery, które uległy zmianie.
BookTicker Symbol Przekazuje w czasie rzeczywistym aktualizacje najlepszej ceny lub wolumenu po stronie bid lub ask dla wskazanego symbolu.
AllBookTickers   Przesyła w czasie rzeczywistym wszelkie aktualizacje ceny lub ilości najlepszej oferty kupna lub sprzedaży dla wszystkich symboli.
PartialBookDepth Symbol, Głębokość Najlepsze <levels> ofert kupna i sprzedaży, przesyłane co sekundę. Prawidłowe wartości <levels> to 5, 10 lub 20.
DiffDepth Symbol Aktualizacje głębokości ceny i ilości w księdze zleceń, używane do lokalnego zarządzania księgą zleceń.

 

Po pomyślnej subskrypcji / anulowaniu subskrypcji klient otrzymuje wiadomość o tym fakcie, gdzie id jest wynikiem metody Subscribed / Unsubscribed.

 


{
  "result": null,
  "id": 1
}

 

User Data Stream API

Wymaga prawidłowego ApiKey uzyskanego z konta Binance; ApiKey musi być ustawiony we właściwości Binance.ApiKey komponentu.

 

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
Aktualizacja konta Stan konta jest aktualizowany za pomocą zdarzenia outboundAccountInfo.
Aktualizacja salda

Aktualizacja salda następuje w następujących przypadkach:

 

  • Wpłaty lub wypłaty z konta
  • Transfer środków między kontami (np. Spot do Margin)
Aktualizacja zlecenia Zlecenia są aktualizowane zdarzeniem executionReport.

 

 

REST API

Bazowy punkt końcowy to: https://api.binance.com. Wszystkie punkty końcowe zwracają obiekt lub tablicę JSON. Dane są zwracane w porządku rosnącym: od najstarszych do najnowszych.

 

Dostęp do opcji REST API przy użyciu właściwości REST_API.BinanceOptions.

 

 

Publiczne punkty końcowe API

 

Te punkty końcowe są dostępne bez żadnej autoryzacji.

 

Ogólne punkty końcowe

 

Metoda Parametry Opis
Ping   Testuje łączność z Rest API.
GetServerTime   Sprawdź połączenie z Rest API i pobierz bieżący czas serwera.
GetExchangeInformation   Bieżące reguły handlowe giełdy i informacje o symbolach

 

 

Punkty końcowe danych rynkowych

 

Metoda Parametry Opis
GetOrderBook Symbol Pobierz arkusz zleceń.
GetTrades Symbol Pobierz ostatnie transakcje
GetHistoricalTrades Symbol Pobierz starsze transakcje.
GetAggregateTrades Symbol Pobierz skompresowane, zagregowane transakcje. Transakcje realizowane w tym samym czasie, z tego samego zlecenia i po tej samej cenie będą miały zagregowaną ilość.
GetKLines Symbol, interwał Świece Kline dla instrumentu. Świece są jednoznacznie identyfikowane przez czas otwarcia.
GetAveragePrice Symbol Bieżąca średnia cena dla symbolu.
Get24hrTicker Symbol Statystyki zmian cen w 24-godzinnym oknie kroczącym. Należy zachować ostrożność podczas wywoływania bez podania symbolu.
GetPriceTicker Symbol Ostatnia cena dla danego symbolu.
GetPriceTickers Symbols Ostatnia cena dla tablicy symboli. Przykład: ["BTCUSDT","BNBUSDT"]
GetBookTicker Symbol Najlepsza cena/ilość w arkuszu zleceń dla jednego lub wielu symboli.
GetUIKLines Symbol, interwał Słupki Kline/świecowe dla danego symbolu. Odpowiedź jest podobna do GetKLines, zoptymalizowana pod kątem prezentacji wykresów świecowych.
GetRollingWindowTicker Symbol, Symbols, WindowSize Statystyki zmiany ceny w kroczącej oknie czasowym. Uwaga: domyślna wartość WindowSize to 1d, jeśli nie zostanie podana.
GetTradingDayTicker Symbol, Symbols, Type Statystyki zmian ceny dla dnia handlowego.

 

 

 

Prywatne punkty końcowe API

 

Wymaga podania APIKey i APISecret w celu autoryzacji przez serwer.

 

Punkty końcowe danych konta

 

Metoda Parametry Opis
NewOrder Symbol, strona, typ Wyślij nowe zlecenie.
PlaceMarketOrder Side, Symbol, Quantity Składa nowe zlecenie rynkowe
PlaceMarketQuoteOrder Side, Symbol, QuoteOrderQty Składa nowe zlecenie rynkowe z kwotowaniem
PlaceLimitOrder Side, Symbol, Quantity, LimitPrice Składa nowe zlecenie Limit
PlaceStopOrder Side, Symbol, Quantity, StopPrice, LimitPrice Składa nowe zlecenie stop
PlaceStopTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice Składa nowe zlecenie Stop Trailing
PlaceTakeProfitOrder Side, Symbol, Quantity, StopPrice, LimitPrice Składa nowe zlecenie Take Profit
PlaceTakeProfitTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice Składa nowe zlecenie Take Profit Trailing
PlaceLimitMakerOrder Side, Symbol, Quantity Składa nowe zlecenie z limitem ceny rynkowej
TestNewOrder Symbol, strona, typ Testuje tworzenie nowego zlecenia oraz poprawność podpisu/recvWindow. Tworzy i weryfikuje nowe zlecenie, ale nie wysyła go do silnika dopasowań.
QueryOrder Symbol Sprawdź status zlecenia.
CancelOrder Symbol Anuluje aktywne zlecenie. Należy podać OrderId lub OrigClientOrderId.
CancelAllOpenOrders Symbol (opcjonalnie)  
GetOpenOrders   Pobierz wszystkie otwarte zlecenia dla symbolu. Zachować ostrożność przy dostępie bez podania symbolu.
GetAllOrders Symbol Pobierz wszystkie zlecenia konta: aktywne, anulowane lub zrealizowane.
NewOCO Symbol, Side, Quantity, Price, StopPrice Wyślij nowe zlecenie OCO
CancelOCO Symbol Anuluj całą listę zleceń
QueryOCO Symbol Pobiera określone zlecenie OCO na podstawie podanych opcjonalnych parametrów.
GetAllOCO   Pobiera wszystkie zlecenia OCO na podstawie podanych opcjonalnych parametrów
GetOpenOCO   Pobierz wszystkie otwarte OCO.
GetAccountInformation   Pobierz informacje o bieżącym koncie.
GetAccountTradeList Symbol Pobierz transakcje dla określonego konta i symbolu.
CancelReplaceOrder Symbol, Side, Type, CancelReplaceMode Anuluje istniejące zlecenie i składa nowe zlecenie na tym samym instrumencie.
NewOrderListOCO Symbol, Side, Quantity, AboveType, BelowType Dodaj nowe zlecenie listy OCO.
NewOrderListOTO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingType, PendingSide, PendingQuantity Złóż nowe zlecenie OTO (One-Triggers-the-Other).
NewOrderListOTOCO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingSide, PendingAboveType, PendingBelowType, PendingQuantity Złóż nowe zlecenie OTOCO (One-Triggers-a-One-Cancels-the-Other).
NewSOROrder Symbol, Side, Type, Quantity Składa zlecenie przy użyciu Smart Order Routing (SOR).
TestSOROrder Symbol, Side, Type, Quantity Testuje nowe zlecenie przy użyciu inteligentnego routingu zleceń (SOR). Tworzy i weryfikuje nowe zlecenie, lecz nie wysyła go do silnika dopasowywania.
GetOrderRateLimitUsage Wyświetla bieżące wykorzystanie liczby zleceń użytkownika dla wszystkich interwałów.
GetPreventedMatches Symbol Wyświetla listę zleceń, które wygasły z powodu STP (Self Trade Prevention).
GetAllocations Symbol Pobiera alokacje wynikające z rozmieszczenia zleceń SOR.
GetAccountCommission Symbol Pobierz bieżące stawki prowizji konta.

 

 

 

Convert EndPoints

 

Metoda Parametry Opis
GetAllConvertPairs FromAsset, ToAsset Zapytaj o wszystkie pary tokenów podlegające konwersji oraz odpowiadające im górne i dolne limity tokenów.
GetConvertAssetInfo   Zapytanie o informacje dotyczące precyzji obsługiwanych aktywów
SendConvertQuoteRequest FromAsset, ToAsset Żądaj wyceny dla wybranych par tokenów
AcceptConvertQuote QuoteId Zaakceptuj oferowaną wycenę na podstawie identyfikatora wyceny.
GetConvertOrderStatus OrderId lub QuoteId Zapytaj o status zlecenia na podstawie jego identyfikatora.
PlaceConvertLimitOrder BaseAsset, QuoteAsset, Side, LimitPrice

Umożliwia użytkownikom złożenie zlecenia z limitem ceny.

baseAsset lub quoteAsset można określić za pomocą punktu końcowego exchangeInfo.
Cena limitowa jest zdefiniowana od baseAsset do quoteAsset.
Używany jest albo baseAmount, albo quoteAmount.

CancelConvertLimitOrder OrderId Umożliwia użytkownikom anulowanie zlecenia z limitem ceny
GetConvertLimitOpenOrders   Umożliwia użytkownikom zapytanie o wszystkie istniejące zlecenia z limitem ceny.
GetConvertTradeHistory StartTime, EndTime Maksymalny interwał między startTime a endTime wynosi 30 dni.

 

 

 

Wallet EndPoints

(*endpointy portfela działają wyłącznie z serwerem produkcyjnym, nie z wersją demonstracyjną)

 

Metoda Opis
GetWalletSystemStatus Pobierz status systemu.
GetWalletAllCoinsInformation Pobierz informacje o monetach (dostępnych do wpłat i wypłat) dla użytkownika.
GetWalletDailyAccountSnapshot Typ: "SPOT", "MARGIN", "FUTURES"
  • Okres zapytania musi być krótszy niż 30 dni
  • Obsługiwane są wyłącznie zapytania w ciągu ostatniego miesiąca
  • Jeśli parametry startTime i endTime nie zostaną podane, domyślnie zwracane są rekordy z ostatnich 7 dni
SetWalletDisableFastWithdrawSwitch To żądanie wyłączy przełącznik szybkiego wypłacania na Twoim koncie.
Należy włączyć opcję "trade" dla klucza API, który wysyła żądanie do tego punktu końcowego.
SetWalletEnableFastWithdrawSwitch To żądanie włącza przełącznik szybkiej wypłaty na koncie.
Należy włączyć opcję "trade" dla klucza API, który wywołuje ten punkt końcowy.
Gdy przełącznik szybkiej wypłaty jest włączony, transfer środków na konto Binance odbywa się natychmiastowo. Nie ma transakcji on-chain, identyfikatora transakcji ani opłaty za wypłatę.
WalletWithdraw

Prześlij żądanie wypłaty.

 

GetWalletDepositHistory Pobierz historię wpłat.
GetWalletWithdrawHistory Pobierz historię wypłat.
GetWalletDepositAddress Pobierz adres depozytu wraz z siecią.
GetWalletAccountStatus Pobierz szczegóły stanu konta.
GetWalletAccountAPITradingStatus Pobiera szczegóły statusu handlu API konta.
GetWalletDustLog Zwraca tylko ostatnie 100 rekordów
Zwraca tylko rekordy po 2020/12/01
GetWalletAssetsConvertedBNB  
WalletDustTransfer

Konwertuj aktywa dust na BNB.

Należy włączyć uprawnienia Spot & Margin Trading dla klucza API, który korzysta z tego endpointu.

GetWalletAssetDividendRecord Zapytanie o rekordy dywidend z aktywów.
GetWalletAssetDetail Pobierz szczegóły zasobów obsługiwanych na Binance.
GetWalletTradeFee Pobierz opłatę transakcyjną
WalletUserUniversalTransfer

Należy włączyć opcję Permits Universal Transfer dla klucza API, który żąda tego punktu końcowego. MAIN_UMFUTURE Przelew z konta Spot na konto USDⓈ-M Futures

ENUM typu:

  • MAIN_CMFUTURE Przelew z konta Spot na konto COIN-M Futures
  • MAIN_MARGIN Przelew z konta Spot na konto Margin(cross)
  • UMFUTURE_MAIN Przelew z konta USDⓈ-M Futures na konto Spot
  • UMFUTURE_MARGIN Przelew z konta USDⓈ-M Futures na konto Margin(cross)
  • CMFUTURE_MAIN Przelew z konta COIN-M Futures na konto Spot
  • CMFUTURE_MARGIN Przelew z konta COIN-M Futures na konto Margin(cross)
  • MARGIN_MAIN Przelew z konta Margin(cross)na konto Spot
  • MARGIN_UMFUTURE Przelew z konta Margin(cross)na USDⓈ-M Futures
  • MARGIN_CMFUTURE Przelew z konta Margin(cross)na COIN-M Futures
  • ISOLATEDMARGIN_MARGIN Przelew z izolowanego konta margin na konto Margin(cross)
  • MARGIN_ISOLATEDMARGIN Przelew z konta Margin(cross) na izolowane konto margin
  • ISOLATEDMARGIN_ISOLATEDMARGIN Przelew z izolowanego konta margin na izolowane konto margin
  • MAIN_FUNDING Przelew z konta Spot na konto Funding
  • FUNDING_MAIN Przelew z konta Funding na konto Spot
  • FUNDING_UMFUTURE Przelew z konta Funding na konto UMFUTURE
  • UMFUTURE_FUNDING Przelew z konta UMFUTURE na konto Funding
  • MARGIN_FUNDING Przelew z konta MARGIN na konto Funding
  • FUNDING_MARGIN Przelew z konta Funding na konto Margin
  • FUNDING_CMFUTURE Przelew z konta Funding na konto CMFUTURE
  • CMFUTURE_FUNDING Przelew z konta CMFUTURE na konto Funding
GetWalletQueryUserUniversalTransferHistory
  • fromSymbol musi być przesłane, gdy typ to ISOLATEDMARGIN_MARGIN lub ISOLATEDMARGIN_ISOLATEDMARGIN
  • toSymbol musi być przesłane, gdy typ to MARGIN_ISOLATEDMARGIN lub ISOLATEDMARGIN_ISOLATEDMARGIN
  • Obsługa zapytań wyłącznie z ostatnich 6 miesięcy
  • Jeśli startTime i endTime nie zostaną przesłane, domyślnie zwracane są rekordy z ostatnich 7 dni
GetWalletFundingWallet Obsługuje aktualnie zapytania dotyczących następujących aktywów biznesowych: Binance Pay, Binance Card, Binance Gift Card, Stock Token
GetWalletUserAsset Pobierz zasoby użytkownika, tylko dla danych dodatnich.
GetWalletApiKeyPermission  

 

 

Zdarzenia

Wiadomości Binance są odbierane w komponencie TsgcWebSocketClient; można używać następujących zdarzeń:

 

OnConnect

Po pomyślnym połączeniu z serwerem Binance.

OnDisconnect

Po rozłączeniu z serwerem Binance

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 Binance API istnieje specyficzne zdarzenie o nazwie OnBinanceHTTPException, wywoływane za każdym razem, gdy wystąpi błąd podczas wywołania żądania HTTP (REST API lub strumień użytkownika WebSocket).

 

(*) Ze względu na zmiany na serwerach Binance, wersje Indy starsze niż Rad Studio 10.1 nie będą mogły łączyć się z serwerami testowymi. Problem ten nie dotyczy wersji Enterprise ani przypadku, gdy wersja Indy została zaktualizowana do najnowszej.