import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPnlV2TopTraders({ limit: 50, pnlMode: 'strict' });
curl --request GET \
--url https://data.solanatracker.io/v2/pnl/leaderboard/top \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/v2/pnl/leaderboard/top"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://data.solanatracker.io/v2/pnl/leaderboard/top', 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.solanatracker.io/v2/pnl/leaderboard/top",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.solanatracker.io/v2/pnl/leaderboard/top"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.solanatracker.io/v2/pnl/leaderboard/top")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/v2/pnl/leaderboard/top")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"traders": [
{
"wallet": "HkFGQsW8mr8DTC2AE2WcC7MzwSnynfEryGMQSht271nf",
"period": {
"realized": 29253686.75,
"realizedRaw": 29511824.12,
"volume": 53377270.16,
"tradingDays": 79,
"roi": 345.12,
"days": {
"profitable": 58,
"losing": 21,
"maxSinglePnl": 891245.33,
"winRate": 73.42
}
},
"pnlAdjustments": {
"mode": "adjusted",
"invalidPnl": 29511824.12,
"adjustedCorrection": 258137.37
},
"ending": {
"pnl": {
"realized": 29642991.91,
"total": 29684935.07
}
},
"invested": 8476262.08,
"proceeds": 38119253.99,
"counts": {
"buys": 13842,
"sells": 27968,
"trades": 41810,
"tokensTraded": 4689
},
"averages": {
"buy": 1168.23,
"sell": 1362.96
},
"tokens": {
"profitable": 2441,
"losing": 159,
"closed": 2600
},
"winRate": 93.88,
"timing": {
"firstTrade": 1736769677989,
"lastTrade": 1776617215655
},
"lastSnapshotDate": "2026-04-19",
"updatedAt": "2026-04-19T16:46:56.831Z",
"identity": {
"name": null,
"twitter": null,
"avatar": "https://kol-avatar.solanatracker.io/HkFGQsW8mr8DTC2AE2WcC7MzwSnynfEryGMQSht271nf"
}
},
{
"wallet": "ApAKzJEqfnP7F74Za5xdTQxZMK4nD8dFTVBQ9bksTtGM",
"period": {
"realized": 19624090.03,
"volume": 34214876.02,
"tradingDays": 51,
"roi": 394.24
},
"ending": {
"pnl": {
"realized": 19769219.5,
"total": 19768875.79
}
},
"invested": 4977742.44,
"proceeds": 24746961.94,
"counts": {
"buys": 8655,
"sells": 20887,
"trades": 29542,
"tokensTraded": 2915
},
"averages": {
"buy": 1119.37,
"sell": 1184.8
},
"tokens": {
"profitable": 1811,
"losing": 33,
"closed": 1844
},
"winRate": 98.21,
"timing": {
"firstTrade": 1772358151760,
"lastTrade": 1776607936649
},
"lastSnapshotDate": "2026-04-19",
"updatedAt": "2026-04-19T14:12:17.583Z",
"identity": {
"name": null,
"twitter": null,
"avatar": "https://kol-avatar.solanatracker.io/ApAKzJEqfnP7F74Za5xdTQxZMK4nD8dFTVBQ9bksTtGM"
}
}
],
"pagination": {
"hasMore": true,
"nextCursor": "eyJzb3J0VmFsdWUiOjE5NjI0MDkwLjAyODk1MTU5MywidGllQnJlYWtlciI6IkFwQUt6SkVxZm5QN0Y3NFphNXhkVFF4Wk1LNG5EOGRGVFZCUTlia3NUdEdNIn0=",
"count": 2,
"total": 2,
"pnlMode": "adjusted"
}
}{
"error": "<string>"
}{
"error": "<string>"
}Solana Traders Leaderboard
Ordena carteras por PnL reciente en ventanas 1, 7, 30 o 90 días. Filtre carteras de baja señal, arbitraje o ganancias puntuales.
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPnlV2TopTraders({ limit: 50, pnlMode: 'strict' });
curl --request GET \
--url https://data.solanatracker.io/v2/pnl/leaderboard/top \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/v2/pnl/leaderboard/top"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://data.solanatracker.io/v2/pnl/leaderboard/top', 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.solanatracker.io/v2/pnl/leaderboard/top",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.solanatracker.io/v2/pnl/leaderboard/top"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.solanatracker.io/v2/pnl/leaderboard/top")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/v2/pnl/leaderboard/top")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"traders": [
{
"wallet": "HkFGQsW8mr8DTC2AE2WcC7MzwSnynfEryGMQSht271nf",
"period": {
"realized": 29253686.75,
"realizedRaw": 29511824.12,
"volume": 53377270.16,
"tradingDays": 79,
"roi": 345.12,
"days": {
"profitable": 58,
"losing": 21,
"maxSinglePnl": 891245.33,
"winRate": 73.42
}
},
"pnlAdjustments": {
"mode": "adjusted",
"invalidPnl": 29511824.12,
"adjustedCorrection": 258137.37
},
"ending": {
"pnl": {
"realized": 29642991.91,
"total": 29684935.07
}
},
"invested": 8476262.08,
"proceeds": 38119253.99,
"counts": {
"buys": 13842,
"sells": 27968,
"trades": 41810,
"tokensTraded": 4689
},
"averages": {
"buy": 1168.23,
"sell": 1362.96
},
"tokens": {
"profitable": 2441,
"losing": 159,
"closed": 2600
},
"winRate": 93.88,
"timing": {
"firstTrade": 1736769677989,
"lastTrade": 1776617215655
},
"lastSnapshotDate": "2026-04-19",
"updatedAt": "2026-04-19T16:46:56.831Z",
"identity": {
"name": null,
"twitter": null,
"avatar": "https://kol-avatar.solanatracker.io/HkFGQsW8mr8DTC2AE2WcC7MzwSnynfEryGMQSht271nf"
}
},
{
"wallet": "ApAKzJEqfnP7F74Za5xdTQxZMK4nD8dFTVBQ9bksTtGM",
"period": {
"realized": 19624090.03,
"volume": 34214876.02,
"tradingDays": 51,
"roi": 394.24
},
"ending": {
"pnl": {
"realized": 19769219.5,
"total": 19768875.79
}
},
"invested": 4977742.44,
"proceeds": 24746961.94,
"counts": {
"buys": 8655,
"sells": 20887,
"trades": 29542,
"tokensTraded": 2915
},
"averages": {
"buy": 1119.37,
"sell": 1184.8
},
"tokens": {
"profitable": 1811,
"losing": 33,
"closed": 1844
},
"winRate": 98.21,
"timing": {
"firstTrade": 1772358151760,
"lastTrade": 1776607936649
},
"lastSnapshotDate": "2026-04-19",
"updatedAt": "2026-04-19T14:12:17.583Z",
"identity": {
"name": null,
"twitter": null,
"avatar": "https://kol-avatar.solanatracker.io/ApAKzJEqfnP7F74Za5xdTQxZMK4nD8dFTVBQ9bksTtGM"
}
}
],
"pagination": {
"hasMore": true,
"nextCursor": "eyJzb3J0VmFsdWUiOjE5NjI0MDkwLjAyODk1MTU5MywidGllQnJlYWtlciI6IkFwQUt6SkVxZm5QN0Y3NFphNXhkVFF4Wk1LNG5EOGRGVFZCUTlia3NUdEdNIn0=",
"count": 2,
"total": 2,
"pnlMode": "adjusted"
}
}{
"error": "<string>"
}{
"error": "<string>"
}SDK Example
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPnlV2TopTraders({ limit: 50, pnlMode: 'strict' });
Autorizaciones
Clave API
Parámetros de consulta
Campo de ordenación
realized, volume, days, roi, win_percentage, trades, tokens Dirección de ordenación
asc, desc Resultados por página
Cursor opaco de pagination.nextCursor de la página anterior
Filtrar por plataformas de trading (lista separada por comas)
axiom, axiom-flash, bloom, photon Excluye bots de arbitraje; false para incluirlos
true, false Marcadas por heurística de PnL inválido: strict pone a cero; adjusted limita según coste; raw no toca PnL realizado. También pnl_mode y mode.
strict, adjusted, raw Ventana en días: use 1, 7, 30 u 90; otros valores se ajustan al soporte más cercano.
Mínimo de operaciones en la ventana
Mínimo invertido en USD en la ventana
Mínimo de días con actividad
Mínimo win rate (%)
Mínimo ROI (%)
Mínimo de posiciones cerradas
Máx. % del PnL atribuible a un solo token (filtra «un solo acierto»).
¿Esta página le ayudó?