Kucoin은 국제적인 다국어 암호화폐 거래소입니다. Kucoin 데이터에 접근하기 위한 일부 API를 제공합니다. 다음 API가 지원됩니다.
Kucoin API에는 공개와 비공개의 2가지 유형의 메서드가 있습니다. 공개 메서드는 인증 없이 액세스할 수 있습니다(예: 티커 가격 가져오기). 사용자 데이터와 관련된 비공개 메서드는 Kucoin API 키 사용이 필요합니다.
특정 서버에서 채널 메시지를 구독하려면 클라이언트 측이 서버에 구독 메시지를 보내야 합니다.
구독이 성공하면, 응답이 true로 설정될 때 시스템이 ack 메시지를 보냅니다.
{
"id":"1545910660739",
"type":"ack"
}
토픽 메시지가 생성되는 동안 시스템은 해당 메시지를 클라이언트 측으로 보냅니다.
다음 Subscription / Unsubscription 메서드가 지원됩니다.
| Method | 매개변수 | 설명 |
| SubscribeSymbolTicker | Symbol | 이 topic을 구독하여 BBO 변경 사항의 푸시를 받으십시오. 1초 내에 변경 사항이 없으면 푸시되지 않습니다. 가장 최신 BBO와 함께 100ms마다 푸시됩니다. 마지막 데이터와 비교하여 변경 사항이 없으면 푸시되지 않습니다. |
| SubscribeAllSymbolsTicker | 모든 시장 심볼 BBO 변경의 푸시를 받으려면 이 토픽을 구독하십시오. | |
| SubscribeSymbolSnapshot | Symbol | 단일 symbol에 대한 snapshot 데이터를 가져오려면 구독하십시오. snapshot 데이터는 2초 간격으로 푸시됩니다. |
| SubscribeMarketSnapshot | Market | 전체 시장의 snapshot 데이터를 가져오려면 이 topic을 구독하십시오. snapshot 데이터는 2초 간격으로 푸시됩니다. |
| SubscribeLevel2MarketData | Symbol | Level2 주문서 데이터를 가져오려면 이 토픽을 구독하십시오. websocket 구독이 성공하면 시스템이 websocket으로 푸시한 증분 변경 데이터를 보냅니다. |
| SubscribeLevel2_5BestAskBid | Symbol | 시스템은 100밀리초마다의 스냅샷 데이터인 최고 5개의 매도/매수 주문 데이터를 반환합니다(즉, 최고 5개의 매도/매수 주문 데이터가 100밀리초마다 실시간으로 반환됨). |
| SubscribeLevel2_50BestAskBid | Symbol | 시스템은 100밀리초마다의 스냅샷 데이터인 최고 50개의 매도/매수 주문 데이터를 반환합니다(즉, 최고 50개의 매도/매수 주문 데이터가 100밀리초마다 실시간으로 반환됨). |
| SubscribeKlines | Symbol | K-Line 데이터를 얻으려면 이 토픽을 구독하십시오. |
| SubscribeMatchExecutionData | Symbol | 이 토픽을 구독하여 Level 3의 일치 이벤트 데이터 흐름을 가져옵니다. 거래된 각 주문에 대해 시스템은 다음 형식으로 일치 메시지를 보냅니다. |
| SubscribeIndexPrice | Symbol | 마진 거래에 대한 index price를 가져오려면 이 topic을 구독하십시오. |
| SubscribeMarkPrice | Symbol | margin 거래의 mark price를 얻으려면 이 토픽을 구독하십시오. |
| SubscribeOrderBookChanged | Symbol | margin 거래의 주문 장부 변경을 얻으려면 이 토픽을 구독하십시오. |
| SubscribeLevel1 | Symbol | 심볼에 대한 Level 1 최우선 매수/매도 데이터를 구독합니다. |
ACK 매개변수가 true로 전송되면 성공적인 구독 / 구독 취소 후 클라이언트는 이에 대한 메시지를 수신합니다.
Kucoin 계정에서 얻은 유효한 ApiKey가 필요합니다. ApiKey, ApiSecret 및 Passphrase는 클라이언트 API 구성 요소의 Kucoin 속성에 설정해야 합니다.
다음 데이터는 변경이 있을 때마다 클라이언트에 푸시됩니다. 어떤 메서드도 구독할 필요가 없으며, 유효한 ApiKey를 설정하면 자동으로 수행됩니다.
| Method | 설명 |
| SubscribeTradeOrders | 이 토픽은 주문의 모든 변경 이벤트를 푸시합니다. |
| SubscribeAccountBalance |
계정 잔액이 변경되면 이 메시지를 받게 됩니다. 메시지에는 변경 세부 정보가 포함됩니다. |
| SubscribePositionStatus | 포지션 상태가 변경되면 시스템이 변경 이벤트를 푸시합니다. |
| SubscribeMarginTradeOrders | 주문이 호가창에 들어가면 시스템이 이 메시지를 대출자에게 푸시합니다. |
| SubscribeStopOrder | stop order가 시스템에 수신되면 "open" 유형의 메시지를 받게 됩니다. 이는 이 주문이 시스템에 진입하여 트리거되기를 기다리고 있음을 의미합니다. |
| SubscribeTradeOrdersV2 | 향상된 주문 업데이트 알림을 위해 trade orders V2 채널을 구독합니다. |
| SubscribeCrossMarginPosition | 교차 마진 포지션 업데이트를 구독합니다. 교차 마진 포지션이 변경되면 시스템이 변경 이벤트를 푸시합니다. |
| SubscribeIsolatedMarginPosition | isolated margin 포지션 업데이트를 구독합니다. isolated margin 포지션이 변경되면 시스템이 변경 이벤트를 푸시합니다. |
모든 엔드포인트는 JSON 객체 또는 배열을 반환합니다.
Public API EndPoints
이러한 엔드포인트는 권한 부여 없이 접근할 수 있습니다.
General EndPoints
| Method | 매개변수 | 설명 |
| GetServiceStatus | Rest API에 대한 연결성을 테스트하고 Service Status를 가져옵니다 | |
| GetServerTime | Rest API에 대한 연결성을 테스트하고 현재 서버 시간을 가져옵니다. |
Market Data EndPoints
| Method | 매개변수 | 설명 |
| GetSymbolList | Market | 이 엔드포인트를 통해 요청하여 거래 가능한 통화 쌍 목록을 가져옵니다. 거래 심볼의 마켓 정보를 가져오려는 경우 |
| GetTicker | Symbol | 이 엔드포인트를 통해 요청하여 Level 1 Market Data를 가져옵니다. 반환된 값에는 최적 매수 호가와 크기, 최적 매도 호가와 크기, 그리고 마지막 체결 가격과 마지막 체결 크기가 포함됩니다. |
| GetAllTickers | 시장의 모든 거래 쌍에 대한 시장 티커를 요청합니다(24시간 거래량 포함). | |
| Get24hrStats | Symbol | 지난 24시간 동안 지정된 티커의 통계를 가져오려면 이 엔드포인트를 통해 요청하십시오. |
| GetMarketList | 전체 거래 시장의 거래 통화를 가져오려면 이 엔드포인트를 통해 요청하십시오. | |
| GetPartOrderBook20 | Symbol | symbol에 대한 미체결 주문 목록을 가져오려면 이 엔드포인트를 통해 요청하십시오. Level-2 order book에는 모든 bid와 ask(가격별 집계)가 포함되며, 이 level은 각 활성 가격에 대해 하나의 크기만 반환합니다(해당 가격에 단일 주문만 있는 것처럼). 시스템은 order book에서 20개의 데이터(ask 및 bid 데이터)를 반환합니다. |
| GetPartOrderBook100 | Symbol | 이 엔드포인트를 통해 요청하여 심볼에 대한 미체결 주문 목록을 가져옵니다. Level-2 호가창에는 모든 매수 및 매도 호가(가격별로 집계됨)가 포함되며, 이 레벨은 각 활성 가격에 대해 하나의 크기만 반환합니다(해당 가격에 단일 주문만 있는 것처럼). 시스템은 호가창에서 100개의 데이터(매도 및 매수 데이터)를 반환합니다. |
| GetFullOrderBook | Symbol | 지정된 심볼의 order book을 얻으려면 이 엔드포인트를 통해 요청하십시오. Level 2 order book은 모든 bids와 asks를 포함합니다(가격별로 집계됨). 이 level은 각 가격에 대해 하나의 집계 크기만 반환합니다(마치 그 가격에 단일 주문 하나만 있는 것처럼). 이 API는 전체 depth의 데이터를 반환합니다. |
| GetKLines | Symbol | 이 엔드포인트를 통해 요청하여 지정된 symbol의 kline을 가져옵니다. 데이터는 요청된 유형에 따라 그룹화된 버킷으로 반환됩니다. |
| GetCurrencies | 통화 목록을 가져오려면 이 엔드포인트를 통해 요청하십시오. | |
| GetCurrencyDetail | Currency | 지정된 통화의 통화 세부 정보를 얻으려면 이 엔드포인트를 통해 요청하십시오. |
| GetFiatPrice | 지정된 통화의 통화 세부 정보를 얻으려면 이 엔드포인트를 통해 요청하십시오. | |
| GetPartOrderBook1 | Symbol | 이 엔드포인트를 통해 요청하여 심볼에 대한 Level 1 최적 매수/매도 호가를 가져옵니다. |
Private API EndPoints
서버의 권한을 받으려면 APIKey와 APISecret이 필요합니다.
User EndPoints
| Method | 매개변수 | 설명 |
| GetAllSubAccounts | 이 인터페이스를 통해 모든 서브 사용자의 사용자 정보를 가져올 수 있습니다. | |
| GetListAccounts | 계정 목록을 가져옵니다. | |
| GetAccount | AccountId | 단일 계정에 대한 정보입니다. accountId를 알고 있을 때 이 엔드포인트를 사용하십시오. |
| GetAccountBalanceSubAccount | SubUserId | 이 엔드포인트는 subUserId로 지정된 하위 사용자의 계정 정보를 반환합니다. |
| InnerTransfer | 이 API 엔드포인트는 계정 간 자금을 내부적으로 이체하는 데 사용할 수 있습니다. 사용자는 메인 계정, 트레이딩 계정, 교차 마진 계정, 격리 마진 계정 간에 무료로 자금을 이체할 수 있습니다. 메인 계정, 교차 마진 계정, 트레이딩 계정에서 선물 계정으로의 자금 이체는 지원되지만, 선물 계정에서 다른 계정으로의 자금 이체는 지원되지 않습니다. | |
| GetDepositAddresses | Currency | 통화의 입금 주소를 가져옵니다. |
| CreateDepositAddress | Currency | 통화에 대한 새 입금 주소를 생성합니다. |
| GetDepositList | 입금 내역을 가져옵니다. | |
| GetAccountLedgers | 계정 원장 항목을 가져옵니다. | |
| GetTradeFees | Symbols | 지정된 심볼의 거래 수수료를 가져옵니다. |
Withdraw EndPoints
| Method | 매개변수 | 설명 |
| GetWithdrawalsList | Withdrawal 목록을 가져옵니다. | |
| GetHistoricalWithdrawalsList | KuCoin V1 과거 출금 목록입니다. | |
| GetWithdrawalsQuotas | Currency | Get Withdrawals Quotas |
| ApplyWithdraw | Currency, Address, Amount | Create a Withdraw |
| CancelWithdraw | WithdrawalId | PROCESSING 상태의 출금 요청만 취소할 수 있습니다. |
Trade Endpoints
| Method | 매개변수 | 설명 |
| PlaceOrder | 두 가지 유형의 주문을 실행할 수 있습니다: limit 및 market. 주문은 계정에 충분한 자금이 있는 경우에만 실행할 수 있습니다. 주문이 실행되면 주문 기간 동안 계정 자금이 보류됩니다. 보류되는 자금의 양과 종류는 주문 유형 및 지정된 매개변수에 따라 다릅니다. | |
| PlaceMarketOrder | 시장가 주문을 넣습니다. | |
| PlaceLimitOrder | Limit Order를 합니다. | |
| PlaceMarginOrder | Margin Order를 발주합니다. | |
| CancelOrder | 주문 Id로 주문을 취소합니다. | |
| CancelOrderByClientOid | Client Order Id로 주문을 취소합니다. | |
| CancelAllOrders | 모든 미체결 주문을 취소합니다. | |
| ListOrders | 이 엔드포인트를 통해 요청하여 현재 주문 목록을 가져옵니다. 항목은 페이지로 나뉘고 최신순으로 정렬되어 표시됩니다 | |
| GetRecentOrders | 이 엔드포인트를 통해 요청하여 지난 24시간 동안의 1000개 주문을 가져옵니다. | |
| GetOrder | order ID로 단일 주문 정보를 가져오려면 이 엔드포인트를 통해 요청하십시오. | |
| GetOrderByClientOid | Client order ID로 단일 주문 정보를 가져오려면 이 엔드포인트를 통해 요청하십시오. | |
| ListFills | 최근 체결 내역을 가져오려면 이 엔드포인트를 통해 요청하십시오. | |
| GetRecentFills | 최근 24시간 동안의 1000개의 fill 목록을 가져오려면 이 엔드포인트를 통해 요청하십시오. | |
| PlaceStopOrder | Stop Order를 실행합니다. | |
| PlaceStopMarketOrder | Stop Market Order를 합니다. | |
| PlaceStopLimitOrder | Stop Limit Order를 배치합니다. | |
| CancelStopOrder | Order Id로 미결제 Stop Order를 취소합니다 | |
| CancelStopOrderByClientOid | Client Order Id로 미결제 Stop Order를 취소합니다 | |
| CancelAllStopOrders | Cancel All Stop Orders | |
| GetStopOrder | 이 인터페이스를 통해 요청하여 주문 ID로 스탑 주문 정보를 가져옵니다. | |
| GetStopOrderByClientOid | Client order ID를 통해 stop order 정보를 가져오려면 이 인터페이스를 통해 요청하십시오. | |
| ListStopOrders | 이 엔드포인트를 통해 요청하여 현재 트리거되지 않은 스톱 주문 목록을 가져옵니다. 항목은 페이지로 나뉘며 최신 항목이 먼저 표시되도록 정렬됩니다. | |
| PlaceHFOrder | 고빈도 주문을 실행합니다. | |
| CancelHFOrder | order ID로 고빈도 주문을 취소합니다. | |
| CancelHFOrderByClientOid | 클라이언트 주문 ID로 고빈도 주문을 취소합니다. | |
| CancelAllHFOrders | 모든 고빈도 주문을 취소합니다. | |
| GetHFActiveOrders | 활성 고빈도 주문을 가져옵니다. | |
| GetHFDoneOrders | 완료된 고빈도 주문을 가져옵니다. | |
| GetHFOrder | order ID로 특정 고빈도 주문을 가져옵니다. |
Kucoin 메시지는 TsgcWebSocketClient 구성 요소에서 수신되며, 다음 이벤트를 사용할 수 있습니다:
OnConnect
Kucoin 서버에 성공적으로 연결된 후입니다.
OnDisconnect
Kucoin 서버에서 연결이 끊긴 후
OnMessage
서버가 클라이언트에 보낸 메시지는 이 이벤트에서 처리됩니다.
OnError
프로토콜에 오류가 있으면 이 이벤트가 호출됩니다.
OnException
처리되지 않은 예외가 있으면 이 이벤트가 호출됩니다.
또한 Kucoin API 구성 요소에는 OnKucoinHTTPException이라는 특정 이벤트가 있으며, HTTP 요청(REST API 또는 WebSocket Feeds) 호출 중 오류가 있을 때마다 발생합니다.