API reference · v5

Binance Copy Trading API

Binance Copy Trading lead portfolios: rankings, performance, open positions, closed positions, orders and transfers.

Base URL https://api.kopyon.com/v5/binance-copy-trading/ · send your key in the X-API-KEY header · trader id: The lead portfolio id in the portfolio's URL on Binance.

Get a free API key · Interactive reference with Try it · Authentication, paging and errors

Lead portfolios

GET /v5/binance-copy-trading/traders

Binance's futures copy-trading portfolios, ranked over a time range.

Binance refreshes this Binance updates this ranking about every 10 minutes..

Query parameters

NameTypeDescription
periodrequiredenumPeriod the figures cover7D, 30D, 90D, 180D, 1Y
sortByrequiredenumWhat to rank bypnl, roi, maxDrawdown, aum, copiers, copierPnl, sharpeRatio
orderrequiredenumDESC lists the highest first, ASC the lowestDESC, ASC
typeenumdefault ALLPUBLIC, PRIVATE or SIGNAL portfolios, or ALLALL, PUBLIC, PRIVATE, SIGNAL
hideFullbooltrue leaves out portfolios with no free copy slot
tradFibooltrue lists only portfolios that traded TradFi symbols
pageintdefault 1Page number
rowsintdefault 20Rows per page1 to 20

Response fields, in data

FieldTypeDescription
traders[]alwaysarray
traders[].traderIdalwaysstringThe trader's id at the source; other operations take it as traderId
traders[].namealwaysstringDisplay name
traders[].avatarUrlstring
traders[].roinumber
traders[].pnlnumber
traders[].sourceDetails.typeonly Binance
traders[].sourceDetails.tradFionly Binance
traders[].sourceDetails.apionly Binance
traders[].sourceDetails.badgeonly Binance
traders[].sourceDetails.startedAtonly Binance
traders[].sourceDetails.chartonly Binance
traders[].aumnumber
traders[].maxDrawdownnumber
traders[].winRatenumber
traders[].copierPnlnumber
traders[].sharpeRationumber
traders[].copiersnumberCurrent copiers
traders[].maxCopiersnumber
hasMorealwaysbooleantrue when another page follows
totalalwaysnumberRows across all pages

Example

curl -H "X-API-KEY: $KOPYON_KEY" \
  "https://api.kopyon.com/v5/binance-copy-trading/traders?period=7D&sortBy=pnl&order=DESC"
{
  "data": {
    "traders": [
      {
        "traderId": "5126483220510875392",
        "name": "jeff-zhang",
        "avatarUrl": "https://bin.bnbstatic.com/static/content/static-sources/square-default-avatar.png",
        "roi": 4.1039280748,
        "pnl": 689870.74104516,
        "aum": 861809.48194994,
        "maxDrawdown": 0.23751183,
        "winRate": 0,
        "copierPnl": 0,
        "sharpeRatio": 3.11019002,
        "copiers": 0,
        "maxCopiers": 200,
        "sourceDetails": {
          "type": "PRIVATE",
          "tradFi": false,
          "api": true,
          "startedAt": 1783520611419,
          "chart": {
            "metric": "ROI",
            "points": [
              {
                "timestamp": 1791763200000,
                "value": 0
              },
              {
                "timestamp": 1791849600000,
                "value": 0
              },
              {
                "timestamp": 1791936000000,
                "value": 0
              }
            ]
          }
        }
      },
      {
        "traderId": "5118505927886767360",
        "name": "User-7bcd6",
        "avatarUrl": "https://bin.bnbstatic.com/static/content/static-sources/square-default-avatar.png",
        "roi": 5.1661017466,
        "pnl": 641871.43611123,
        "aum": 776574.70700885,
        "maxDrawdown": 0.19889919,
        "winRate": 0,
        "copierPnl": 0,
        "sharpeRatio": 2.84452501,
        "copiers": 0,
        "maxCopiers": 200,
        "sourceDetails": {
          "type": "PRIVATE",
          "tradFi": false,
          "api": true,
          "startedAt": 1783045127755,
          "chart": {
            "metric": "ROI",
            "points": [
              {
                "timestamp": 1791763200000,
                "value": -0.1648538599
              },
              {
                "timestamp": 1791849600000,
                "value": -0.1872955269
              },
              {
                "timestamp": 1791936000000,
                "value": -0.1114021677
              }
            ]
          }
        }
      },
      {
        "traderId": "5135947870762832385",
        "name": "Satalpha",
        "avatarUrl": "https://bin.bnbstatic.com/static/content/static-sources/square-default-avatar.png",
        "roi": 3.2031528502,
        "pnl": 540781.3686563,
        "aum": 719768.01576108,
        "maxDrawdown": 0.24485952,
        "winRate": 0,
        "copierPnl": 0,
        "sharpeRatio": 2.91655253,
        "copiers": 0,
        "maxCopiers": 200,
        "sourceDetails": {
          "type": "PRIVATE",
          "tradFi": false,
          "api": true,
          "startedAt": 1784084748549,
          "chart": {
            "metric": "ROI",
            "points": [
              {
                "timestamp": 1791763200000,
                "value": 0
              },
              {
                "timestamp": 1791849600000,
                "value": 0
              },
              {
                "timestamp": 1791936000000,
                "value": 0
              }
            ]
          }
        }
      }
    ],
    "hasMore": true,
    "total": 12927
  }
}

Search traders

GET /v5/binance-copy-trading/traderSearch

Lead portfolios whose trader's name contains this, by PnL, with figures over the last year.

Query parameters

NameTypeDescription
namerequiredstringPart of the trader's name
pageintdefault 1Page number
rowsintdefault 20Rows per page1 to 20

Response fields, in data

FieldTypeDescription
traders[]alwaysarray
traders[].traderIdalwaysstringThe trader's id at the source; other operations take it as traderId
traders[].namealwaysstringDisplay name
traders[].avatarUrlstring
traders[].roinumber
traders[].pnlnumber
traders[].sourceDetails.typeonly Binance
traders[].sourceDetails.tradFionly Binance
traders[].sourceDetails.apionly Binance
traders[].sourceDetails.badgeonly Binance
traders[].sourceDetails.startedAtonly Binance
traders[].sourceDetails.chartonly Binance
traders[].aumnumber
traders[].maxDrawdownnumber
traders[].winRatenumber
traders[].copierPnlnumber
traders[].sharpeRationumber
traders[].copiersnumberCurrent copiers
traders[].maxCopiersnumber
hasMorealwaysbooleantrue when another page follows
totalalwaysnumberRows across all pages

Example

curl -H "X-API-KEY: $KOPYON_KEY" \
  "https://api.kopyon.com/v5/binance-copy-trading/traderSearch?name=jeff"
{
  "data": {
    "traders": [
      {
        "traderId": "5126483220510875392",
        "name": "jeff-zhang",
        "avatarUrl": "https://bin.bnbstatic.com/static/content/static-sources/square-default-avatar.png",
        "roi": 4.1845271794,
        "pnl": 781442.20622846,
        "aum": 861809.48194994,
        "maxDrawdown": 0.21632278,
        "winRate": 0.625,
        "copierPnl": 0,
        "sharpeRatio": 3.11019002,
        "copiers": 0,
        "maxCopiers": 200,
        "sourceDetails": {
          "type": "PRIVATE",
          "tradFi": false,
          "api": true,
          "startedAt": 1783520611419,
          "chart": {
            "metric": "ROI",
            "points": [
              {
                "timestamp": 1760832000000,
                "value": 0
              },
              {
                "timestamp": 1760918400000,
                "value": 0
              },
              {
                "timestamp": 1761004800000,
                "value": 0
              }
            ]
          }
        }
      },
      {
        "traderId": "5203313987916337664",
        "name": "善富E族-Jeff",
        "avatarUrl": "https://public.bnbstatic.com/image/pgc/20260830/15faea52a2dd423891b1e3eefc6ef553.jpg",
        "roi": 0.8362807769,
        "pnl": 11815.98187896,
        "aum": 12260.92087626,
        "maxDrawdown": 0.20356191,
        "winRate": 0.844075,
        "copierPnl": -781.498694,
        "sharpeRatio": 4.40207434,
        "copiers": 17,
        "maxCopiers": 200,
        "sourceDetails": {
          "type": "PUBLIC",
          "tradFi": true,
          "api": false,
          "startedAt": 1788100082038,
          "chart": {
            "metric": "ROI",
            "points": [
              {
                "timestamp": 1760832000000,
                "value": 0
              },
              {
                "timestamp": 1760918400000,
                "value": 0
              },
              {
                "timestamp": 1761004800000,
                "value": 0
              }
            ]
          }
        }
      },
      {
        "traderId": "4283904188132151552",
        "name": "KCCJEFF",
        "avatarUrl": "https://public.bnbstatic.com/image/common_notification/20211230/fe45acbe-4cb8-4d78-b426-07f3402e285c.png",
        "roi": 1.7e-9,
        "pnl": 4e-8,
        "aum": 113.61255078,
        "maxDrawdown": 0,
        "winRate": 0,
        "copierPnl": 0,
        "copiers": 3,
        "maxCopiers": 200,
        "sourceDetails": {
          "type": "PUBLIC",
          "tradFi": false,
          "api": false,
          "startedAt": 1733298987500,
          "chart": {
            "metric": "ROI",
            "points": [
              {
                "timestamp": 1759622400000,
                "value": 0
              },
              {
                "timestamp": 1759708800000,
                "value": 0
              },
              {
                "timestamp": 1759795200000,
                "value": 0
              }
            ]
          }
        }
      }
    ],
    "hasMore": false,
    "total": 3
  }
}

Lead portfolio

GET /v5/binance-copy-trading/traderProfile

One portfolio: its lead trader, copiers, funds, terms and whether it shares positions. A closed or unknown portfolio answers 422.

Query parameters

NameTypeDescription
traderIdrequiredstringThe lead portfolio's id, from traders

Response fields, in data

FieldTypeDescription
traderIdalwaysstring
namestring
avatarUrlstring
biostring
sourceDetails.typeonly Binance
sourceDetails.statusonly Binance
sourceDetails.marketTypeonly Binance
sourceDetails.positionsSharedonly Binance
sourceDetails.mockCopiersonly Binance
sourceDetails.favoritesonly Binance
sourceDetails.marginBalanceonly Binance
sourceDetails.currencyonly Binance
sourceDetails.sharpeRatioonly Binance
sourceDetails.badgeonly Binance
sourceDetails.tagsonly Binance
sourceDetails.startedAtonly Binance
sourceDetails.closedAtonly Binance
sourceDetails.lastTradeAtonly Binance
sourceDetails.smartMoneyTraderIdonly Binance
copiersnumber
maxCopiersnumber
totalCopiersnumber
aumnumber
copierPnlnumber
profitSharenumber

Example

curl -H "X-API-KEY: $KOPYON_KEY" \
  "https://api.kopyon.com/v5/binance-copy-trading/traderProfile?traderId=5126483220510875392"
{
  "data": {
    "traderId": "5126483220510875392",
    "name": "jeff-zhang",
    "avatarUrl": "https://bin.bnbstatic.com/static/content/static-sources/square-default-avatar.png",
    "copiers": 0,
    "maxCopiers": 200,
    "totalCopiers": 0,
    "aum": 861809.48194994,
    "copierPnl": 0,
    "profitShare": 0,
    "sourceDetails": {
      "type": "PRIVATE",
      "status": "ACTIVE",
      "marketType": "UM",
      "positionsShared": true,
      "mockCopiers": 0,
      "favorites": 9,
      "marginBalance": 862514.03288859,
      "currency": "USDT",
      "sharpeRatio": 3.11019002,
      "tags": [
        "API_KEY_TRADE"
      ],
      "startedAt": 1783520611419,
      "lastTradeAt": 1792339234046,
      "smartMoneyTraderId": "null"
    }
  }
}

Performance

GET /v5/binance-copy-trading/performance

A portfolio's return, drawdown and win rate over a time range.

Query parameters

NameTypeDescription
traderIdrequiredstringThe lead portfolio's id, from traders
periodrequiredenumPeriod the figures cover7D, 30D, 90D, 180D, 1Y

Response fields, in data

FieldTypeDescription
periodalwaysstring
roinumber
pnlnumber
maxDrawdownnumber
copierPnlnumber
winRatenumber
winsnumber
tradesnumber
sharpeRationumber

Example

curl -H "X-API-KEY: $KOPYON_KEY" \
  "https://api.kopyon.com/v5/binance-copy-trading/performance?traderId=5126483220510875392&period=7D"
{
  "data": {
    "period": "7D",
    "roi": 4.1039280748,
    "pnl": 689870.74104516,
    "maxDrawdown": 0.23751183,
    "copierPnl": 0,
    "winRate": 0,
    "wins": 0,
    "trades": 2,
    "sharpeRatio": 3.11019002
  }
}

Chart

GET /v5/binance-copy-trading/traderChart

A portfolio's ROI, PnL or AUM by day over a time range.

Query parameters

NameTypeDescription
traderIdrequiredstringThe lead portfolio's id, from traders
periodrequiredenumPeriod the figures cover7D, 30D, 90D, 180D, 1Y
metricrequiredenumROI as a fraction, PNL or AUM in USDROI, PNL, AUM

Response fields, in data

FieldTypeDescription
metricalwaysstringWhat the points measure: ROI, PNL or BALANCE
points[]alwaysarray
points[].timestampalwaysnumberPoint time, in Unix milliseconds
points[].valuealwaysnumber

Example

curl -H "X-API-KEY: $KOPYON_KEY" \
  "https://api.kopyon.com/v5/binance-copy-trading/traderChart?traderId=5126483220510875392&period=7D&metric=ROI"
{
  "data": {
    "metric": "ROI",
    "points": [
      {
        "timestamp": 1791763200000,
        "value": 0
      },
      {
        "timestamp": 1791849600000,
        "value": 0
      },
      {
        "timestamp": 1791936000000,
        "value": 0
      }
    ]
  }
}

Open positions

GET /v5/binance-copy-trading/openPositions

The portfolio's open positions, with margin (notional over leverage) and roi (Binance's ROE) as its site shows them. A portfolio can keep them private; then positions is empty and hidden is true.

Binance refreshes this Binance updates these positions about every 5 minutes..

Query parameters

NameTypeDescription
traderIdrequiredstringThe lead portfolio's id, from traders

Response fields, in data

FieldTypeDescription
positions[]alwaysarray
positions[].symbolalwaysstring
positions[].sidealwaysLONG | SHORT
positions[].sizenumberPosition size, always positive; side gives the direction
positions[].entryPricealwaysnumber
positions[].markPricenumberThe exchange's mark price
positions[].leveragenumber
positions[].marginModeISOLATED | CROSS
positions[].unrealizedPnlnumberIn pnlCurrency
positions[].pnlCurrencystring
positions[].liquidationPricenumber
positions[].marginnumberMargin the position uses, in pnlCurrency
positions[].roinumberunrealizedPnl 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.marketTypeonly Binance
positions[].sourceDetails.notionalonly Binance
positions[].sourceDetails.realizedPnlonly Binance
positions[].sourceDetails.breakEvenPriceonly Binance
hiddenalwaysbooleantrue when the portfolio keeps positions private

Example

curl -H "X-API-KEY: $KOPYON_KEY" \
  "https://api.kopyon.com/v5/binance-copy-trading/openPositions?traderId=5121749420381832448"
{
  "data": {
    "positions": [],
    "hidden": false
  }
}

Position history

GET /v5/binance-copy-trading/positionHistory

Closed and partially closed positions. Binance reports no fees or funding here, so there is no netPnl.

Query parameters

NameTypeDescription
traderIdrequiredstringThe lead portfolio's id, from traders
cursorstringThe nextCursor of the previous answer; leave it out for the first page
rowsintdefault 20Rows per page1 to 20
sortByenumdefault openedNewest opened or newest closed firstopened, closed

Response fields, in data

FieldTypeDescription
positions[]alwaysarray
positions[].positionIdstring
positions[].symbolalwaysstring
positions[].sideLONG | SHORT
positions[].statusstring
positions[].marginModeISOLATED | CROSS
positions[].leveragenumber
positions[].roinumber
positions[].entryPricenumber
positions[].closePricenumber
positions[].openedAtalwaysnumberWhen the position opened, in Unix milliseconds
positions[].closedAtnumberWhen the position closed, in Unix milliseconds
positions[].updatedAtalwaysnumberLast change, in Unix milliseconds
positions[].openedVolumenumber
positions[].closedVolumenumber
positions[].maxOpenInterestnumber
positions[].grossPnlnumber
positions[].fundingPnlnumber
positions[].tradingFeenumber
positions[].liquidationFeenumber
positions[].netPnlnumber
positions[].pnlCurrencystring
positions[].sourceDetails.marketTypeonly Binance
positions[].sourceDetails.commissionByAssetonly Binance
totalalwaysnumberRows across all pages
nextCursorstringSend 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/binance-copy-trading/positionHistory?traderId=5121749420381832448"
{
  "data": {
    "positions": [],
    "total": 0
  }
}

Order history

GET /v5/binance-copy-trading/orderHistory

The portfolio's executed orders, newest first.

Query parameters

NameTypeDescription
traderIdrequiredstringThe lead portfolio's id, from traders
cursorstringThe nextCursor of the previous answer; leave it out for the first page
rowsintdefault 20Rows per page1 to 20
startTimeintOrders last filled at or after this, in Unix milliseconds (updatedAt >= startTime)
endTimeintOrders placed at or before this, in Unix milliseconds (createdAt <= endTime)

Response fields, in data

FieldTypeDescription
orders[]alwaysarray
orders[].symbolalwaysstring
orders[].sidealwaysstring
orders[].positionSidestringBOTH in one-way mode; LONG or SHORT in hedge mode
orders[].pricenumber
orders[].quantitynumber
orders[].quoteQuantitynumber
orders[].createdAtnumberWhen the order was placed, in Unix milliseconds
orders[].updatedAtalwaysnumberLast change, in Unix milliseconds
orders[].sourceDetails.marketTypeonly Binance
orders[].orderTypestringFor example MARKET or LIMIT
orders[].realizedPnlnumber
totalalwaysnumberRows across all pages
nextCursorstringSend 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/binance-copy-trading/orderHistory?traderId=5126483220510875392"
{
  "data": {
    "orders": [],
    "total": 0
  }
}

Transfer history

GET /v5/binance-copy-trading/transferHistory

Funds the lead trader moved into or out of the portfolio, newest first.

Query parameters

NameTypeDescription
traderIdrequiredstringThe lead portfolio's id, from traders
cursorstringThe nextCursor of the previous answer; leave it out for the first page
rowsintdefault 20Rows per page1 to 20

Response fields, in data

FieldTypeDescription
transfers[]alwaysarray
transfers[].timealwaysnumberIn Unix milliseconds
transfers[].assetstring
transfers[].amountalwaysnumber
transfers[].fromstring
transfers[].tostring
transfers[].typealwaysdeposit | withdraw | transfer | vaultDeposit | vaultWithdraw | commission | otherdeposit 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
transfers[].sourceDetails.typeonly Binance
totalalwaysnumberRows across all pages
nextCursorstringSend 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/binance-copy-trading/transferHistory?traderId=5126483220510875392"
{
  "data": {
    "transfers": [],
    "total": 0
  }
}

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 change
  • positionEvents: Opened, increased, decreased, closed
  • orderHistory: New and updated orders
  • positionHistory: Newly closed positions

Stream messages and webhook signatures

Try the Binance Copy Trading API for free.

The free tier is 10,000 requests a month. That is enough to build a whole integration and test it against live data before you pay anything.

Usually answered within a day · [email protected]