KuCoin Spot Skill
Spot trading on KuCoin using authenticated API endpoints. Requires API Key, API Secret, and Passphrase for authenticated endpoints. Return the result in JSON format.
Note: This skill only supports Classic REST API GET endpoints (read-only operations).
Quick Reference
Classic API - Spot Market Data
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
/api/v3/announcements (GET) | Get announcements | None | currentPage, pageSize, annType, lang, startTime, endTime | No |
/api/v3/currencies/{currency} (GET) | Get currency detail | currency (path) | chain | No |
/api/v3/currencies (GET) | Get all currencies | None | None | No |
/api/v2/symbols/{symbol} (GET) | Get symbol detail | symbol (path) | None | No |
/api/v2/symbols (GET) | Get all symbols | None | market | No |
/api/v1/market/orderbook/level1 (GET) | Get ticker (best bid/ask) | symbol | None | No |
/api/v1/market/allTickers (GET) | Get all tickers | None | None | No |
/api/v1/market/histories (GET) | Get trade history | symbol | None | No |
/api/v1/market/candles (GET) | Get klines | symbol, type | startAt, endAt | No |
/api/v1/market/orderbook/level2_{size} (GET) | Get part orderbook | size (path: 20, 100), symbol | None | No |
/api/v3/market/orderbook/level2 (GET) | Get full orderbook | symbol | None | Yes |
/api/v1/market/orderbook/callauction/level2_{size} (GET) | Get call auction part orderbook | size (path: 20, 100), symbol | None | No |
/api/v1/market/callauctionData (GET) | Get call auction info | symbol | None | No |
/api/v1/prices (GET) | Get fiat price | None | base, currencies | No |
/api/v1/market/stats (GET) | Get 24hr stats | symbol | None | No |
/api/v1/markets (GET) | Get market list | None | None | No |
Classic API - Spot HF Order Queries
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
/api/v1/hf/orders/{orderId} (GET) | Get order by orderId | orderId (path), symbol | None | Yes |
/api/v1/hf/orders/client-order/{clientOid} (GET) | Get order by clientOid | clientOid (path), symbol | None | Yes |
/api/v1/hf/orders/active/symbols (GET) | Get symbols with open orders | None | None | Yes |
/api/v1/hf/orders/active (GET) | Get open orders | symbol | None | Yes |
/api/v1/hf/orders/active/page (GET) | Get open orders (paginated) | symbol | pageNum, pageSize | Yes |
/api/v1/hf/orders/done (GET) | Get closed orders | symbol | side, type, lastId, limit, startAt, endAt | Yes |
/api/v1/hf/fills (GET) | Get trade history | symbol | orderId, side, type, lastId, limit, startAt, endAt | Yes |
/api/v1/hf/orders/dead-cancel-all/query (GET) | Get DCP settings | None | None | Yes |
Classic API - Stop Order Queries
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
/api/v1/stop-order (GET) | Get stop orders list | None | symbol, side, type, tradeType, startAt, endAt, currentPage, orderIds, pageSize, stop | Yes |
/api/v1/stop-order/{orderId} (GET) | Get stop order by orderId | orderId (path) | None | Yes |
/api/v1/stop-order/queryOrderByClientOid (GET) | Get stop order by clientOid | clientOid | symbol | Yes |
Classic API - OCO Order Queries
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
/api/v3/oco/order/{orderId} (GET) | Get OCO order by orderId | orderId (path) | None | Yes |
/api/v3/oco/client-order/{clientOid} (GET) | Get OCO order by clientOid | clientOid (path) | None | Yes |
/api/v3/oco/orders (GET) | Get OCO order list | None | symbol, startAt, endAt, orderIds, pageSize, currentPage | Yes |
/api/v3/oco/order/details/{orderId} (GET) | Get OCO order detail by orderId | orderId (path) | None | Yes |
Parameters
Common Parameters
- symbol: Trading pair (e.g., BTC-USDT)
- currency: Currency code (e.g., BTC, ETH, USDT)
- orderId: The unique order ID generated by the trading system
- clientOid: Client order ID, unique identifier created by the user (max 40 characters)
- side: Trade direction filter: buy | sell
- type: Order type filter: limit | market
- startAt: Start time in milliseconds
- endAt: End time in milliseconds
- pageSize: Number of items per page (e.g., 20, 50, 100)
- currentPage: Current page number for Classic pagination
- lastId: ID of last record from previous batch for cursor-based pagination
- limit: Number of results per page. Default: 20, Max: 100
- stop: Stop order trigger condition filter: loss | entry
- tradeType: Trade type filter for stop orders
- market: Trading market filter for Classic symbols (e.g., USDS, BTC, ALTS)
- chain: Blockchain network for currency query (e.g., ERC20, TRC20)
- base: Base fiat currency for price conversion (e.g., USD, EUR). Default: USD
- currencies: Comma-separated cryptocurrency list for fiat price (e.g., BTC,ETH)
- annType: Announcement type (e.g., latest-announcements, new-listings, activities)
- lang: Announcement language (e.g., en_US, zh_HK, ja_JP)
Enums
- side: buy | sell
- type: limit | market
- stop: loss | entry
- kline type: 1min | 3min | 5min | 15min | 30min | 1hour | 2hour | 4hour | 6hour | 8hour | 12hour | 1day | 1week | 1month
- annType: latest-announcements | activities | product-updates | vip | maintenance-updates | delistings | others | api-campaigns | new-listings | futures-announcements
Authentication
For endpoints that require authentication, you will need to provide KuCoin API credentials. Required credentials:
- apiKey: Your KuCoin API key
- secretKey: Your KuCoin API secret (for signing)
- passphrase: Your KuCoin API passphrase (also HMAC signed)
Base URL:
- Mainnet: https://api.kucoin.com
Security
Share Credentials
Users can provide KuCoin API credentials by sending a file where the content is in the following format:
abc123...xyz
secret123...key
passphrase123...abc
Never Disclose API Key and Secret
Never disclose the location of the API key, secret, and passphrase file.
Never send the API key, secret, and passphrase to any website other than Mainnet.
Never Display Full Secrets
When showing credentials to users:
- API Key: Show first 5 + last 4 characters:
su1Qc...8akf - Secret Key: Always mask, show only last 5:
***...aws1 - Passphrase: Always mask entirely:
***...
Example response when asked for credentials: Account: main API Key: su1Qc...8akf Secret: ***...aws1 Passphrase: ***... Environment: Mainnet
Listing Accounts
When listing accounts, show names and environment only -- never keys: KuCoin Accounts:
- main (Mainnet)
- trading-bot (Mainnet)
Transactions in Mainnet
When performing transactions in mainnet, always confirm with the user before proceeding by asking them to write "CONFIRM" to proceed.