Binance는 국제 다국어 암호화폐 거래소입니다. Binance 데이터에 액세스하기 위한 일부 API를 제공합니다. 다음 API가 지원됩니다:
클라이언트는 Binance.us도 지원합니다. 다음 API가 지원됩니다:
Binance API에는 2가지 유형의 메서드가 있습니다: 공개 및 비공개. 공개 메서드는 인증 없이 액세스할 수 있습니다(예: 티커 가격 가져오기). 일부는 비공개이며 사용자 데이터와 관련됩니다. 이러한 메서드는 Binance 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 | 주문장을 로컬에서 관리하는 데 사용되는 주문장 가격 및 수량 깊이 업데이트입니다. |
여러 스트림을 단일 프레임으로 이름을 지정해 한 번에 구독할 수도 있습니다. 스트림 이름 배열과 함께 SubscribeStreams 또는 UnsubscribeStreams를 호출하십시오. WebSocket 채널을 구독하는 방법을 참조하십시오.
성공적인 구독 / 구독 취소 후 클라이언트는 이에 대한 메시지를 수신하며, 여기서 id는 Subscribed / Unsubscribed 메서드의 결과입니다.
{
"result": null,
"id": 1
}
binance 계정에서 얻은 유효한 ApiKey가 필요하며, ApiKey는 구성 요소의 Binance.ApiKey 속성에 설정해야 합니다.
다음 데이터는 변경이 있을 때마다 클라이언트에 푸시됩니다. 어떤 메서드도 구독할 필요가 없으며, 유효한 ApiKey를 설정하면 자동으로 수행됩니다.
Binance는 2026-02-20에 Spot ListenKey REST 엔드포인트(POST, PUT 및 DELETE /api/v3/userDataStream)와 wss://stream.binance.com:9443/ws/<listenKey> 연결을 중단했습니다. Binance.com Spot과 Spot TestNet에서는 클라이언트가 대신 Binance WebSocket API에서 User Data Stream을 구독하며, 이를 위해 구성 요소가 wss://ws-api.binance.com:443/ws-api/v3(TestNet이 활성화되면 wss://ws-api.testnet.binance.vision/ws-api/v3)에 두 번째 연결을 엽니다. 이전과 같이 Binance.UserStream을 활성화하십시오. 재연결 후 구독은 자동으로 갱신되고 이벤트도 동일한 형태로 수신되므로 기존 핸들러가 계속 동작합니다. 새 구독은 서명되므로, 중단된 ListenKey 요청이 ApiKey만 필요했던 것과 달리 이제 Binance.ApiKey뿐만 아니라 Binance.ApiSecret도 설정해야 합니다. Binance.us에서는 ListenKey 방식이 계속 사용됩니다.
| Method | 설명 |
| Account Update | 계정 상태는 outboundAccountInfo 이벤트로 업데이트됩니다. |
| Balance Update |
Balance Update는 다음 중에 발생합니다:
|
| Order Update | 주문은 executionReport 이벤트로 업데이트됩니다. |
기본 엔드포인트는 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 엔드포인트를 통해 결정할 수 있습니다. |
| CancelConvertLimitOrder | OrderId | 사용자가 limit 주문을 취소할 수 있도록 합니다 |
| GetConvertLimitOpenOrders | 사용자가 기존의 모든 지정가 주문을 쿼리할 수 있도록 합니다. | |
| GetConvertTradeHistory | StartTime, EndTime | startTime과 endTime 사이의 최대 간격은 30일입니다. |
Wallet EndPoints
(*wallet 엔드포인트는 데모가 아닌 프로덕션 서버에서만 작동합니다)
| Method | 설명 |
| GetWalletSystemStatus | 시스템 상태를 가져옵니다. |
| GetWalletAllCoinsInformation | 사용자가 입금 및 출금할 수 있는 코인 정보를 가져옵니다. |
| GetWalletDailyAccountSnapshot | Type: "SPOT", "MARGIN", "FUTURES"
|
| 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:
|
| GetWalletQueryUserUniversalTransferHistory |
|
| GetWalletFundingWallet | 현재 다음 비즈니스 자산 쿼리를 지원합니다:Binance Pay, Binance Card, Binance Gift Card, Stock Token |
| GetWalletUserAsset | 사용자 자산을 가져옵니다. 양수 데이터만 해당됩니다. |
| GetWalletApiKeyPermission |
Binance 메시지는 TsgcWebSocketClient 구성 요소에서 수신되며, 다음 이벤트를 사용할 수 있습니다:
OnConnect
Binance 서버에 성공적으로 연결된 후.
OnDisconnect
Binance 서버와의 연결이 끊긴 후
OnMessage
서버가 클라이언트에 보낸 메시지는 이 이벤트에서 처리됩니다.
OnError
프로토콜에 오류가 있으면 이 이벤트가 호출됩니다.
OnException
처리되지 않은 예외가 있으면 이 이벤트가 호출됩니다.
또한 Binance API 구성 요소에는 OnBinanceHTTPException이라는 특정 이벤트가 있으며, HTTP 요청(REST API 또는 WebSocket User Stream)을 호출하는 중 오류가 있을 때마다 발생합니다.
HTTP 요청이 실패할 때 발생하는 예외는 EsgcHTTPAPIProtocolException이며, Binance가 반환한 상태 코드와 응답 헤더를 담고 있으므로 Retry-After나 X-MBX-USED-WEIGHT-1M 같은 값을 읽을 수 있습니다. 예제는 시장 데이터를 가져오는 방법을 확인하십시오.
비공개 User Data Stream을 열 수 없는 경우, 보고되는 오류에 HTTP 상태 코드와 Binance가 반환한 메시지가 포함되므로 OnBinanceHTTPException을 지정하지 않아도 원인을 확인할 수 있습니다.
(*) Binance 서버의 변경으로 인해 Rad Studio 10.1 이전의 Indy 버전은 Test Servers에 연결할 수 없습니다. 이 문제는 Enterprise Edition이나 Indy 버전이 최신으로 업그레이드된 경우에는 영향을 주지 않습니다.