API reference · v5 KuCoin Copy Trading API KuCoin futures copy trading: rankings, profiles, performance and charts, open positions and closed positions.
Base URL https://api.kopyon.com/v5/kucoin-copy-trading/ · send your key in the X-API-KEY header · trader id: The leadConfigId in a lead trader's KuCoin URL.
Get a free API key · Interactive reference with Try it · Authentication, paging and errors
traders TraderstraderSearch Search traderstraderProfile Trader profileperformance PerformancetraderChart ChartopenPositions Open positionspositionHistory Position historyTraders GET /v5/kucoin-copy-trading/traders
KuCoin's futures lead traders and their figures over a period.
Query parameters Name Type Description periodrequired enum What roi and pnl cover7D, 30D, 90D, ALL sortByenumdefault pnl What to rank by, highest first: the period's pnl or roi, or aum, copierPnl or copierspnl, roi, aum, copierPnl, copiers pageintdefault 1 Page number rowsintdefault 20 Rows per page1 to 50
Response fields, in data Field Type Description traders[]always array traders[].traderIdalways string The trader's id at the source; other operations take it as traderId traders[].namealways string Display name traders[].avatarUrlstring traders[].roinumber traders[].pnlnumber traders[].sourceDetails.tradesonly KuCoin traders[].sourceDetails.daysActiveonly KuCoin traders[].aumnumber traders[].copierPnlnumber traders[].copiersnumber Current copiers traders[].maxCopiersnumber hasMorealways boolean true when another page follows totalalways number
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/kucoin-copy-trading/traders?period=7D" {
"data" : {
"traders" : [
{
"traderId" : "1007041" ,
"name" : "Happyman" ,
"avatarUrl" : "https://assets.staticimg.com/kc-v2-config/avatar/69689050c75f700001bebf6a_pzYHgJJN.png" ,
"roi" : 0.04265371999689192 ,
"pnl" : 1905.97703884 ,
"copiers" : 81 ,
"maxCopiers" : 1000 ,
"aum" : 12640.3293306526 ,
"copierPnl" : 343.1103306526 ,
"sourceDetails" : {
"trades" : 47 ,
"daysActive" : 278
}
},
{
"traderId" : "1019607" ,
"name" : "CryptoFinix" ,
"avatarUrl" : "https://assets.staticimg.com/kc-v2-config/avatar/6ab7d7f2043b6a0001c295c8_kznFRT.jpg" ,
"roi" : 1.5176562168559276 ,
"pnl" : 1550.998064838 ,
"copiers" : 116 ,
"maxCopiers" : 1000 ,
"aum" : 9260.4373667372 ,
"copierPnl" : 486.5783667372 ,
"sourceDetails" : {
"trades" : 82 ,
"daysActive" : 21
}
},
{
"traderId" : "1008485" ,
"name" : "Gray333555" ,
"avatarUrl" : "https://assets.staticimg.com/kc-v2-config/avatar/6968931a6ffcd300015ad6db_aRZriu.png" ,
"roi" : 0.35238320279127605 ,
"pnl" : 1493.69311306 ,
"copiers" : 1 ,
"maxCopiers" : 1000 ,
"aum" : 440.57103334 ,
"copierPnl" : -59.42896666 ,
"sourceDetails" : {
"trades" : 4 ,
"daysActive" : 175
}
}
],
"hasMore" : true ,
"total" : 87
}
} Search traders GET /v5/kucoin-copy-trading/traderSearch
Lead traders whose name contains this, by PnL, with all-time figures.
Query parameters Name Type Description namerequired string Part of the trader's name pageintdefault 1 Page number rowsintdefault 20 Rows per page1 to 50
Response fields, in data Field Type Description traders[]always array traders[].traderIdalways string The trader's id at the source; other operations take it as traderId traders[].namealways string Display name traders[].avatarUrlstring traders[].roinumber traders[].pnlnumber traders[].sourceDetails.tradesonly KuCoin traders[].sourceDetails.daysActiveonly KuCoin traders[].aumnumber traders[].copierPnlnumber traders[].copiersnumber Current copiers traders[].maxCopiersnumber hasMorealways boolean true when another page follows totalalways number
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/kucoin-copy-trading/traderSearch?name=Happ" {
"data" : {
"traders" : [
{
"traderId" : "1007041" ,
"name" : "Happyman" ,
"avatarUrl" : "https://assets.staticimg.com/kc-v2-config/avatar/69689050c75f700001bebf6a_pzYHgJJN.png" ,
"roi" : 0.009695895163789289 ,
"pnl" : 44850.3450014469 ,
"copiers" : 81 ,
"maxCopiers" : 1000 ,
"aum" : 12640.3293306526 ,
"copierPnl" : 343.1103306526 ,
"sourceDetails" : {
"daysActive" : 278
}
}
],
"hasMore" : false ,
"total" : 1
}
} Trader profile GET /v5/kucoin-copy-trading/traderProfile
The trader's name, bio, copiers, copiers' funds and profit share.
Query parameters Name Type Description traderIdrequired string The lead trader's leadConfigId, from traders
Response fields, in data Field Type Description traderIdalways string namestring avatarUrlstring biostring sourceDetails.followersonly KuCoin sourceDetails.daysActiveonly KuCoin sourceDetails.totalRoionly KuCoin sourceDetails.positionsHiddenonly KuCoin copiersnumber maxCopiersnumber aumnumber copierPnlnumber profitSharenumber
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/kucoin-copy-trading/traderProfile?traderId=1007041" {
"data" : {
"traderId" : "1007041" ,
"name" : "Happyman" ,
"avatarUrl" : "https://assets.staticimg.com/kc-v2-config/avatar/69689050c75f700001bebf6a_pzYHgJJN.png" ,
"bio" : "Deeply engaged in the crypto market, applying systematic strategies to stay nimble amid volatility and execute with professional discipline." ,
"copiers" : 81 ,
"maxCopiers" : 1000 ,
"aum" : 12640.3293306526 ,
"copierPnl" : 343.1103306526 ,
"profitShare" : 0.1 ,
"sourceDetails" : {
"followers" : 313 ,
"daysActive" : 279 ,
"totalRoi" : 0.009695895163789289 ,
"positionsHidden" : false
}
}
} Performance GET /v5/kucoin-copy-trading/performance
Return and PnL over the period, and the positions closed in it.
Query parameters Name Type Description traderIdrequired string The lead trader's leadConfigId, from traders periodrequired enum Days the figures cover7D, 30D, 90D
Response fields, in data Field Type Description periodalways string roinumber pnlnumber winsnumber tradesnumber
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/kucoin-copy-trading/performance?traderId=1007041&period=7D" {
"data" : {
"period" : "7D" ,
"roi" : 0.04265371999689192 ,
"pnl" : 1905.97703884 ,
"trades" : 0 ,
"wins" : 0
}
} Chart GET /v5/kucoin-copy-trading/traderChart
Cumulative ROI or PnL over the period, one point a day, oldest first.
Query parameters Name Type Description traderIdrequired string The lead trader's leadConfigId, from traders periodrequired enum Days the figures cover7D, 30D, 90D metricenumdefault ROI ROI as a fraction, or PnL in USDTROI, PNL
Response fields, in data Field Type Description metricalways string What the points measure: ROI, PNL or BALANCE points[]always array points[].timestampalways number Point time, in Unix milliseconds points[].valuealways number
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/kucoin-copy-trading/traderChart?traderId=1007041&period=7D" {
"data" : {
"metric" : "ROI" ,
"points" : [
{
"timestamp" : 1791734400000 ,
"value" : -0.020118896491819166
},
{
"timestamp" : 1791820800000 ,
"value" : -0.008558990923615235
},
{
"timestamp" : 1791907200000 ,
"value" : 0.01022031893108091
}
]
}
} Open positions GET /v5/kucoin-copy-trading/openPositions
The trader's open positions, sizes in the base asset. A trader can hide them; then positions is empty and hidden is true.
Query parameters Name Type Description traderIdrequired string The lead trader's leadConfigId, from traders
Response fields, in data Field Type Description positions[]always array positions[].symbolalways string positions[].sidealways LONG | SHORT positions[].sizenumber Position size, always positive; side gives the direction positions[].entryPricealways number positions[].markPricenumber The exchange's mark price positions[].leveragenumber positions[].marginModeISOLATED | CROSS positions[].unrealizedPnlnumber In pnlCurrency positions[].pnlCurrencystring positions[].liquidationPricenumber positions[].marginnumber Margin the position uses, in pnlCurrency positions[].roinumber unrealizedPnl over margin, as a fraction. Where the exchange sends its own (KuCoin; BingX, over the opening margin), it is passed on and can differ from that ratio positions[].sourceDetails.realizedPnlonly KuCoin positions[].openedAtnumber hiddenalways boolean true when the trader hides them
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/kucoin-copy-trading/openPositions?traderId=1007041" {
"data" : {
"positions" : [
{
"symbol" : "PUMPUSDT" ,
"side" : "LONG" ,
"size" : 70000 ,
"entryPrice" : 0.0045 ,
"markPrice" : 0.004179 ,
"leverage" : 7.28 ,
"marginMode" : "ISOLATED" ,
"unrealizedPnl" : -22.47 ,
"pnlCurrency" : "USDT" ,
"liquidationPrice" : 0.003644 ,
"margin" : 62.67082745 ,
"roi" : -0.3567 ,
"openedAt" : 1792030993000 ,
"sourceDetails" : {
"realizedPnl" : -0.39217255
}
},
{
"symbol" : "ZECUSDT" ,
"side" : "LONG" ,
"size" : 3.5 ,
"entryPrice" : 1139.28571429 ,
"markPrice" : 1084.74 ,
"leverage" : 6.29 ,
"marginMode" : "ISOLATED" ,
"unrealizedPnl" : -190.91 ,
"pnlCurrency" : "USDT" ,
"liquidationPrice" : 919.21 ,
"margin" : 794.7409013 ,
"roi" : -0.2394 ,
"openedAt" : 1791805670000 ,
"sourceDetails" : {
"realizedPnl" : -3.5565987
}
},
{
"symbol" : "SUIUSDT" ,
"side" : "LONG" ,
"size" : 3250 ,
"entryPrice" : 1.08633687 ,
"markPrice" : 0.9573 ,
"leverage" : 11.08 ,
"marginMode" : "ISOLATED" ,
"unrealizedPnl" : -419.3698275064 ,
"pnlCurrency" : "USDT" ,
"liquidationPrice" : 0.8776 ,
"margin" : 700.1998618049 ,
"roi" : -0.5939 ,
"openedAt" : 1791278755000 ,
"sourceDetails" : {
"realizedPnl" : -25.8912086936
}
}
],
"hidden" : false
}
} Position history GET /v5/kucoin-copy-trading/positionHistory
The trader's closed positions, newest first, sizes in the base asset, with KuCoin's own PnL. Hidden like openPositions.
Query parameters Name Type Description traderIdrequired string The lead trader's leadConfigId, from traders cursorstring The nextCursor of the previous answer; leave it out for the first page rowsintdefault 20 Rows per page1 to 50
Response fields, in data Field Type Description positions[]always array positions[].positionIdstring positions[].symbolalways string positions[].sideLONG | SHORT positions[].statusstring positions[].marginModeISOLATED | CROSS positions[].leveragenumber positions[].roinumber positions[].entryPricenumber positions[].closePricenumber positions[].openedAtalways number When the position opened, in Unix milliseconds positions[].closedAtnumber When the position closed, in Unix milliseconds positions[].updatedAtalways number Last change, in Unix milliseconds positions[].openedVolumenumber positions[].closedVolumenumber positions[].maxOpenInterestnumber positions[].grossPnlnumber positions[].fundingPnlnumber positions[].tradingFeenumber positions[].liquidationFeenumber positions[].netPnlnumber positions[].pnlCurrencystring positions[].sourceDetails.pnlonly KuCoin positions[].marginnumber totalalways number nextCursorstring Send it back as cursor, with the same query, to read the next page; absent on the last page hiddenalways boolean true when the trader hides them
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/kucoin-copy-trading/positionHistory?traderId=1007041" {
"data" : {
"positions" : [
{
"symbol" : "HYPEUSDT" ,
"side" : "LONG" ,
"marginMode" : "ISOLATED" ,
"leverage" : 3.1930826277 ,
"roi" : 0.6871 ,
"entryPrice" : 78.732545251 ,
"closePrice" : 90.0122470588 ,
"openedAt" : 1788868441000 ,
"closedAt" : 1790306461000 ,
"updatedAt" : 1790306461000 ,
"closedVolume" : 85 ,
"pnlCurrency" : "USDT" ,
"margin" : 1342.318 ,
"sourceDetails" : {
"pnl" : 922.35233896
}
},
{
"symbol" : "ZECUSDT" ,
"side" : "LONG" ,
"marginMode" : "ISOLATED" ,
"leverage" : 2.7208029204 ,
"roi" : 0.8388 ,
"entryPrice" : 1221.76303068 ,
"closePrice" : 1230.7993023255 ,
"openedAt" : 1787826234000 ,
"closedAt" : 1790306461000 ,
"updatedAt" : 1790306461000 ,
"closedVolume" : 21.5 ,
"pnlCurrency" : "USDT" ,
"margin" : 4529.732 ,
"sourceDetails" : {
"pnl" : 3799.78909593
}
},
{
"symbol" : "SUIUSDT" ,
"side" : "LONG" ,
"marginMode" : "ISOLATED" ,
"leverage" : 2.6305153676 ,
"roi" : 0.9628 ,
"entryPrice" : 0.6933333333 ,
"closePrice" : 0.8280266666 ,
"openedAt" : 1789337911000 ,
"closedAt" : 1789971123000 ,
"updatedAt" : 1789971123000 ,
"closedVolume" : 1500 ,
"pnlCurrency" : "USDT" ,
"margin" : 208 ,
"sourceDetails" : {
"pnl" : 200.26992505
}
}
],
"total" : 132 ,
"nextCursor" : "ZDI4N2FjZTQ1ODE1MDY0NC4y" ,
"hidden" : false
}
} Stream and webhooks Paid plans can follow a trader in real time over wss://api.kopyon.com/v5/streamor through signed webhooks. Topics for this source:
openPositions: Open positions, whenever they changepositionEvents: Opened, increased, decreased, closedpositionHistory: Newly closed positionsStream messages and webhook signatures