Note: To understand the background and migration plan for this change, please read KuCoin’s previously published announcement “KuCoin Margin API Upgrade Announcement”:
https://www.kucoin.com/announcement/kucoin-margin-notice-250702
margin, isolated).margin_v2, isolated_v2 have the same meaning as non-V2 parameters, but will be gradually replaced by non-V2 parameters.| # | Endpoint | Parameter Mapping & Notes (All refer to SPOT Margin HF accounts) | Change |
|---|---|---|---|
| 1 | Classic REST - Get Transfer Quotas | Preferred: MARGIN, ISOLATEDV2: MARGIN_V2, ISOLATED_V2 (same meaning; phased out gradually) | Queries for SPOT Margin LF accounts are no longer supported. |
| 2 | Classic REST - Flex Transfer | Preferred: MARGIN, ISOLATEDV2: MARGIN_V2, ISOLATED_V2 (same meaning; phased out gradually)Rule: When type is INTERNAL, non-V2 and V2 are equivalent. When type is not INTERNAL, MARGIN_V2 and ISOLATED_V2 are not supported—use MARGIN and ISOLATED. | Transfers between SPOT Margin LF and HF accounts are no longer supported. |
| 3 | Classic REST - Get Account - Cross Margin | Preferred: MARGINV2: MARGIN_V2 (same meaning; phased out gradually) | Parameter semantics unified: MARGIN represents HF Cross Margin; MARGIN_V2 will be phased out. |
| 4 | Classic REST - Get Account - Isolated Margin | Preferred: ISOLATEDV2: ISOLATED_V2 (same meaning; phased out gradually) | Parameter semantics unified: ISOLATED represents HF Isolated Margin; ISOLATED_V2 will be phased out. |
| 5 | Classic REST - Get Account Ledgers - Margin_hf | Response field: accountTypeCurrent: MARGIN_V2, ISOLATED_V2Next: MARGIN, ISOLATED (will gradually replace the V2 values) | Response field update: accountType currently returns V2 enum values and will gradually migrate to non-V2 enum values. |
| 6 | Abandoned Endpoints - Inner Transfer | Preferred: margin, isolatedV2: margin_v2, isolated_v2 (same meaning; phased out gradually) | Transfers between SPOT Margin LF and HF accounts are no longer supported. |
| 7 | Abandoned Endpoints - Add Order - V1 | N/A (Margin LF order placement endpoint; no HF parameter mapping) | SPOT Margin LF endpoint is no longer available. |
| 8 | Abandoned Endpoints - Add Order Test - V1 | N/A (Margin LF test order endpoint; no HF parameter mapping) | SPOT Margin LF endpoint is no longer available. |
| 9 | Abandoned Endpoints - Get Account List - Isolated Margin - V1 | N/A (Margin LF isolated account list endpoint; no HF parameter mapping) | SPOT Margin LF endpoint is no longer available. |
| 10 | Abandoned Endpoints - Get Account Detail - Isolated Margin - V1 | N/A (Margin LF isolated account detail endpoint; no HF parameter mapping) | SPOT Margin LF endpoint is no longer available. |
MARGIN, ISOLATED.*_V2 parameters for now, but plan to remove dependencies as they will be gradually replaced by non-V2 parameters.MARGIN, ISOLATED for non-INTERNAL transfers; V2 is only equivalent when type=INTERNAL.margin, isolated, margin_v2, isolated_v2.| Category | Pro API Rate Limit | Scope / Notes |
|---|---|---|
| Maximum Concurrent Connections | ≤ 512 concurrent connections (Public/Private counted separately, 1024 total) | Private (authenticated) endpoints are counted by UID; Public (unauthenticated) endpoints are counted by IP. Master and sub-accounts are independent (different UIDs). |
| Connection Establishment Rate | 30 new connections per minute | Counted per single connection (not aggregated by UID or IP). |
| Client-to-Server Messages (Client → Server) | 100 messages per 10 seconds | Counted per single connection. |
| Subscribe / Unsubscribe Requests | No limit (Max topics per request) | N/A |
| Maximum Subscribed Topics per Connection | ≤ 200 topics | Applies to all product lines. |
| # | Pro API | Endpoint | Change Dimension | Change Details |
|---|---|---|---|---|
| 1 | REST | OrderBook | Spot / Futures | Spot: sequence changed from String → Number; Futures: price / size changed from Number → String (incl. RPI). |
| 2 | REST | Get Trades | Spot / Futures | Spot: sequence changed from String → Number; Futures: size changed from Number → String; Futures: removed response fields makerOrderId, takerOrderId, contractId; Futures: response JSON structure adjusted to match Spot. |
| 3 | WS | Trade | Spot | Spot: E changed from String → Number. |
| 4 | REST | Get Klines | Spot / Futures | Spot: array order adjusted to Open → High → Low → Close; Futures: Start time granularity changed to seconds, and type changed from String → Number. |
| 5 | WS | Kline | Futures | Futures: added field S (start) to indicate whether it is the latest Kline. |
| 6 | WS | Balance | UTA | UTA: added fields l (lowercase L) and U. |
| 7 | WS | Execution | Futures / Enum | Futures: E changed from String → Number; Enum: S values unified to uppercase BUY / SELL; oT values unified to uppercase MARKET / LIMIT. |
| 8 | WS | Order | UTA | UTA: os changed from String → Number. |
| 9 | REST | Get Order Details Get Open List Get Order History | UTA / Futures | UTA: status changed from String → Number; Futures: fixed issue where avgPrice could be negative in some scenarios. |
| 10.1 | REST | Get Account (Classic) Get Sub Account Get Transfer Quotas Flex Transfer Get Account Ledger | Parameter | AccountType enum: TRADING changed to SPOT (updated in both request and response). |
| 10.2 | WS | Balance | Parameter | AccountType enum: TRADING changed to SPOT (updated in both request and response). |
| 11 | REST | Get Account Ledger | Futures / Enum | Futures: id changed from Number → String; Futures: balance / amount changed from Number → String; Enum: direction values unified to uppercase IN / OUT. |
| 12.1 | REST | Add Deposit Address | URL | URL unified to: POST /api/ua/v1/asset/deposit/address. |
| 12.2 | REST | Get Deposit Address | URL | URL unified to: GET /api/ua/v1/asset/deposit/address. |
| 12.3 | REST | Batch Place Order (Classic) | URL | URL changed to: POST /api/ua/v1/{accountMode}/order/place-batch. |
| # | Pro API | Endpoint | Change Dimension | Change Details |
|---|---|---|---|---|
| 1 | REST | Place Order | api-rate-limit-weight | Each request now consumes a rate limit weight of 1. |
| 2 | REST | Cancel Order | api-rate-limit-weight | Each request now consumes a rate limit weight of 1. |
| Category | Endpoint | URL | Changed Fields |
|---|---|---|---|
| Pro REST | Get Ticker | GET /api/ua/v1/market/ticker | ts (standardized to nanoseconds, ns) |
| Pro REST | Get Trade | GET /api/ua/v1/market/trade | ts (standardized to nanoseconds, ns) |
| Pro REST | Get Account Ledger | GET /api/ua/v1/account/ledger | ts (standardized to nanoseconds, ns) |
| Pro REST | Get Order Details | GET /api/ua/v1/{accountMode}/order/detail | orderTime / updatedTime (standardized to nanoseconds, ns) |
| Pro REST | Get Open Order List | GET /api/ua/v1/{accountMode}/order/open-list | orderTime / updatedTime (standardized to nanoseconds, ns) |
| Pro REST | Get Order History | GET /api/ua/v1/{accountMode}/order/history | orderTime / updatedTime (standardized to nanoseconds, ns) |
| Pro REST | Get Trade History | GET /api/ua/v1/{accountMode}/order/execution | executionTime (standardized to nanoseconds, ns) |
| Pro REST | Get Positions History | GET /api/ua/v1/position/history | closingTime / creationTime (standardized to nanoseconds, ns) |
| Pro REST | Get Position List | GET /api/ua/v1/{accountMode}/position/open-list | closingTime / creationTime (standardized to nanoseconds, ns) |
| Pro WebSocket | Depth (snapshot / increment) | WS | M (standardized to nanoseconds, ns) |
| Pro WebSocket | Ticker | WS | M (standardized to nanoseconds, ns) |
| Pro WebSocket | Trade | WS | M (standardized to nanoseconds, ns) |
| Pro WebSocket | Kline (SPOT / FUTURES) | WS | O (startAt) / C (endAt) (standardized to seconds, 10 digits) |
| Pro REST | Get Symbol (Instrument) | GET /api/ua/v1/market/instrument | unitSize (inverse: -1 → 1; 1 contract = 1 USD) |
| Pro REST | Get Symbol (Instrument) | GET /api/ua/v1/market/instrument | name / displayBaseCurrency (added for Futures; multilingual compatibility) |
| Pro API | Change Description |
|---|---|
| Pro API WebSocket Ticker | Changed all price-related response fields (b, a, l) from Number to String. Updated the description of the M field. |
| Pro API WebSocket Orderbook | 1. Added support for Depth 1 order book data. 2. Aligned snapshot push format with incremental updates: • Removed E; • Added C and O; • For snapshots, O = C. 3. Updated Futures order book structure from one-dimensional to two-dimensional arrays, unified with Spot. 4. Changed quantity field type from Number to String. |
| Pro API WebSocket Kline | 1. Changed Start time and End time from String to Number, standardized to seconds. 2. Changed price and quantity (contracts) from Number to String. |
| Pro API RESTful Get Orderbook | Changed the Futures sequence field type from String to Long. |
| Pro API WebSocket | Account & Trade Type Support |
|---|---|
| Order | Classic accounts: Supports all trade types. UTA accounts: Supports Spot and Futures trade types. Margin (Isolated & Cross) is expected to be supported in Q1–Q2 next year. |
| Position | Classic accounts: Supports Futures trade type. UTA accounts: Supports Futures trade types. Margin (Isolated & Cross) is expected to be supported in Q1–Q2 next year. |
| Balance | Classic accounts: Supports all trade types. UTA accounts: Supports Spot and Futures trade types. Margin (Isolated & Cross) is expected to be supported in Q1–Q2 next year. |
| Execution | Classic accounts: Supports all trade types. UTA accounts: Currently not supported. |
| Endpoint | Request Param Change |
|---|---|
| Add Order | Added the positionSide parameter to enable Hedge Mode configuration. |
| Add Order Test | Added the positionSide parameter to enable Hedge Mode configuration. |
| Add Take Profit And Stop Loss Order | Added the positionSide parameter to enable Hedge Mode configuration. |
| Get Max Withdraw Margin | Added the positionSide parameter to enable Hedge Mode configuration. |
| Add Isolated Margin | Added the positionSide parameter to enable Hedge Mode configuration. |
| Remove Isolated Margin | Added the positionSide parameter to enable Hedge Mode configuration. |
| Modify Isolated Margin Auto-Deposit Status | Added the positionSide parameter to enable Hedge Mode configuration. |
| Endpoint | Description |
|---|---|
| Switch Margin Mode | Modify the margin mode of the current symbol. |
| Modify Cross Margin Leverage | Modify the current symbol’s cross-margin leverage multiple. |
| Get Cross Margin Requirement | Querying the cross margin requirements of a symbol by position value. |
| Endpoint | Request Param Change |
|---|---|
| Add Order | Max leverage is set to 20, and marginMode supports Cross. |
| Add Order Test | Max leverage is set to 20, and marginMode supports Cross. |
| Add Take Profit And Stop Loss Order | Max leverage is set to 20, and marginMode supports Cross. |
| Endpoint | API Permission Changed |
|---|---|
| Get Recent Trade History | From Futures To General |
| Get Margin Mode | From Futures To General |
| Get Max Open Size | From Futures To General |
| Get Position Details | From Futures To General |
| Get Position List | From Futures To General |
| Get Positions History | From Futures To General |
| Get Max Withdraw Margin | From Futures To General |
| Get Cross Margin Leverage | From Futures To General |
| Get Cross Margin Risk Limit | From Futures To General |
| Get Private Funding History | From Futures To General |