API reference · v5 BloFin Copy Trading API BloFin copy trading: rankings and search, profiles, performance and charts, open positions with live PnL, and closed positions.
Base URL https://api.kopyon.com/v5/blofin-copy-trading/ · send your key in the X-API-KEY header · trader id: The number in a master trader's BloFin 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/blofin-copy-trading/traders
BloFin's futures lead traders and their figures over a period. BloFin pins its featured trader first, whatever the order.
Query parameters Name Type Description periodrequired enum Days the figures cover7D, 30D, 90D sortByenumdefault pnl What to rank byroi, pnl, aum, maxDrawdown, sharpeRatio, copiers, winRate orderenumdefault DESC DESC, ASC 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.verifiedonly BloFin traders[].sourceDetails.contractTypeonly BloFin traders[].aumnumber traders[].maxDrawdownnumber traders[].winRatenumber 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/blofin-copy-trading/traders?period=7D" {
"data" : {
"traders" : [
{
"traderId" : "55453804988" ,
"name" : "Trade Del Ciclo" ,
"avatarUrl" : "https://s2.blofin.com/static/user/img/profile/eadb180662cb40248a13bab9df173384.png" ,
"roi" : -0.07102929439326205 ,
"pnl" : -0.013853 ,
"maxDrawdown" : 0.061673784374236255 ,
"winRate" : 0 ,
"aum" : 39.40489 ,
"sharpeRatio" : 12.5766 ,
"copiers" : 730 ,
"maxCopiers" : 2000 ,
"sourceDetails" : {
"verified" : true ,
"contractType" : "inverse"
}
},
{
"traderId" : "1461833592" ,
"name" : "Dmytro_Dragon" ,
"avatarUrl" : "https://s2.blofin.com/static/imagewebp/afcb1ea070266955d9d70faa230a44a8d0e1823f1ffec-t5svfj.webp" ,
"roi" : 0.34367844184191976 ,
"pnl" : 690.3313337655231 ,
"maxDrawdown" : 0.021138861343826452 ,
"winRate" : 0.7474 ,
"aum" : 2496 ,
"sharpeRatio" : 1.44 ,
"copiers" : 0 ,
"maxCopiers" : 200 ,
"sourceDetails" : {
"verified" : false ,
"contractType" : "linear"
}
},
{
"traderId" : "22081811905" ,
"name" : "Zyro Trades" ,
"avatarUrl" : "https://s2.blofin.com/static/user/img/profile/52cc74618d644f7787df8be2e83c26c9.png" ,
"roi" : 0.1301797042611111 ,
"pnl" : 656.105709476 ,
"maxDrawdown" : 0.042247974956045875 ,
"winRate" : 1 ,
"aum" : 17811 ,
"sharpeRatio" : 0 ,
"copiers" : 4 ,
"maxCopiers" : 200 ,
"sourceDetails" : {
"verified" : false ,
"contractType" : "linear"
}
}
],
"hasMore" : true ,
"total" : 1844
}
} Search traders GET /v5/blofin-copy-trading/traderSearch
Lead traders whose name contains this, by PnL, with 90-day figures. BloFin may pin its featured trader first.
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.verifiedonly BloFin traders[].sourceDetails.contractTypeonly BloFin traders[].aumnumber traders[].maxDrawdownnumber traders[].winRatenumber 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/blofin-copy-trading/traderSearch?name=Trad" {
"data" : {
"traders" : [
{
"traderId" : "55453804988" ,
"name" : "Trade Del Ciclo" ,
"avatarUrl" : "https://s2.blofin.com/static/user/img/profile/eadb180662cb40248a13bab9df173384.png" ,
"roi" : -0.03483744938962647 ,
"pnl" : -0.007273 ,
"maxDrawdown" : 0.1939528047458904 ,
"winRate" : 1 ,
"aum" : 39.402407 ,
"sharpeRatio" : 12.5766 ,
"copiers" : 730 ,
"maxCopiers" : 2000 ,
"sourceDetails" : {
"verified" : true ,
"contractType" : "inverse"
}
},
{
"traderId" : "22081811905" ,
"name" : "Zyro Trades" ,
"avatarUrl" : "https://s2.blofin.com/static/user/img/profile/52cc74618d644f7787df8be2e83c26c9.png" ,
"roi" : 0.37425542526373035 ,
"pnl" : 1886.247343329201 ,
"maxDrawdown" : 0.25719851141955163 ,
"winRate" : 0.8275 ,
"aum" : 17811 ,
"sharpeRatio" : 0 ,
"copiers" : 4 ,
"maxCopiers" : 200 ,
"sourceDetails" : {
"verified" : false ,
"contractType" : "linear"
}
},
{
"traderId" : "27375139615" ,
"name" : "Bot Trade AI" ,
"avatarUrl" : "https://s2.blofin.com/static/user/img/profile/b75aefd4c8a24d78b5df243202df3c13.png" ,
"roi" : 5.168007708702006 ,
"pnl" : 1089.631273431209 ,
"maxDrawdown" : 0.9696646608313796 ,
"winRate" : 0.7088 ,
"aum" : 45 ,
"sharpeRatio" : 0 ,
"copiers" : 1 ,
"maxCopiers" : 200 ,
"sourceDetails" : {
"verified" : false ,
"contractType" : "linear"
}
}
],
"hasMore" : true ,
"total" : 267
}
} Trader profile GET /v5/blofin-copy-trading/traderProfile
The trader's name, bio, copiers, profit share and whether they hide their trades.
Query parameters Name Type Description traderIdrequired string The lead trader's uid, from traders
Response fields, in data Field Type Description traderIdalways string namestring avatarUrlstring biostring sourceDetails.profitSharePeriodonly BloFin sourceDetails.joinedAtonly BloFin sourceDetails.verifiedonly BloFin sourceDetails.positionsHiddenonly BloFin sourceDetails.contractTypeonly BloFin sourceDetails.tagsonly BloFin copiersnumber maxCopiersnumber aumnumber profitSharenumber
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/blofin-copy-trading/traderProfile?traderId=55453804988" {
"data" : {
"traderId" : "55453804988" ,
"name" : "Trade Del Ciclo" ,
"avatarUrl" : "https://blofin.com/cdn-cgi/image/width=64,height=64,format=webp,quality=100,fit=cover/https://s2.blofin.com/static/user/img/profile/eadb180662cb40248a13bab9df173384.png" ,
"bio" : "Sistema de copytrading automatizado impulsado por la comunidad de BloFin en Argentina. Estrategia simple en LONG de Bitcoin (BTC) con apalancamiento 10X utilizando DCA.\n\nAutomated copy trading system powered by the BloFin community in Argentina. Simple long strategy on Bitcoin (BTC) with 10X leverage using DCA." ,
"copiers" : 730 ,
"maxCopiers" : 200 ,
"aum" : 1000 ,
"profitShare" : 0.16 ,
"sourceDetails" : {
"profitSharePeriod" : "WEEKLY" ,
"joinedAt" : 1782867607053 ,
"verified" : false ,
"positionsHidden" : false ,
"contractType" : "linear" ,
"tags" : [
"low_frequency" ,
"low_leverage"
]
}
}
} Performance GET /v5/blofin-copy-trading/performance
Return, realized PnL, win rate, drawdown and trades over a period.
Query parameters Name Type Description traderIdrequired string The lead trader's uid, from traders periodrequired enum Days the figures cover7D, 30D, 90D, ALL
Response fields, in data Field Type Description periodalways string roinumber pnlnumber maxDrawdownnumber winRatenumber winsnumber tradesnumber sharpeRationumber sourceDetails.annualizedRoionly BloFin sourceDetails.volumeonly BloFin
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/blofin-copy-trading/performance?traderId=55453804988&period=7D" {
"data" : {
"period" : "7D" ,
"roi" : 0 ,
"pnl" : 0 ,
"winRate" : 0 ,
"maxDrawdown" : 0 ,
"trades" : 0 ,
"wins" : 0 ,
"sourceDetails" : {
"annualizedRoi" : 0 ,
"sharpeRatio" : 0 ,
"volume" : 0
}
}
} Chart GET /v5/blofin-copy-trading/traderChart
Cumulative ROI over the period, as a fraction, one point a day, oldest first.
Query parameters Name Type Description traderIdrequired string The lead trader's uid, from traders periodrequired enum Days the figures cover7D, 30D, 90D, ALL
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/blofin-copy-trading/traderChart?traderId=55453804988&period=7D" {
"data" : {
"metric" : "ROI" ,
"points" : [
{
"timestamp" : 1791763200000 ,
"value" : 0
},
{
"timestamp" : 1791849600000 ,
"value" : 0
},
{
"timestamp" : 1791936000000 ,
"value" : 0
}
]
}
} Open positions GET /v5/blofin-copy-trading/openPositions
The trader's open positions as BloFin lists them, one row per opening order, sizes in the base asset (none for COIN-M contracts). BloFin sends no price: markPrice is its public mark price, and margin, unrealizedPnl and roi are worked out as its site does.
Query parameters Name Type Description traderIdrequired string The lead trader's uid, 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[].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[].openedAtnumber hiddenalways boolean true when the trader hides them from non-copiers; then the list is empty
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/blofin-copy-trading/openPositions?traderId=1461833592" {
"data" : {
"positions" : [
{
"symbol" : "SPCXUSDT" ,
"side" : "SHORT" ,
"entryPrice" : 144.31 ,
"leverage" : 20 ,
"marginMode" : "CROSS" ,
"positionId" : "17802618" ,
"openedAt" : 1792175810701 ,
"sourceDetails" : {},
"size" : 0.0025 ,
"margin" : 0.01803875 ,
"markPrice" : 143.47 ,
"unrealizedPnl" : 0.0021 ,
"pnlCurrency" : "USDT" ,
"roi" : 0.1164160488
},
{
"symbol" : "SPCXUSDT" ,
"side" : "SHORT" ,
"entryPrice" : 144.38 ,
"leverage" : 20 ,
"marginMode" : "CROSS" ,
"positionId" : "17802621" ,
"openedAt" : 1792175828373 ,
"sourceDetails" : {},
"size" : 0.0115 ,
"margin" : 0.0830185 ,
"markPrice" : 143.47 ,
"unrealizedPnl" : 0.010465 ,
"pnlCurrency" : "USDT" ,
"roi" : 0.1260562405
},
{
"symbol" : "SPCXUSDT" ,
"side" : "SHORT" ,
"entryPrice" : 144.37 ,
"leverage" : 20 ,
"marginMode" : "CROSS" ,
"positionId" : "17802623" ,
"openedAt" : 1792175830238 ,
"sourceDetails" : {},
"size" : 0.005 ,
"margin" : 0.0360925 ,
"markPrice" : 143.47 ,
"unrealizedPnl" : 0.0045 ,
"pnlCurrency" : "USDT" ,
"roi" : 0.1246796426
}
],
"hidden" : false
}
} Position history GET /v5/blofin-copy-trading/positionHistory
The trader's closed positions, newest first, with their return. BloFin sends no size or PnL for them.
Query parameters Name Type Description traderIdrequired string The lead trader's uid, 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.copiersonly BloFin positions[].sourceDetails.copierPnlonly BloFin 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 from non-copiers; then the list is empty
Example curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v5/blofin-copy-trading/positionHistory?traderId=1461833592" {
"data" : {
"positions" : [
{
"symbol" : "ZECUSDT" ,
"side" : "SHORT" ,
"marginMode" : "CROSS" ,
"leverage" : 10 ,
"roi" : 0.3696 ,
"entryPrice" : 1160.56 ,
"closePrice" : 1117.66 ,
"openedAt" : 1792269901841 ,
"closedAt" : 1792276480624 ,
"updatedAt" : 1792276480624 ,
"positionId" : "17817312" ,
"sourceDetails" : {
"copiers" : 0 ,
"copierPnl" : 0
}
},
{
"symbol" : "ZECUSDT" ,
"side" : "SHORT" ,
"marginMode" : "CROSS" ,
"leverage" : 10 ,
"roi" : 0.3567 ,
"entryPrice" : 1159.98 ,
"closePrice" : 1118.6 ,
"openedAt" : 1792269872836 ,
"closedAt" : 1792276480547 ,
"updatedAt" : 1792276480547 ,
"positionId" : "17817308" ,
"sourceDetails" : {
"copiers" : 0 ,
"copierPnl" : 0
}
},
{
"symbol" : "PUMPUSDT" ,
"side" : "SHORT" ,
"marginMode" : "CROSS" ,
"leverage" : 10 ,
"roi" : 0.3479 ,
"entryPrice" : 0.004484 ,
"closePrice" : 0.004328 ,
"openedAt" : 1792269267094 ,
"closedAt" : 1792284062315 ,
"updatedAt" : 1792284062315 ,
"positionId" : "17817264" ,
"sourceDetails" : {
"copiers" : 0 ,
"copierPnl" : 0
}
}
],
"nextCursor" : "YWI4ZjAyMjQ0NDhkNTM2NS4xNzgxNTM5OQ" ,
"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