KUCOIN API
HomeChange LogAPI DOC V1
Language
  • 繁體中文
HomeChange LogAPI DOC V1
Language
  • 繁體中文
SDK
Telegram
Kucoin
  1. Base Info
  • Introduction
  • Authentication
  • Enums Definitions
  • Terms Definitions
  • SDK
  • Rate Limit
  • Change Log
  • User Service
    • Market Making Incentive Scheme
    • VIP Fast Track
    • Broker Program
  • Pro API REST
    • Introduction
    • Market data
      • Get Currency
      • Get Currencies
      • Get Current Funding Rate
      • Get Announcements
      • Get Symbol
      • Get Ticker
      • Get OrderBook
      • Get Collateral Ratio
      • Get Trades
      • Get Klines
      • Get History Funding Rate
      • Get Cross Margin Config
      • Get Service Status
    • Account
      • Get Account(Classic)
      • Get Account(UTA)
      • Get Account Overview(UTA)
      • Get Sub Account
      • Get Transfer Quotas
      • Flex Transfer
      • Set Sub Account Transfer Permission
      • Set Account Mode
      • Get Fee Rate
      • Get Account Ledger
      • Get Interest History(UTA)
      • Modify leverage(UTA)
    • Orders
      • Place Order
      • Batch Place Order(Classic)
      • Cancel Order
      • Batch Cancel Orders
      • Get Order Details
      • Get Open Order List
      • Get Order History
      • Get Trade History
      • Set DCP(Classic)
      • Get DCP(Classic)
    • Positions
      • Get Position List(UTA)
      • Get Positions History(UTA)
  • Pro API Websocket
    • Base Info
      • Introduction
      • Get Private Token - Pro API Private Channels
    • Public Channels
      • Ticker
      • Trade
      • Orderbook
      • Kline
    • Private Channels
      • Order
      • Position
      • Balance
      • Execution
      • LiquidationWarning
      • Leverage
    • Add/Cancel Order
      • Add Order
      • Cancel Order
  • Classic REST
    • Account Info
      • Account & Funding
        • Get Account Summary Info
        • Get Apikey Info
        • Get Account Type - Spot
        • Get Account List - Spot
        • Get Account Detail - Spot
        • Get Account - Cross Margin
        • Get Account - Isolated Margin
        • Get Account - Futures
        • Get Account Ledgers - Spot/Margin
        • Get Account Ledgers - Trade_hf
        • Get Account Ledgers - Margin_hf
        • Get Account Ledgers - Futures
      • Sub Account
        • Add sub-account
        • Add sub-account Margin Permission
        • Add sub-account Futures Permission
        • Get sub-account List - Summary Info
        • Get sub-account Detail - Balance
        • Get sub-account List - Spot Balance (V2)
        • Get sub-account List - Futures Balance (V2)
      • Sub Account API
        • Get sub-account API List
        • Add sub-account API
        • Modify sub-account API
        • Delete sub-account API
      • Deposit
        • Add Deposit Address (V3)
        • Get Deposit Address (V3)
        • Get Deposit History
      • Withdrawals
        • Get Withdrawal Quotas
        • Withdraw (V3)
        • Cancel Withdrawal
        • Get Withdrawal History
        • Get Withdrawal History By ID
        • Get KYC Regions
      • Transfer
        • Get Transfer Quotas
        • Flex Transfer
      • Trade Fee
        • Get Basic Fee - Spot/Margin
        • Get Actual Fee - Spot/Margin
        • Get Actual Fee - Futures
    • Spot Trading
      • Market Data
        • Get Announcements
        • Get Currency
        • Get All Currencies
        • Get Symbol
        • Get All Symbols
        • Get Ticker
        • Get All Tickers
        • Get Trade History
        • Get Klines
        • Get Part OrderBook
        • Get Full OrderBook
        • Get Call Auction Part OrderBook
        • Get Call Auction Info
        • Get Fiat Price
        • Get 24hr Stats
        • Get Market List
        • Get Client IP Address
        • Get Server Time
        • Get Service Status
      • Orders
        • Add Order
        • Add Order Sync
        • Add Order Test
        • Batch Add Orders
        • Batch Add Orders Sync
        • Cancel Order By OrderId
        • Cancel Order By OrderId Sync
        • Cancel Order By ClientOid
        • Cancel Order By ClientOid Sync
        • Cancel Partial Order
        • Cancel All Orders By Symbol
        • Cancel All Orders
        • Modify Order
        • Get Order By OrderId
        • Get Order By ClientOid
        • Get Symbols With Open Order
        • Get Open Orders
        • Get Open Orders By Page
        • Get Closed Orders
        • Get Trade History
        • Get DCP
        • Set DCP
        • Add Stop Order
        • Cancel Stop Order By ClientOid
        • Cancel Stop Order By OrderId
        • Batch Cancel Stop Orders
        • Get Stop Orders List
        • Get Stop Order By OrderId
        • Get Stop Order By ClientOid
        • Add OCO Order
        • Cancel OCO Order By OrderId
        • Cancel OCO Order By ClientOid
        • Batch Cancel OCO Order
        • Get OCO Order By OrderId
        • Get OCO Order By ClientOid
        • Get OCO Order Detail By OrderId
        • Get OCO Order List
    • Margin Trading
      • Market Data
        • Get Symbols - Cross Margin
        • Get Symbols - Isolated Margin
        • Get ETF Info
        • Get Mark Price Detail
        • Get Margin Config
        • Get Mark Price List
        • Get Margin Collateral Ratio
      • Orders
        • Add Order
        • Add Order Test
        • Cancel Order By OrderId
        • Cancel Order By ClientOid
        • Cancel All Orders By Symbol
        • Get Symbols With Open Order
        • Get Open Orders
        • Get Closed Orders
        • Get Trade History
        • Get Order By OrderId
        • Get Order By ClientOid
        • Add Stop Order
        • Cancel Stop Order By OrderId
        • Cancel Stop Order By ClientOid
        • Batch Cancel Stop Orders
        • Get Stop Orders List
        • Get Stop Order By OrderId
        • Get Stop Order By ClientOid
        • Add OCO Order
        • Cancel OCO Order By OrderId
        • Cancel OCO Order By ClientOid
        • Batch Cancel OCO Order
        • Get OCO Order By OrderId
        • Get OCO Order By ClientOid
        • Get OCO Order Detail By OrderId
        • Get OCO Order List
      • Debit
        • Get Borrow Interest Rate
        • Borrow
        • Get Borrow History
        • Repay
        • Get Repay History
        • Get Interest History
        • Modify Leverage
      • Credit
        • Get Loan Market
        • Get Loan Market Interest Rate
        • Purchase
        • Modify Purchase
        • Get Purchase Orders
        • Redeem
        • Get Redeem Orders
      • Risk Limit
        • Get Margin Risk Limit
    • Futures Trading
      • Introduction
      • Market Data
        • Get Symbol
        • Get All Symbols
        • Get Ticker
        • Get All Tickers
        • Get Full OrderBook
        • Get Part OrderBook
        • Get Trade History
        • Get Klines
        • Get Mark Price
        • Get Spot Index Price
        • Get Interest Rate Index
        • Get Premium Index
        • Get 24hr stats
        • Get Server Time
        • Get Service Status
      • Orders
        • Add Order
        • Add Order Test
        • Batch Add Orders
        • Add Take Profit And Stop Loss Order
        • Cancel Order By OrderId
        • Cancel Order By ClientOid
        • Batch Cancel Orders
        • Cancel All Orders
        • Cancel All Stop orders
        • Get Order By OrderId
        • Get Order By ClientOid
        • Get Order List
        • Get Recent Closed Orders
        • Get Stop Order List
        • Get Open Order Value
        • Get Recent Trade History
        • Get Trade History
      • Positions
        • Get Margin Mode
        • Switch Margin Mode
        • Batch Switch Margin Mode
        • Get Position Mode
        • Switch Position Mode
        • Get Max Open Size
        • Get Position Details
        • Get Position List
        • Get Positions History
        • Get Max Withdraw Margin
        • Get Cross Margin Leverage
        • Modify Cross Margin Leverage
        • Add Isolated Margin
        • Remove Isolated Margin
        • Get Cross Margin Risk Limit
        • Get Cross Margin Requirement
        • Get Isolated Margin Risk Limit
        • Modify Isolated Margin Risk Limit
      • Funding Fees
        • Get Current Funding Rate
        • Get Public Funding History
        • Get Private Funding History
    • Copy Trading
      • Introduction
      • Add Order
      • Add Order Test
      • Add Take Profit And Stop Loss Order
      • Cancel Order By OrderId
      • Cancel Order By ClientOid
      • Get Max Open Size
      • Get Max Withdraw Margin
      • Add Isolated Margin
      • Remove Isolated Margin
      • Modify Isolated Margin Risk Limit
      • Modify Isolated Margin Auto-Deposit Status
      • Switch Margin Mode
      • Modify Cross Margin Leverage
      • Get Cross Margin Requirement
      • Switch Position Mode
    • Earn
      • Simple Earn
        • Purchase
        • Get Redeem Preview
        • Redeem
        • Get Savings Products
        • Get Promotion Products
        • Get Staking Products
        • Get KCS Staking Products
        • Get ETH Staking Products
        • Get Account Holding
      • Structured Earn - Dual
        • Structured Product Purchase
        • Get Dual Investment Products
        • Get Structured Product Orders
    • VIP Lending
      • Introduction
      • Get Collateral Ratio
      • Get Loan Info
      • Get Accounts
    • Affiliate
      • Introduction
      • Get Invited
      • Get Commission
      • Get Trade History
      • Get Transaction
      • Get Kumining
    • Broker
      • Introduction
      • Broker Application
      • Instructions
      • API Broker
        • Introduction
        • Broker Fast API Service
        • Get Broker Rebate
        • Get Commission
        • Get User List
        • Get User Transactions
      • Exchange Broker
        • Introduction
        • Submit KYC
        • Get KYC Status
        • Get KYC Status List
        • Get Broker Info
        • Add sub-account
        • Get sub-account
        • Add sub-account API
        • Get sub-account API
        • Modify sub-account API
        • Delete sub-account API
        • Transfer
        • Get Transfer History
        • Get Deposit List
        • Get Deposit Detail
        • Get Withdraw Detail
        • Get Broker Rebate
    • Convert
      • Introduction
      • Get Convert Symbol
      • Get Convert Currencies
      • Add Convert Order
      • Get Convert Quote
      • Get Convert Order Detail
      • Get Convert Order History
      • Add Convert Limit Order
      • Get Convert Limit Quote
      • Get Convert Limit Order Detail
      • Get Convert Limit Orders
      • Cancel Convert Limit Order
  • Classic Websocket
    • Base Info
      • Introduction
      • Get Public Token - Classic Spot/Margin
        POST
      • Get Private Token - Classic Spot/Margin
        POST
      • Get Public Token - Classic Futures
        POST
      • Get Private Token - Classic Futures
        POST
    • Spot Trading
      • Public Channels
        • Ticker
        • All Tickers
        • Orderbook - Level1
        • Orderbook - Level5
        • Orderbook - Level50
        • Orderbook - Increment
        • Call Auction Orderbook - Level50
        • Call Auction Data
        • Klines
        • Trade
        • Symbol Snapshot
        • Market Snapshot
      • Private Channels
        • Order V2
        • Order V1
        • Balance
        • Stop Order
    • Margin Trading
      • Public Channels
        • Index Price
        • Mark Price
      • Private Channels
        • Cross Margin Position
        • Isolated Margin Position
    • Futures Trading
      • Public Channels
        • Ticker V2
        • Ticker V1
        • Orderbook - Level5
        • Orderbook - Level50
        • Orderbook- Increment
        • Klines
        • Trade
        • Instrument
        • Funding Fee Settlement
        • Symbol Snapshot
      • Private Channels
        • Orders
        • Balance
        • Positions
        • Margin Mode
        • Cross Margin Leverage
        • Stop Orders
  • Error Code
    • HTTP
    • Spot
    • Margin
    • Earn
    • Broker
    • CopyTrading
    • Websocket
    • Futures
    • Pro API
  • Abandoned Endpoints
    • Introduction
    • Account & Funding
      • Get sub-account List - Summary Info (V1)
      • Get sub-account List - Spot Balance (V1)
      • Get Deposit Addresses (V2)
      • Get Deposit Addresses - V1
      • Sub-account Transfer
      • Get Deposit History - Old
      • Internal Transfer
      • Get Futures Account Transfer Out Ledger
      • Get Withdrawal History - Old
      • Futures Account Transfer Out
      • Futures Account Transfer In
      • Add Deposit Address - V1
      • Withdraw - V1
    • Spot Trading
      • Orders
        • Add Order - Old
        • Add Order Test - Old
        • Batch Add Orders - Old
        • Cancel Order By OrderId - Old
        • Cancel Order By ClientOid - Old
        • Batch Cancel Order - Old
        • Get Orders List - Old
        • Get Recent Orders List - Old
        • Get Order By OrderId - Old
        • Get Order By ClientOid - Old
        • Get Trade History - Old
        • Get Recent Trade History - Old
    • Margin Trading
      • Get Account Detail - Margin
      • Add Order - V1
      • Add Order Test - V1
      • Get Account List - Isolated Margin - V1
      • Get Account Detail - Isolated Margin - V1
    • Futures Trading
      • Modify Isolated Margin Auto-Deposit Status
      • Cancel All Orders - V1
      • Get Position Details - V1
    • Affiliate
      • Get Account
    • Broker
      • API Broker
        • Get Broker Rebate
  • Developing
    • Introduction
  1. Base Info

Introduction

1. Introduction#

While there is a strict access frequency control for REST API, we highly recommend that API users utilize Websocket to get the real-time data.
TIP
The recommended way is to just create a Websocket connection and subscribe to multiple channels.

2. Apply Connect Token#

Before creating a Websocket connection, you need to get the websocket base URL and apply for a Token。
Note
The token is valid for only 24 hours, and a single connection is expected to be disconnected after 24 hours.
It should be noted that:
if you subscribe to spot/margin data, you need to obtain tokens through the spot base URL:
Get Public Token - Spot/Margin
Get Private Token - Spot/Margin
if you subscribe to futures data, you need to obtain tokens through the futures base URL, which cannot be mixed:
Get Public Token - Futures
Get Private Token - Futures

3. Create connection#

Once the connection has been successfully established, the system will send a welcome message.
TIP
The connection will only be available once the welcome message has been received
{
  "id": "hQvf8jkno",
  "type": "welcome"
}
connectId: The connection ID is a unique value taken from the client side. The welcome message ID and the error message ID are both connectId.
If you only want to receive private messages of the specified topic, please set privateChannel to true when subscribing.

4. Heartbeat#

{
  "id": "1545910590801",
  "type": "ping"
}
WebSocket Heartbeat Mechanism
The WebSocket heartbeat mechanism is determined by two parameters returned from the following RESTful token-generation endpoints:
Get Public Token – Classic Spot/Margin
Get Private Token – Classic Spot/Margin
Get Public Token – Classic Futures
Get Private Token – Classic Futures
These endpoints return the following heartbeat parameters:
pingInterval — Heartbeat sending interval
pingTimeout — Heartbeat timeout threshold
1. Parameter Definitions
pingInterval
Indicates how often the client should send a ping frame.
The recommended behavior is to send one ping every pingInterval seconds.
Current server value: 18 seconds.
pingTimeout
Indicates the maximum time the client should wait for a pong after sending a ping.
If no pong is received within this timeout, the connection should be treated as disconnected.
Current server value: 10 seconds.
2. Behavior Notes
2.1 Session Close Logic
The WebSocket cluster’s session-closure logic is not simply pingInterval + pingTimeout.
Clients only need to ensure they send a ping at least once every pingInterval seconds.
No additional internal timing rules need to be considered.
2.2 Timeout Timer Reset Rules
The timeout countdown is based on the most recent outgoing message, which includes:
ping frames
Business messages (e.g., place order, cancel order, etc.)
Any outgoing message refreshes the timeout timer.
Network delay should also be considered; some users implement a heartbeat cycle of 9 seconds for higher reliability.
2.3 Per-Session Heartbeat Requirement
Each WebSocket session must maintain its own independent heartbeat logic.
All sessions must implement keepalive handling to prevent disconnection.
2.4 Handling Timeout Conditions
If the client's configured pingInterval:
> 10 seconds and < 18 seconds
After sending a ping, if no pong is received within 10 seconds (pingTimeout),
the client should immediately send another ping, without waiting for the next scheduled interval.
< 10 seconds
Additional pong-response detection logic is not required, because the next ping will be sent before the timeout occurs.
3. Summary
pingInterval determines how often the client should send heartbeats.
pingTimeout determines how long to wait for the server’s response.
A correct implementation should:
Send heartbeats at or before pingInterval
Detect server silence using pingTimeout
Reset timeout on any outgoing traffic
Implement heartbeat independently for each WebSocket session
This ensures stable, long-lived WebSocket connections under the Classic Spot/Margin and Classic Futures APIs.
{
  "id": "1545910590801",
  "type": "pong",
  "timestamp": 1764215232226553
}

5. Subscribe#

To subscribe to channel messages from a specific server, the client side should send a subscription message to the server.

Parameters#

ID: ID is a unique string to mark the request which is same as ID property of ack.
Topic: The topic you want to subscribe to.
PrivateChannel: You can subscribe to some private topics through the privateChannel parameter. This parameter is set to "false" by default. When set to "true", you can only receive content pushes related to the topics you subscribe to.
Response If the response is set to true, the system will return ack messages after the subscription has succeeded.
//Spot Demo
{
  "id": 1545910660739, //The ID should be a unique value
  "type": "subscribe",
  "topic": "/market/ticker:BTC-USDT,ETH-USDT", //Topic needs to be subscribed. Some topics support subscribing to information on multiple trading pairs by separating them with a comma (“,”).
  "privateChannel": false, //Adopted the private channel or not. Set as false by default.
  "response": true //Whether the server needs to return the receipt information of this subscription or not. Set as false by default.
}
//Future Demo
{
  "id": 1545910660739, //The ID should be a unique value
  "type": "subscribe",
  "topic": "/market/ticker:XBTUSDM", //Subscribed topic. Some topics support subscribing to information on multiple trading pairs by separating them with a comma (“,”).
  "privateChannel": false, //Adopted the private channel or not. Set as false by default.
  "response": true //Whether the server needs to return the receipt information of this subscription or not. Set as false by default.
}
If the subscription succeeds, the system will send ack messages to you, when the response is set as true.
{
  "id": "1545910660739",
  "type": "ack"
}
Whenever topic messages are generated, the system will send the corresponding messages to the client side. For details about the message format, please check the definitions of topics.

6. UnSubscribe#

Unsubscribe from topics you have subscribed to.

Parameters#

ID: ID unique string to mark the request.
Topic: The topic you want to unsubscribe from.
PrivateChannel: You can unsubscribe from some private topics through the privateChannel parameter. Set to "true", you can unsubscribe from related private channel pushes.
Response: If the response is set as true, the system will return the ack messages after the unsubscription succeeds.
//Spot Unsubscribe Topic
{
  "id": "1545910840805", //The ID should be a unique value
  "type": "unsubscribe",
  "topic": "/market/ticker:BTC-USDT,ETH-USDT", //Topic needs to be unsubscribed. Some topics support unsubscribing from information on multiple trading pairs by separating them with a comma (“,”).
  "privateChannel": false,
  "response": true //Whether the server needs to return the receipt information of this subscription or not. Set as false by default.
}
//Futures Unsubscribe Topic
{
  "id": "1545910840805", //The id should be an unique value
  "type": "unsubscribe",
  "topic": "/market/ticker:XBTUSDM", //Topic needs to be unsubscribed. Some topics support unsubscribing from information on multiple trading pairs by separating them with a comma (“,”).
  "privateChannel": false,
  "response": true //Whether the server needs to return the receipt information of this subscription or not. Set as false by default.
}
If the unsubscription succeeds, the system will send ack messages to you, when the response is set as true.
{
  "id": "1545910840805",
  "type": "ack"
}
Modified at 2025-12-11 08:12:32
Previous
Cancel Convert Limit Order
Next
Get Public Token - Classic Spot/Margin