REST API · v4

Binance Smart Money API

Every trader on Binance's Smart Money leaderboard, as normalized REST JSON. Rankings, open positions with entry and mark prices, and closed-trade history. One X-API-KEY header, no signing.

7 endpoints across 3 groupsDocs open, no key requiredFree tier 10,000 req/mo
GET /v4/traderOpenPositionssample
curl -H "X-API-KEY: $KOPYON_KEY" \
"https://api.kopyon.com/v4/traderOpenPositions?topTraderId=4555301953694675234&marketType=UM&page=1&rows=20"
{
"data": {
"positions": [
{
"symbol": "OGUSDT",
"pnl": 8.732763,
"roi": 0.05226488,
"leverage": 20,
"side": "LONG",
"entryPrice": 4.4,
"markPrice": 4.4115284
}
],
"total": 2
},
"success": true
}
Every call hits Binance directly · keyless calls capped per IPExplore all endpoints
CoverageUSDT-M Futures UMCOIN-M Futures CMFeatured Traders · HumanFeatured Traders · AI
The API surface

Seven Smart Money endpoints. Three groups.

Pick one to see its parameters and the exact shape it returns.

List & Search
Trader Profile
Activity & History
GET/v4/traderOpenPositions

What one trader is holding right now, one row per symbol.

Query parameters
topTraderIdstringrequired
The trader's unique ID.
marketTypeenumrequired
Which futures market to read. UM is USDT-margined, CM is coin-margined.
UM·CM
pageintrequired
Page number.
1 or greater
rowsintrequired
Rows per page.
1 to 20
200 responseapplication/json
{
"message": null,
"data": {
"positions": [
{
"symbol": "OGUSDT",
"pnl": 8.732763,
"roi": 0.05226488,
"amount": 757.5,
"leverage": 20,
"isolated": false,
"side": "LONG",
"entryPrice": 4.4,
"markPrice": 4.4115284,
"liqPrice": 3.80414903,
"margin": 167.08663815,
"maintenanceMargin": 50.12599144,
"marginRatio": 15.123933
}
],
"total": 2
},
"success": true
}
Example request
curl -H "X-API-KEY: $KEY" \
"https://api.kopyon.com/v4/traderOpenPositions?topTraderId=4555301953694675234&marketType=UM&page=1&rows=20"

Quickstart

Two calls to your first Smart Money position

Rank the traders, then feed an id from that response into the positions call. Set KOPYON_KEY in your environment and both samples run as they are.

import os, requests

BASE = "https://api.kopyon.com/v4"
AUTH = {"X-API-KEY": os.environ["KOPYON_KEY"]}

def get(path, **params):
    r = requests.get(f"{BASE}/{path}", headers=AUTH, params=params)
    return r.json()

# 1. top traders by 30-day PnL, only those sharing positions
traders = get("tradersList", timeRange="30D", rankingType="PNL",
              order="DESC", onlyShowSharingPosition="true",
              page=1, rows=20)

trader_id = traders["data"]["accounts"][0]["topTraderId"]

# 2. that trader's open USD-M positions
positions = get("traderOpenPositions", topTraderId=trader_id,
                marketType="UM", page=1, rows=20)

for p in positions["data"]["positions"]:
    print(p["symbol"], p["side"], p["pnl"])
const BASE = "https://api.kopyon.com/v4";
const headers = { "X-API-KEY": process.env.KOPYON_KEY };

const get = async (path, params) => {
  const q = new URLSearchParams(params);
  const res = await fetch(`${BASE}/${path}?${q}`, { headers });
  return res.json();
};

// 1. top traders by 30-day PnL, only those sharing positions
const traders = await get("tradersList", {
  timeRange: "30D", rankingType: "PNL", order: "DESC",
  onlyShowSharingPosition: "true", page: 1, rows: 20,
});

const traderId = traders.data.accounts[0].topTraderId;

// 2. that trader's open USD-M positions
const positions = await get("traderOpenPositions", {
  topTraderId: traderId, marketType: "UM", page: 1, rows: 20,
});

for (const p of positions.data.positions)
  console.log(p.symbol, p.side, p.pnl);

Neither endpoint has an optional parameter, so nothing here is safe to trim. Full reference


Built with it

What people ship on Smart Money data

Most integrations are one of these three.

1. Copy-trading automation

Poll a trader's open positions and mirror the delta against your own book.

traderOpenPositionstraderPositionHistory

2. Signal bots

Watch insertTime on the order feed. Alert when a trader you track opens or closes.

traderOrderHistorytraderProfile

3. Trend & sentiment analysis

Rank the board by PnL or ROI over any window, then aggregate what the leaders hold.

tradersListtraderChartData

Pricing

Priced on throughput, not on features

Every plan reaches all seven endpoints. What changes is how fast you can call them, how many calls you get, and what you are allowed to do with the data.

Billed directly, with no marketplace in between
Free
Build the whole integration before you pay anything.
$0/mo
No card required
Start free
  • 120 requests / minute, per endpoint
  • 10,000 requests / month
  • All 7 endpoints
  • Evaluation use
  • Community support
Most popular
Developer
A single bot or dashboard, running in production.
$49/mo
Billed monthly
Request a key
  • 600 requests / minute, per endpoint
  • 5,000,000 requests / month
  • All 7 endpoints
  • One production system, no resale
  • Email support
Trading Desk
Funds and prop firms running this across a team.
$299/mo
Billed monthly
Request a key
  • 1,800 requests / minute, per endpoint
  • 50,000,000 requests / month
  • All 7 endpoints
  • Commercial use across your firm
  • Telegram support, same day
Dedicated

Capacity, uptime and redistribution rights are all negotiated. It's for firms reselling the data, or running it as core infrastructure.

From $1,500 /mo
scoped to a custom contract
Talk to us
No card on file, nothing auto-renewsMonthly quota runs 30 days from your first callUpgrade or downgrade between months

FAQ

Before you write the first request

How fresh is the data?

Responses are delivered live, with no caching or polling on our side. Binance typically refreshes Smart Money data per trader about every 10 seconds, so an upstream response may be up to roughly 10 seconds old. Polling more frequently lets you detect each Binance refresh as soon as it becomes available, although repeated responses between refreshes are expected.

Can I try it before I pay?

Yes, right here. Every endpoint above has a Run button that calls the live API without a key, on a small daily allowance per IP. A free key raises that to 10,000 requests a month and never asks for a card.

How does authentication work?

One header: X-API-KEY. No OAuth flow, no request signing. The key carries your plan and is not pinned to an IP, so it works from as many workers or regions as you like. An unrecognised key returns 401.

What happens when I hit a limit?

You get a 429 immediately, carrying Retry-After with the seconds to wait. Two limits run at once: a per-minute rate on each endpoint, and a monthly quota across all of them that runs 30 days from your first call. Nothing is queued, and nothing is billed as overage. Both follow your key, or your IP if you have no key. You do not have to wait to find out where you stand: every metered response reports both counters in X-RateLimit-* headers.

Which markets and account types are covered?

USDT-M (UM) and COIN-M (CM) Binance Futures. The position and order endpoints take a marketType parameter. The ranked list also takes accountGroup, which separates AI accounts from human Featured Traders.

How much history can I pull?

That depends on the trader, not your plan. Each one chooses what to share, and traderProfile returns those flags, so you can check before spending requests on someone who shares nothing. When they do share it, you can filter by time range and page through.

Can I get a custom plan or the source?

Yes. Higher rate limits and dedicated capacity are both negotiable, and we license the source too. Tell us the volume you need on Telegram at @nunnito, or by email.

Can you build the integration for us?

Yes. We get it running inside your own infrastructure, wire the feed into a system you already run, push position alerts into Telegram, and hand over history as a database dump. Send the scope to @nunnito on Telegram, or by email.

Ship against real Smart Money data.

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]