curl -H 'Authorization: Bearer $HD_KEY' 'https://data.hyperdash.com/v1/leaderboards/pnl?window=7d'import requests
url = "https://data.hyperdash.com/v1/leaderboards/pnl"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://data.hyperdash.com/v1/leaderboards/pnl', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://data.hyperdash.com/v1/leaderboards/pnl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data.hyperdash.com/v1/leaderboards/pnl"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.hyperdash.com/v1/leaderboards/pnl")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.hyperdash.com/v1/leaderboards/pnl")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"rank": 123,
"address": "<string>",
"display_name": "<string>",
"tag": "<string>",
"net_pnl": "<string>",
"realized_pnl": "<string>",
"unrealized_pnl": "<string>",
"capital": "<string>",
"roi": "<string>",
"realized_roi": "<string>",
"unrealized_roi": "<string>",
"gross_pnl": "<string>",
"funding_pnl": "<string>",
"total_fees": "<string>",
"volume": "<string>",
"trades": 123,
"winning_trades": 123,
"losing_trades": 123,
"account_value": "<string>",
"account_value_as_of": 123,
"account_value_source": "<string>",
"last_trade_at": 123
}
],
"has_more": true,
"next_cursor": "<string>",
"meta": {}
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}PnL leaderboard
hyperdash.com’s PnL leaderboard: wallets ranked by total, realized or unrealized PnL, or their ROI, in a window and asset category, with the PnL split, capital, volume, trades and win/loss counts. 24h / 7d / 30d / ytd rank portfolio PnL (account value change net of transfers, open positions included); all time ranks Hyperliquid’s all-time PnL on category all and completed-trade PnL on the other categories. One wallet’s row: GET /v1/accounts//leaderboard. account_value is the wallet’s live perps equity as the site overlays it (one read per page, ≤ 1.5 s, kept 5 s), else the board’s hourly snapshot; ranks never use it. Page with the cursor.
Pricing: base + per row + node reads. Scope: analytics:read.
curl -H 'Authorization: Bearer $HD_KEY' 'https://data.hyperdash.com/v1/leaderboards/pnl?window=7d'import requests
url = "https://data.hyperdash.com/v1/leaderboards/pnl"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://data.hyperdash.com/v1/leaderboards/pnl', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://data.hyperdash.com/v1/leaderboards/pnl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data.hyperdash.com/v1/leaderboards/pnl"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.hyperdash.com/v1/leaderboards/pnl")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.hyperdash.com/v1/leaderboards/pnl")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"rank": 123,
"address": "<string>",
"display_name": "<string>",
"tag": "<string>",
"net_pnl": "<string>",
"realized_pnl": "<string>",
"unrealized_pnl": "<string>",
"capital": "<string>",
"roi": "<string>",
"realized_roi": "<string>",
"unrealized_roi": "<string>",
"gross_pnl": "<string>",
"funding_pnl": "<string>",
"total_fees": "<string>",
"volume": "<string>",
"trades": 123,
"winning_trades": 123,
"losing_trades": 123,
"account_value": "<string>",
"account_value_as_of": 123,
"account_value_source": "<string>",
"last_trade_at": 123
}
],
"has_more": true,
"next_cursor": "<string>",
"meta": {}
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"code": "<string>",
"request_id": "<string>",
"detail": "<string>",
"hint": "<string>"
}Authorizations
hdk_sk_live_v1_… or hdk_sk_test_v1_…
Headers
Refuse (free) if the request could cost more.
Expected price version; 409 price_changed if it differs.
Query Parameters
Ranking window. Default 30d, as hyperdash.com's leaderboard.
alltime, 24h, 7d, 30d, ytd Asset category.
all, crypto, majors, memes, alts, equities, indices, commodities, fx Ranked metric: total (net PnL), realized, unrealized, or their ROI (÷ capital; wallets with capital ≥ $1,000). Wallets without that value are not ranked.
total, realized, unrealized, roi, realized_roi, unrealized_roi Minimum completed trades.
0 <= x <= 1000000Rows per page.
1 <= x <= 500Opaque cursor from next_cursor.

