After the information collection is completed, KuCoin will add and upload the third-party information to the database and generate a "partner", "broker key", and "broker name" for the third-party platform. 2. Access KuCoin OpenAPI#
KuCoin will provide the third-party platform with the "partner", "broker key", and "broker name". Please include the following headers in the request:KC-API-PARTNER-SIGN: Base64-encoded signature (please refer to Signing the Message)
KC-BROKER-NAME: Broker name
KC-API-PARTNER-VERIFY: True
This request header is not mandatory, but it is strongly recommended.When the KC-API-PARTNER-VERIFY request header is not included, even if the KC-API-PARTNER-SIGN signature fails, as long as the KC-API-SIGN signature succeeds, the order can still be placed successfully without carrying the broker information.After this request header is included, if the KC-API-PARTNER-SIGN signature verification fails, the following error will be returned: {"code": "400201", "msg": "Invalid KC-API-PARTNER-SIGN"}.Please make sure to include these request headers in all REST requests. Otherwise, your rebates may be affected.
3. Signing the Message#
For the KC-API-PARTNER-SIGN header:Use the broker-key to perform SHA256 HMAC encryption on the pre-sign string timestamp + partner + apiKey.
Then, Base64-encode the result from Step 1.
The timestamp value is the same as the KC-API-TIMESTAMP header.The partner value is the same as the KC-API-PARTNER header.The apiKey value is the same as KC-API-KEY.4. Example#
String apikey = "api123key";
String apiSecretKey = "sec567key";
String passphrase = "1111111";
broker-name: goodbrokerND
partner: goodbroker
broker-key: broker789key
(3) Order Request#
REQ TIMESTAMP:1680885532722
REQ URL:https://api.kucoin.com/api/ua/v2/unified/order/place
REQ BODY:{"symbol":"BTC-USDT","orderType":"LIMIT","side":"BUY","size":"0.001","price":"60000","sizeUnit":"BASECCY","clientOid":"fb8392ed-360d-40bc-a097-66d244d223d0","tradeType":"SPOT"}
1680885532722POST/api/ua/v2/unified/order/place{"symbol":"BTC-USDT","orderType":"LIMIT","side":"BUY","size":"0.001","price":"60000","sizeUnit":"BASECCY","clientOid":"fb8392ed-360d-40bc-a097-66d244d223d0","tradeType":"SPOT"}
B0+cvAxeLxpRycNQlvaIe2Cv1xk2+xlNRL4GVMj2tQI=
{
KC-API-TIMESTAMP=1680885532722,
KC-API-KEY=api123key,
KC-API-SIGN=B0+cvAxeLxpRycNQlvaIe2Cv1xk2+xlNRL4GVMj2tQI=,
KC-API-PASSPHRASE=aw2IgFfJucoPRCbM+zvR0+iRJclQtGY1V8c6wGC5hwU=,
KC-API-KEY-VERSION=3,
Content-Type=application/json,
accept=*
header.put("KC-BROKER-NAME", "goodbrokerND");
header.put("KC-API-PARTNER", "goodbroker");
String partnerSign = Base64.encodeBase64String( SHA256Util.hmac_sha256("broker789key", "1680885532722"+"goodbroker"+"api123key"));
header.put("KC-API-PARTNER-SIGN", partnerSign);
header.put("KC-API-PARTNER-VERIFY", "true");
1680885532722POST/api/ua/v2/unified/order/place{"symbol":"BTC-USDT","orderType":"LIMIT","side":"BUY","size":"0.001","price":"60000","sizeUnit":"BASECCY","clientOid":"fb8392ed-360d-40bc-a097-66d244d223d0","tradeType":"SPOT"}
B0+cvAxeLxpRycNQlvaIe2Cv1xk2+xlNRL4GVMj2tQI=
1680885532722goodbrokerapi123key
a0bE/G7lCIGJ6I8LiqFK7i04IbLXW9e2p5yPzoXpk78=
{
KC-API-TIMESTAMP=1680885532722,
KC-API-KEY=api123key,
KC-API-PASSPHRASE=aw2IgFfJucoPRCbM+zvR0+iRJclQtGY1V8c6wGC5hwU=,
KC-API-SIGN=B0+cvAxeLxpRycNQlvaIe2Cv1xk2+xlNRL4GVMj2tQI=,
KC-API-PARTNER=goodbroker,
KC-API-PARTNER-SIGN=a0bE/G7lCIGJ6I8LiqFK7i04IbLXW9e2p5yPzoXpk78=,
KC-BROKER-NAME=goodbrokerND,
KC-API-PARTNER-VERIFY=true,
KC-API-KEY-VERSION=3,
Content-Type=application/json,
accept=*
(6) Check Whether the Configuration Is Successful#
6.Important Notes#
KuCoin currently supports Unified Trading Accounts (UTA). However, some users may still be using Classic Accounts, and the two account modes require different API implementations.After obtaining the user's API Key, you should first determine the account mode and then route the request to the corresponding implementation.Additionally, ensure that the API key has "Unified" permissions (if the corresponding permission is missing, you must contact the user to have it updated); the UTA API can only be called if the account mode is set to UTA and the API key possesses "Unified" permissions.
Get Apikey InfoModified at 2026-09-24 09:02:33