Skip to main content
GET
/
v1
/
leaderboard
Get the all-traders leaderboard
curl --request GET \
  --url https://api.testnet.arcus.xyz/v1/leaderboard
{
  "entries": [
    {
      "address": "<string>",
      "volume": 123,
      "feesPaid": 123,
      "pnl": 123
    }
  ]
}
Returns the top-N traders ranked by sortBy (volume, pnl, or fees; default volume) over the requested rolling window (all, 30d, or 24h; default 30d). Each row carries volume, fees paid, and realized PnL, all computed in a single query so the three columns are always mutually consistent for a row. pnl is realized only (sum of per-fill closed_pnl); open-position (unrealized) MTM is NOT included. Served from the off-write-path hourly rollup (persistence.fills_volume_by_account_hourly, which carries volume, fees, and realized PnL per address-hour), which lags real-time by up to the current partial hour. Pagination: limit max is 100 and there is no cursor — fetch up to 100 rows in one call and paginate client-side.

Query Parameters

window
enum<string>
default:30d

Rolling window for the ranking.

Available options:
all,
30d,
24h
sortBy
enum<string>
default:volume

Column to rank by (determines which top-N traders return).

Available options:
volume,
pnl,
fees
limit
integer
default:100

Number of leaderboard rows to return. Default and maximum are both 100; requests above the maximum are silently clamped.

Required range: 1 <= x <= 100

Response

Leaderboard entries.

entries
object[]
required
window
enum<string>
required

The rolling window the ranking was computed over.

Available options:
all,
30d,
24h
sortBy
enum<string>
required

The column the leaderboard was ranked by.

Available options:
volume,
pnl,
fees