API Binance

Binance

 

Binance는 국제 다국어 암호화폐 거래소입니다. Binance 데이터에 액세스하기 위한 일부 API를 제공합니다. 다음 API가 지원됩니다:

 

  1. WebSocket streams: 일부 메서드를 구독하여 데이터를 실시간으로 받을 수 있게 합니다. 이벤트는 서버에 의해 구독자에게 푸시됩니다. 프로토콜로 WebSocket을 사용합니다.
  2. UserData stream: 구독한 클라이언트가 계정 세부 정보를 받습니다. 인증하려면 API 키가 필요하며 프로토콜로 WebSocket을 사용합니다.
  3. REST API: 인증을 위해 API 키와 Secret이 필요하며 프로토콜로 HTTPs를 사용합니다.
    1. Market Data
    2. Account and Trading Data
    3. Wallet
  4. Futures: WebSocket Futures Market Data Streams은 Binance Futures Client API를 통해 지원됩니다.

 

클라이언트는 Binance.us도 지원합니다. 다음 API가 지원됩니다:

 

  1. WebSocket streams: 일부 메서드를 구독하여 데이터를 실시간으로 받을 수 있게 합니다. 이벤트는 서버에 의해 구독자에게 푸시됩니다. 프로토콜로 WebSocket을 사용합니다.
  2. UserData stream: 구독한 클라이언트가 계정 세부 정보를 받습니다. 인증하려면 API 키가 필요하며 프로토콜로 WebSocket을 사용합니다.
  3. REST API: 클라이언트가 서버에 시장 및 계정 데이터를 요청할 수 있습니다. 인증을 위해 API Key와 Secret이 필요하며 프로토콜로 HTTPs를 사용합니다.

 

Properties

Binance API에는 2가지 유형의 메서드가 있습니다: 공개 및 비공개. 공개 메서드는 인증 없이 액세스할 수 있습니다(예: 티커 가격 가져오기). 일부는 비공개이며 사용자 데이터와 관련됩니다. 이러한 메서드는 Binance API 키 사용이 필요합니다.

 

 

 

 

Most common uses

 

WebSocket Stream API

기본 엔드포인트는 wss://stream.binance.com:9443이며, 클라이언트는 성공적으로 연결된 후 이벤트를 구독/구독 해제할 수 있습니다.

다음 Subscription / Unsubscription 메서드가 지원됩니다.

 

Method 매개변수 설명
AggregateTrades Symbol 단일 taker 주문에 대해 집계된 거래 정보를 푸시합니다
Trades Symbol 원시 거래 정보를 푸시합니다. 각 거래에는 고유한 구매자와 판매자가 있습니다
KLine Symbol, Interval 매초, 매분, 매시간마다 현재 klines/캔들스틱에 업데이트를 푸시합니다...
MiniTicker Symbol 24시간 롤링 윈도우 미니 티커 통계입니다. 이는 UTC 일자의 통계가 아니라 이전 24시간에 대한 24시간 롤링 윈도우입니다.
AllMiniTickers   배열로 변경된 모든 심볼에 대한 24시간 롤링 윈도우 미니 시세 통계입니다. 이것은 UTC 일자의 통계가 아니라 이전 24시간에 대한 24시간 롤링 윈도우입니다. 변경된 시세만 배열에 존재합니다.
Ticker Symbol 단일 심볼에 대한 24시간 롤링 윈도우 티커 통계입니다. 이것은 UTC 일자의 통계가 아니라 이전 24시간에 대한 24시간 롤링 윈도우입니다.
AllMarketTickers   배열로 변경된 모든 심볼에 대한 24시간 롤링 윈도우 티커 통계입니다. 이것은 UTC 일자의 통계가 아니라 이전 24시간에 대한 24시간 롤링 윈도우입니다. 변경된 티커만 배열에 존재함에 유의하십시오.
BookTicker Symbol 지정된 symbol에 대한 최우선 매수 또는 매도 호가의 가격 또는 수량에 대한 모든 업데이트를 실시간으로 푸시합니다.
AllBookTickers   모든 심볼에 대해 최고 매수 또는 매도의 가격이나 수량에 대한 모든 업데이트를 실시간으로 푸시합니다.
PartialBookDepth Symbol, Depth 상위 <levels>개의 bid와 ask로, 매초 푸시됩니다. 유효한 <levels>는 5, 10 또는 20입니다.
DiffDepth Symbol 주문장을 로컬에서 관리하는 데 사용되는 주문장 가격 및 수량 깊이 업데이트입니다.

 

성공적인 구독 / 구독 취소 후 클라이언트는 이에 대한 메시지를 수신하며, 여기서 id는 Subscribed / Unsubscribed 메서드의 결과입니다.

 


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

 

User Data Stream API

binance 계정에서 얻은 유효한 ApiKey가 필요하며, ApiKey는 구성 요소의 Binance.ApiKey 속성에 설정해야 합니다.

 

다음 데이터는 변경이 있을 때마다 클라이언트에 푸시됩니다. 어떤 메서드도 구독할 필요가 없으며, 유효한 ApiKey를 설정하면 자동으로 수행됩니다.

 

Method 설명
Account Update 계정 상태는 outboundAccountInfo 이벤트로 업데이트됩니다.
Balance Update

Balance Update는 다음 중에 발생합니다:

 

  • 계정에서의 입금 또는 출금
  • 계정 간 자금 이체(예: 현물에서 마진으로)
Order Update 주문은 executionReport 이벤트로 업데이트됩니다.

 

 

REST API

기본 엔드포인트는 https://api.binance.com 입니다. 모든 엔드포인트는 JSON 객체 또는 배열을 반환합니다. 데이터는 오름차순으로 반환됩니다. 가장 오래된 것이 먼저, 가장 최신 것이 마지막입니다.

 

REST_API.BinanceOptions 속성을 사용하여 REST API Options에 접근합니다.

 

 

Public API EndPoints

 

이러한 엔드포인트는 권한 부여 없이 접근할 수 있습니다.

 

General EndPoints

 

Method 매개변수 설명
Ping   Rest API에 대한 연결을 테스트합니다.
GetServerTime   Rest API에 대한 연결성을 테스트하고 현재 서버 시간을 가져옵니다.
GetExchangeInformation   현재 거래소 거래 규칙 및 심볼 정보

 

 

Market Data EndPoints

 

Method 매개변수 설명
GetOrderBook Symbol 호가창을 가져옵니다.
GetTrades Symbol 최근 거래를 가져옵니다
GetHistoricalTrades Symbol 이전 거래를 가져옵니다.
GetAggregateTrades Symbol 압축된 집계 거래를 가져옵니다. 동일한 주문에서 동일한 가격으로 동시에 체결되는 거래는 수량이 집계됩니다.
GetKLines Symbol, Interval 심볼에 대한 Kline/캔들스틱 바입니다. Klines는 open time으로 고유하게 식별됩니다.
GetAveragePrice Symbol 심볼의 현재 평균 가격입니다.
Get24hrTicker Symbol 24시간 롤링 창 가격 변동 통계. 심볼 없이 이에 접근할 때는 주의하십시오.
GetPriceTicker Symbol symbol의 최신 가격.
GetPriceTickers Symbols 심볼 배열의 최신 가격입니다. 예: ["BTCUSDT","BNBUSDT"]
GetBookTicker Symbol 심볼 또는 심볼들에 대한 오더북의 최적 가격/수량.
GetUIKLines Symbol, Interval 심볼에 대한 캔들스틱 봉입니다. 응답은 GetKLines와 유사하며, 캔들스틱 차트 표시에 최적화되어 있습니다.
GetRollingWindowTicker Symbol, Symbols, WindowSize 롤링 윈도우 가격 변동 통계입니다. 참고: 지정하지 않으면 WindowSize 기본값은 1d입니다.
GetTradingDayTicker Symbol, Symbols, Type 거래일의 가격 변동 통계.

 

 

 

Private API EndPoints

 

서버의 권한을 받으려면 APIKey와 APISecret이 필요합니다.

 

Account Data EndPoints

 

Method 매개변수 설명
NewOrder Symbol, Side, Type 새 주문을 보냅니다.
PlaceMarketOrder Side, Symbol, Quantity 새 Market Order를 배치합니다
PlaceMarketQuoteOrder Side, Symbol, QuoteOrderQty 새 마켓 견적 주문을 등록합니다
PlaceLimitOrder Side, Symbol, Quantity, LimitPrice 새 지정가 주문을 실행합니다
PlaceStopOrder Side, Symbol, Quantity, StopPrice, LimitPrice 새 Stop Order를 넣습니다
PlaceStopTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice 새 Stop Trailing 주문을 배치합니다
PlaceTakeProfitOrder Side, Symbol, Quantity, StopPrice, LimitPrice 새 Take Profit Order를 배치합니다
PlaceTakeProfitTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice 새 Take ProfitTrailing Order를 합니다
PlaceLimitMakerOrder Side, Symbol, Quantity 새 Limit Market Order를 넣습니다
TestNewOrder Symbol, Side, Type 새 주문 생성 및 signature/recvWindow long을 테스트합니다. 새 주문을 생성하고 검증하지만 매칭 엔진으로 보내지는 않습니다.
QueryOrder Symbol 주문의 상태를 확인합니다.
CancelOrder Symbol 활성 주문을 취소합니다. 활성 주문을 취소합니다. OrderId 또는 OrigClientOrderId 중 하나를 전송해야 합니다.
CancelAllOpenOrders Symbol (선택적)  
GetOpenOrders   심볼의 모든 미결제 주문을 가져옵니다. 심볼 없이 이에 접근할 때 주의하십시오.
GetAllOrders Symbol 모든 계정 주문을 가져옵니다. 활성, 취소됨 또는 체결됨.
NewOCO Symbol, Side, Quantity, Price, StopPrice 새 OCO를 전송합니다.
CancelOCO Symbol 전체 Order List를 취소합니다
QueryOCO Symbol 제공된 선택적 매개변수를 기반으로 특정 OCO를 검색합니다
GetAllOCO   제공된 선택적 매개변수를 기반으로 모든 OCO를 검색합니다
GetOpenOCO   모든 미결제 OCO를 가져옵니다.
GetAccountInformation   현재 계정 정보를 가져옵니다.
GetAccountTradeList Symbol 특정 계정과 심볼에 대한 거래를 가져옵니다.
CancelReplaceOrder Symbol, Side, Type, CancelReplaceMode 기존 주문을 취소하고 동일한 심볼에 새 주문을 실행합니다.
NewOrderListOCO Symbol, Side, Quantity, AboveType, BelowType 새 OCO order list를 넣습니다.
NewOrderListOTO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingType, PendingSide, PendingQuantity 새 OTO(One-Triggers-the-Other) 주문 목록을 배치합니다.
NewOrderListOTOCO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingSide, PendingAboveType, PendingBelowType, PendingQuantity 새 OTOCO(One-Triggers-a-One-Cancels-the-Other) 주문 목록을 발주합니다.
NewSOROrder Symbol, Side, Type, Quantity Smart Order Routing(SOR)을 사용하여 주문을 배치합니다.
TestSOROrder Symbol, Side, Type, Quantity Smart Order Routing(SOR)을 사용하여 새 주문을 테스트합니다. 새 주문을 생성하고 검증하지만 매칭 엔진으로 보내지는 않습니다.
GetOrderRateLimitUsage 모든 간격에 대한 사용자의 현재 주문 수 사용량을 표시합니다.
GetPreventedMatches Symbol STP(Self Trade Prevention)로 인해 만료된 주문 목록을 표시합니다.
GetAllocations Symbol SOR 주문 배치로 인한 allocation을 검색합니다.
GetAccountCommission Symbol 현재 계정 수수료율을 가져옵니다.

 

 

 

Convert EndPoints

 

Method 매개변수 설명
GetAllConvertPairs FromAsset, ToAsset 변환 가능한 모든 token 쌍과 token의 각 상한/하한을 쿼리합니다
GetConvertAssetInfo   지원되는 자산의 정밀도 정보를 쿼리합니다
SendConvertQuoteRequest FromAsset, ToAsset 요청한 토큰 쌍에 대한 견적을 요청합니다
AcceptConvertQuote QuoteId 견적 ID로 제공된 견적을 수락합니다.
GetConvertOrderStatus OrderId 또는 QuoteId 주문 ID로 주문 상태를 쿼리합니다.
PlaceConvertLimitOrder BaseAsset, QuoteAsset, Side, LimitPrice

사용자가 지정가 주문을 발주할 수 있도록 합니다.

baseAsset 또는 quoteAsset은 exchangeInfo 엔드포인트를 통해 결정할 수 있습니다.
Limit price는 baseAsset에서 quoteAsset으로 정의됩니다.
baseAmount 또는 quoteAmount 중 하나가 사용됩니다.

CancelConvertLimitOrder OrderId 사용자가 limit 주문을 취소할 수 있도록 합니다
GetConvertLimitOpenOrders   사용자가 기존의 모든 지정가 주문을 쿼리할 수 있도록 합니다.
GetConvertTradeHistory StartTime, EndTime startTime과 endTime 사이의 최대 간격은 30일입니다.

 

 

 

Wallet EndPoints

(*wallet 엔드포인트는 데모가 아닌 프로덕션 서버에서만 작동합니다)

 

Method 설명
GetWalletSystemStatus 시스템 상태를 가져옵니다.
GetWalletAllCoinsInformation 사용자가 입금 및 출금할 수 있는 코인 정보를 가져옵니다.
GetWalletDailyAccountSnapshot Type: "SPOT", "MARGIN", "FUTURES"
  • 쿼리 기간은 30일 미만이어야 합니다
  • 최근 1개월 이내의 쿼리만 지원합니다
  • startTime과 endTime이 전송되지 않으면 기본적으로 최근 7일의 레코드를 반환합니다
SetWalletDisableFastWithdrawSwitch 이 요청은 계정의 fastwithdraw 스위치를 비활성화합니다.
이 엔드포인트를 요청하는 api 키에 대해 "trade" 옵션을 활성화해야 합니다.
SetWalletEnableFastWithdrawSwitch 이 요청은 계정에서 fastwithdraw 스위치를 활성화합니다.
이 엔드포인트를 요청하는 api 키에 대해 "trade" 옵션을 활성화해야 합니다.
Fast Withdraw Switch가 켜져 있으면 Binance 계정으로의 자금 이체가 즉시 완료됩니다. 온체인 거래, 거래 ID, 출금 수수료가 없습니다.
WalletWithdraw

출금 요청을 제출합니다.

 

GetWalletDepositHistory 입금 기록을 가져옵니다.
GetWalletWithdrawHistory 출금 내역을 가져옵니다.
GetWalletDepositAddress 네트워크와 함께 입금 주소를 가져옵니다.
GetWalletAccountStatus 계정 상태 세부 정보를 가져옵니다.
GetWalletAccountAPITradingStatus 계정 api 거래 상태 세부 정보를 가져옵니다.
GetWalletDustLog 마지막 100개 레코드만 반환
2020/12/01 이후 레코드만 반환
GetWalletAssetsConvertedBNB  
WalletDustTransfer

dust 자산을 BNB로 변환합니다.

이 엔드포인트를 요청하는 API Key에 대해 Spot & Margin Trading 권한을 활성화해야 합니다.

GetWalletAssetDividendRecord 자산 배당 기록을 조회합니다.
GetWalletAssetDetail Binance에서 지원하는 자산의 세부 정보를 가져옵니다.
GetWalletTradeFee 거래 수수료 가져오기
WalletUserUniversalTransfer

이 엔드포인트를 요청하는 API Key에 대해 Permits Universal Transfer 옵션을 활성화해야 합니다.MAIN_UMFUTURE Spot 계정을 USDⓈ-M Futures 계정으로 이체

Type의 ENUM:

  • MAIN_CMFUTURE Spot 계정을 COIN-M Futures 계정으로 이체
  • MAIN_MARGIN Spot 계정을 Margin(cross)계정으로 이체
  • UMFUTURE_MAIN USDⓈ-M Futures 계정을 Spot 계정으로 이체
  • UMFUTURE_MARGIN USDⓈ-M Futures 계정을 Margin(cross)계정으로 이체
  • CMFUTURE_MAIN COIN-M Futures 계정을 Spot 계정으로 이체
  • CMFUTURE_MARGIN COIN-M Futures 계정을 Margin(cross) 계정으로 이체
  • MARGIN_MAIN Margin(cross)계정을 Spot 계정으로 이체
  • MARGIN_UMFUTURE Margin(cross)계정을 USDⓈ-M Futures로 이체
  • MARGIN_CMFUTURE Margin(cross)계정을 COIN-M Futures로 이체
  • ISOLATEDMARGIN_MARGIN Isolated margin 계정을 Margin(cross) 계정으로 이체
  • MARGIN_ISOLATEDMARGIN Margin(cross) 계정을 Isolated margin 계정으로 이체
  • ISOLATEDMARGIN_ISOLATEDMARGIN Isolated margin 계정을 Isolated margin 계정으로 이체
  • MAIN_FUNDING Spot 계정을 Funding 계정으로 이체
  • FUNDING_MAIN Funding 계정을 Spot 계정으로 이체
  • FUNDING_UMFUTURE Funding 계정을 UMFUTURE 계정으로 이체
  • UMFUTURE_FUNDING UMFUTURE 계정을 Funding 계정으로 이체
  • MARGIN_FUNDING MARGIN 계정을 Funding 계정으로 이체
  • FUNDING_MARGIN Funding 계정을 Margin 계정으로 이체
  • FUNDING_CMFUTURE Funding 계정을 CMFUTURE 계정으로 이체
  • CMFUTURE_FUNDING CMFUTURE 계정을 Funding 계정으로 이체
GetWalletQueryUserUniversalTransferHistory
  • type이 ISOLATEDMARGIN_MARGIN 및 ISOLATEDMARGIN_ISOLATEDMARGIN일 때 fromSymbol을 보내야 합니다
  • type이 MARGIN_ISOLATEDMARGIN 및 ISOLATEDMARGIN_ISOLATEDMARGIN일 때 toSymbol을 보내야 합니다
  • 최근 6개월 이내의 쿼리만 지원합니다
  • startTime과 endTime이 전송되지 않으면, 기본적으로 최근 7일간의 레코드를 반환합니다
GetWalletFundingWallet 현재 다음 비즈니스 자산 쿼리를 지원합니다:Binance Pay, Binance Card, Binance Gift Card, Stock Token
GetWalletUserAsset 사용자 자산을 가져옵니다. 양수 데이터만 해당됩니다.
GetWalletApiKeyPermission  

 

 

Events

Binance 메시지는 TsgcWebSocketClient 구성 요소에서 수신되며, 다음 이벤트를 사용할 수 있습니다:

 

OnConnect

Binance 서버에 성공적으로 연결된 후.

OnDisconnect

Binance 서버와의 연결이 끊긴 후

OnMessage

서버가 클라이언트에 보낸 메시지는 이 이벤트에서 처리됩니다.

OnError

프로토콜에 오류가 있으면 이 이벤트가 호출됩니다.

OnException

처리되지 않은 예외가 있으면 이 이벤트가 호출됩니다.

 

또한 Binance API 구성 요소에는 OnBinanceHTTPException이라는 특정 이벤트가 있으며, HTTP 요청(REST API 또는 WebSocket User Stream)을 호출하는 중 오류가 있을 때마다 발생합니다.

 

(*) Binance 서버의 변경으로 인해 Rad Studio 10.1 이전의 Indy 버전은 Test Servers에 연결할 수 없습니다. 이 문제는 Enterprise Edition이나 Indy 버전이 최신으로 업그레이드된 경우에는 영향을 주지 않습니다.