API reference · v5 BingX Copy Trading API BingX copy trading for USDⓈ-M perpetuals: rankings and the global leaderboard, profiles, performance, positions, orders and transfers.
Base URL https://api.kopyon.com/v5/bingx-copy-trading/ · send your key in the X-API-KEY header · trader id: The number in a trader's BingX URL, or uid_apiIdentity from traders.
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 historyorderHistory Order historytransferHistory Transfer historyTraders GET /v5/bingx-copy-trading/traders
BingX's perpetual futures lead traders and their figures over a period. BingX returns at most 12 a page, and sometimes one fewer.
Query parameters Name Type Description periodrequired enum Days the figures cover7D, 30D, 90D, 180D sortByenumdefault overall What to rank by: highest first, except maxDrawdown and riskLevel, lowest firstoverall, roi, pnl, winRate, maxDrawdown, sharpeRatio, riskLevel, aum, copiers, copierPnl, equity rankingenum BingX's global leaderboard, by 7-day ROI, instead of the list. period and sortBy are then ignoredglobal pageintdefault 1 Page number rowsintdefault 12 Rows per page1 to 12
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.riskLevelonly BingX traders[].sourceDetails.equityonly BingX traders[].sourceDetails.tradingDaysonly BingX traders[].aumnumber traders[].maxDrawdownnumber traders[].winRatenumber traders[].copierPnlnumber traders[].sharpeRationumber traders[].copiersnumber Current copiers traders[].maxCopiersnumber traders[].ranknumber hasMorealways boolean true when another page follows totalalways number
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/bingx-copy-trading/traders?period=7D" {
"data" : {
"traders" : [
{
"traderId" : "1211055486886170627_1560170963385430022" ,
"name" : "WakeChang" ,
"avatarUrl" : "https://static-app.bb-os.com/avatar/20220816/df5a08ba96b6721bdef73757e946135f.jpg" ,
"roi" : 0.0581 ,
"pnl" : 800.6599487983324 ,
"winRate" : 0.6428571428571429 ,
"maxDrawdown" : 0.30062622466496003 ,
"sharpeRatio" : 1.09 ,
"aum" : 25468.84 ,
"copierPnl" : 26325.68 ,
"copiers" : 66 ,
"maxCopiers" : 2000 ,
"sourceDetails" : {
"riskLevel" : 4 ,
"equity" : 8599.4 ,
"tradingDays" : 1140
}
},
{
"traderId" : "1486057319616520199_1527490618722791430" ,
"name" : "péhoang" ,
"avatarUrl" : "https://static-app.bb-os.com/avatar/20230901/avatar_2.png" ,
"roi" : 0.0582 ,
"pnl" : 633.8506528544059 ,
"winRate" : 0.5217391304347826 ,
"maxDrawdown" : 0.09907589013438943 ,
"sharpeRatio" : 12.25 ,
"aum" : 20266.06 ,
"copierPnl" : 5442.27 ,
"copiers" : 120 ,
"maxCopiers" : 2000 ,
"sourceDetails" : {
"riskLevel" : 3 ,
"equity" : 11512.57 ,
"tradingDays" : 385
}
},
{
"traderId" : "1388693961750388738_1609265371962621957" ,
"name" : "Hỏi làm gì" ,
"avatarUrl" : "https://static-app.bb-os.com/avatar/20230901/avatar_4.png" ,
"roi" : 0.2761 ,
"pnl" : 1293.9838287548985 ,
"winRate" : 1 ,
"maxDrawdown" : 0.15529037375034302 ,
"sharpeRatio" : 10.07 ,
"aum" : 15438.51 ,
"copierPnl" : 274.27 ,
"copiers" : 63 ,
"maxCopiers" : 2000 ,
"sourceDetails" : {
"riskLevel" : 3 ,
"equity" : 5980.12 ,
"tradingDays" : 653
}
}
],
"hasMore" : true ,
"total" : 243
}
} Search traders GET /v5/bingx-copy-trading/traderSearch
Lead traders whose name contains this, in BingX's overall order, with 180-day figures.
Query parameters Name Type Description namerequired string Part of the trader's name pageintdefault 1 Page number rowsintdefault 12 Rows per page1 to 12
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.riskLevelonly BingX traders[].sourceDetails.equityonly BingX traders[].sourceDetails.tradingDaysonly BingX traders[].aumnumber traders[].maxDrawdownnumber traders[].winRatenumber traders[].copierPnlnumber traders[].sharpeRationumber 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/bingx-copy-trading/traderSearch?name=Wake" {
"data" : {
"traders" : [
{
"traderId" : "1211055486886170627_1560170963385430022" ,
"name" : "WakeChang" ,
"avatarUrl" : "https://static-app.bb-os.com/avatar/20220816/df5a08ba96b6721bdef73757e946135f.jpg" ,
"roi" : 3.4506 ,
"pnl" : 73181.0784372556 ,
"winRate" : 0.5524193548387096 ,
"maxDrawdown" : 1 ,
"sharpeRatio" : 3.17 ,
"aum" : 25468.84 ,
"copierPnl" : 26325.68 ,
"copiers" : 66 ,
"maxCopiers" : 2000 ,
"sourceDetails" : {
"riskLevel" : 5 ,
"equity" : 8599.4 ,
"tradingDays" : 1140
}
},
{
"traderId" : "1535753300456808456_1555808079557668865" ,
"name" : "Awake trader" ,
"avatarUrl" : "https://static-app.bb-os.com/avatar/20260504/BingX_iOS_3cf56baf8b30c845ac4b6cd8c194822d.jpg" ,
"roi" : -0.3319 ,
"pnl" : -2987.463514690605 ,
"winRate" : 0.46632124352331605 ,
"maxDrawdown" : 0.997819807718936 ,
"sharpeRatio" : -1.87 ,
"copierPnl" : -1.93 ,
"copiers" : 0 ,
"maxCopiers" : 2000 ,
"sourceDetails" : {
"riskLevel" : 6 ,
"equity" : 48.76 ,
"tradingDays" : 255
}
},
{
"traderId" : "1336639359271755777_1339683386145062918" ,
"name" : "awakeelectron" ,
"avatarUrl" : "https://static-app.bb-os.com/avatar/20240809/76e83f889ee5c1853ac038157d1309c4.jpg" ,
"roi" : 0.6319 ,
"pnl" : 290.96396571752496 ,
"winRate" : 0.625 ,
"maxDrawdown" : 0.14067340903227352 ,
"sharpeRatio" : 1.88 ,
"copierPnl" : -448.01 ,
"copiers" : 0 ,
"maxCopiers" : 2000 ,
"sourceDetails" : {
"riskLevel" : 4 ,
"equity" : 751.38 ,
"tradingDays" : 807
}
}
],
"hasMore" : false ,
"total" : 4
}
} Trader profile GET /v5/bingx-copy-trading/traderProfile
The trader's name, bio, copiers and profit share.
Query parameters Name Type Description traderIdrequired string uid_apiIdentity, from traders or leaderboard
Response fields, in data Field Type Description traderIdalways string namestring avatarUrlstring biostring sourceDetails.subscribersonly BingX sourceDetails.positionsHiddenonly BingX copiersnumber profitSharenumber
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/bingx-copy-trading/traderProfile?traderId=1211055486886170627_1560170963385430022" {
"data" : {
"traderId" : "1211055486886170627_1560170963385430022" ,
"name" : "WakeChang" ,
"avatarUrl" : "https://static-app.bb-os.com/avatar/20220816/df5a08ba96b6721bdef73757e946135f.jpg" ,
"copiers" : 1210 ,
"profitShare" : 0.08 ,
"sourceDetails" : {
"subscribers" : 3344 ,
"positionsHidden" : false
}
}
} Performance GET /v5/bingx-copy-trading/performance
Return, PnL, win rate, drawdown, Sharpe ratio and risk level over a period.
Query parameters Name Type Description traderIdrequired string uid_apiIdentity, from traders or leaderboard periodrequired enum Days the figures cover7D, 30D, 90D, 180D
Response fields, in data Field Type Description periodalways string roinumber pnlnumber maxDrawdownnumber winRatenumber sharpeRationumber sourceDetails.riskLevelonly BingX
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/bingx-copy-trading/performance?traderId=1211055486886170627_1560170963385430022&period=7D" {
"data" : {
"period" : "7D" ,
"roi" : 0.0581 ,
"pnl" : 800.6599487983324 ,
"winRate" : 0.6428571428571429 ,
"maxDrawdown" : 0.30062622466496003 ,
"sharpeRatio" : 1.09 ,
"sourceDetails" : {
"riskLevel" : 4
}
}
} Chart GET /v5/bingx-copy-trading/traderChart
Cumulative ROI or PnL over the period, one point a day, oldest first.
Query parameters Name Type Description traderIdrequired string uid_apiIdentity, from traders or leaderboard periodrequired enum Days the figures cover7D, 30D, 90D, 180D 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/bingx-copy-trading/traderChart?traderId=1211055486886170627_1560170963385430022&period=7D" {
"data" : {
"metric" : "ROI" ,
"points" : [
{
"timestamp" : 1791820800000 ,
"value" : 0.190901377101265
},
{
"timestamp" : 1791907200000 ,
"value" : 0.1717180791000179
},
{
"timestamp" : 1791993600000 ,
"value" : 0.06217056334827329
}
]
}
} Open positions GET /v5/bingx-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 uid_apiIdentity, from traders or leaderboard
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[].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[].positionIdstring positions[].fundingPnlnumber positions[].tradingFeenumber Fee paid to open, as a positive cost hiddenalways boolean true when the trader hides positions
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/bingx-copy-trading/openPositions?traderId=1211055486886170627_1560170963385430022" {
"data" : {
"positions" : [
{
"symbol" : "AXLUSDT" ,
"side" : "SHORT" ,
"size" : 43300 ,
"entryPrice" : 0.05585 ,
"markPrice" : 0.05396 ,
"leverage" : 5 ,
"marginMode" : "CROSS" ,
"unrealizedPnl" : 81.9419 ,
"pnlCurrency" : "USDT" ,
"positionId" : "2111787491774377986" ,
"margin" : 483.6811 ,
"roi" : 0.1694 ,
"fundingPnl" : -1.2695 ,
"tradingFee" : 1.2092 ,
"sourceDetails" : {}
},
{
"symbol" : "GTCUSDT" ,
"side" : "SHORT" ,
"size" : 10480 ,
"entryPrice" : 0.25878 ,
"markPrice" : 0.25083 ,
"leverage" : 5 ,
"marginMode" : "CROSS" ,
"unrealizedPnl" : 83.3412 ,
"pnlCurrency" : "USDT" ,
"positionId" : "2111726685175099394" ,
"margin" : 542.4079 ,
"roi" : 0.1536 ,
"fundingPnl" : -32.0719 ,
"tradingFee" : 1.356 ,
"sourceDetails" : {}
},
{
"symbol" : "ERAUSDT" ,
"side" : "SHORT" ,
"size" : 48000 ,
"entryPrice" : 0.06702 ,
"markPrice" : 0.06906 ,
"leverage" : 5 ,
"marginMode" : "CROSS" ,
"unrealizedPnl" : -97.4341 ,
"pnlCurrency" : "USDT" ,
"positionId" : "2111665336508166146" ,
"margin" : 643.4416 ,
"roi" : -0.1514 ,
"fundingPnl" : -76.9088 ,
"tradingFee" : 1.9387 ,
"sourceDetails" : {}
}
],
"hidden" : false
}
} Position history GET /v5/bingx-copy-trading/positionHistory
The trader's closed positions, newest first, with gross PnL, funding, fees and net PnL.
Query parameters Name Type Description traderIdrequired string uid_apiIdentity, from traders or leaderboard 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 totalalways number nextCursorstring Send it back as cursor, with the same query, to read the next page; absent on the last page
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/bingx-copy-trading/positionHistory?traderId=1211055486886170627_1560170963385430022" {
"data" : {
"positions" : [
{
"positionId" : "2111665336761303040" ,
"symbol" : "ERAUSDT" ,
"side" : "SHORT" ,
"marginMode" : "CROSS" ,
"leverage" : 5 ,
"entryPrice" : 0.06703 ,
"closePrice" : 0.07289 ,
"openedAt" : 1792295224000 ,
"closedAt" : 1792310127000 ,
"updatedAt" : 1792310127000 ,
"openedVolume" : 52720 ,
"closedVolume" : 4720 ,
"grossPnl" : -27.6588 ,
"fundingPnl" : -76.9088 ,
"tradingFee" : 1.9387 ,
"netPnl" : -106.5063 ,
"pnlCurrency" : "USDT" ,
"sourceDetails" : {}
},
{
"positionId" : "2111297755042922496" ,
"symbol" : "BRUSDT" ,
"side" : "SHORT" ,
"marginMode" : "CROSS" ,
"leverage" : 5 ,
"entryPrice" : 0.37357 ,
"closePrice" : 0.42099 ,
"openedAt" : 1792207585000 ,
"closedAt" : 1792309715000 ,
"updatedAt" : 1792309715000 ,
"openedVolume" : 10000 ,
"closedVolume" : 10000 ,
"grossPnl" : -474.2023 ,
"fundingPnl" : -27.1235 ,
"tradingFee" : 3.9727 ,
"netPnl" : -505.2985 ,
"pnlCurrency" : "USDT" ,
"sourceDetails" : {}
},
{
"positionId" : "2111665611035230208" ,
"symbol" : "GTCUSDT" ,
"side" : "SHORT" ,
"marginMode" : "CROSS" ,
"leverage" : 5 ,
"entryPrice" : 0.2645 ,
"closePrice" : 0.26214 ,
"openedAt" : 1792295289000 ,
"closedAt" : 1792295370000 ,
"updatedAt" : 1792295370000 ,
"openedVolume" : 20 ,
"closedVolume" : 20 ,
"grossPnl" : 0.0472 ,
"fundingPnl" : 0 ,
"tradingFee" : 0.0052 ,
"netPnl" : 0.042 ,
"pnlCurrency" : "USDT" ,
"sourceDetails" : {}
}
],
"total" : 266 ,
"nextCursor" : "NDYwN2NiZWJjOTU1N2E4NC4y"
}
} Order history GET /v5/bingx-copy-trading/orderHistory
The trader's orders, newest first.
Query parameters Name Type Description traderIdrequired string uid_apiIdentity, from traders or leaderboard 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 orders[]always array orders[].symbolalways string orders[].sidealways string orders[].pricenumber orders[].quantitynumber orders[].updatedAtalways number Last change, in Unix milliseconds orders[].orderTypestring For example MARKET or LIMIT orders[].realizedPnlnumber orders[].orderIdstring orders[].tradingFeenumber Fees paid, in sourceDetails.feeToken; negative is a rebate orders[].actionOPEN | CLOSE | BOTH orders[].statusstring For example Filled or Cancelled orders[].positionIdstring totalalways number nextCursorstring Send it back as cursor, with the same query, to read the next page; absent on the last page
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/bingx-copy-trading/orderHistory?traderId=1211055486886170627_1560170963385430022" {
"data" : {
"orders" : [
{
"orderId" : "2111789341936398336" ,
"symbol" : "AXLUSDT" ,
"side" : "SELL" ,
"action" : "OPEN" ,
"orderType" : "Market" ,
"status" : "Filled" ,
"price" : 0.0559 ,
"quantity" : 100 ,
"realizedPnl" : 0 ,
"tradingFee" : 0.0027 ,
"updatedAt" : 1792324789000 ,
"positionId" : "2111787491774377986"
},
{
"orderId" : "2111789324815249408" ,
"symbol" : "AXLUSDT" ,
"side" : "SELL" ,
"action" : "OPEN" ,
"orderType" : "Market" ,
"status" : "Filled" ,
"price" : 0.0559 ,
"quantity" : 100 ,
"realizedPnl" : 0 ,
"tradingFee" : 0.0027 ,
"updatedAt" : 1792324785000 ,
"positionId" : "2111787491774377986"
},
{
"orderId" : "2111789321153622016" ,
"symbol" : "AXLUSDT" ,
"side" : "SELL" ,
"action" : "OPEN" ,
"orderType" : "Market" ,
"status" : "Filled" ,
"price" : 0.0559 ,
"quantity" : 100 ,
"realizedPnl" : 0 ,
"tradingFee" : 0.0027 ,
"updatedAt" : 1792324784000 ,
"positionId" : "2111787491774377986"
}
],
"total" : 77082 ,
"nextCursor" : "YzgzZmVlN2EyYzc1NTY2Ny4y"
}
} Transfer history GET /v5/bingx-copy-trading/transferHistory
Assets moved into and out of the account, newest first.
Query parameters Name Type Description traderIdrequired string uid_apiIdentity, from traders or leaderboard 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 transfers[]always array transfers[].timealways number In Unix milliseconds transfers[].assetstring transfers[].amountalways number transfers[].typealways deposit | withdraw | transfer | vaultDeposit | vaultWithdraw | commission | other deposit and withdraw move the owner's money into or out of the account; transfer, to or from another address; vaultDeposit and vaultWithdraw, into or out of a vault; commission is a vault leader's share; other is a kind none of these fits, named in sourceDetails.type totalalways number nextCursorstring Send it back as cursor, with the same query, to read the next page; absent on the last page
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/bingx-copy-trading/transferHistory?traderId=1211055486886170627_1560170963385430022" {
"data" : {
"transfers" : [
{
"time" : 1792291853000 ,
"amount" : 300.05479512 ,
"asset" : "USDT" ,
"type" : "deposit"
},
{
"time" : 1792218867000 ,
"amount" : 0.64560499 ,
"asset" : "USDT" ,
"type" : "deposit"
},
{
"time" : 1792148704000 ,
"amount" : 0.34448516 ,
"asset" : "USDT" ,
"type" : "deposit"
}
],
"total" : 120 ,
"nextCursor" : "NjhjNDk1NDVhZmU1OTQwZi4y"
}
} 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, closedorderHistory: New and updated orderspositionHistory: Newly closed positionsStream messages and webhook signatures