Free Whale Tracking API
The open positions of the largest Hyperliquid accounts by account value, with side, size and unrealized PnL, updated every 5 minutes.
Endpoints
/api/markets/whalesThe 20 largest open positions among the tracked accounts. Updated every 5 minutes.
/api/markets/whales/{coin}Positions in one coin across the tracked accounts, with the long and short totals.
Examples
curl
curl https://xoomar.com/api/markets/whales
Python
import requests
r = requests.get("https://xoomar.com/api/markets/whales")
positions = r.json()["data"]["positions"]
for p in positions[:5]:
print(f"{p['wallet']} {p['coin']} {p['side']}: ${p['size']:,.0f} (uPnL ${p['uPnl']:,.0f})")Main features
- Open positions of the largest Hyperliquid accounts by account value, updated every 5 minutes.
- Position detail: coin, side, notional size in USD at entry and unrealized PnL as Hyperliquid reports it.
- Per-coin totals: the long and short notional of the tracked accounts in one coin.
Example
Request
curl "https://xoomar.com/api/markets/whales"
Response, live at 2026-10-20 15:10 UTC, trimmed
{
"data": {
"positions": [
{
"wallet": "0x5b5d...c060",
"coin": "ETH",
"side": "short",
"size": 247014900.5643,
"uPnl": -14888873.192237,
"canonicalUrl": "https://xoomar.com/markets/whales/eth"
},
{
"wallet": "0x5b5d...c060",
"coin": "BTC",
"side": "short",
"size": 196964636.734151,
"uPnl": -17628255.291749,
"canonicalUrl": "https://xoomar.com/markets/whales/btc"
}
]
},
"updatedAt": "2026-10-20T15:10:39.975Z",
"source": "xoomar.com",
"docs": "https://xoomar.com/markets/api",
"license": "https://xoomar.com/terms",
"attribution": "Credit XOOMAR with a link to the dataset page on xoomar.com when you republish this data",
"meta": {
"source": "Hyperliquid",
"sourceAttribution": "Position data: Hyperliquid.",
"notice": "10 requests a minute without a key, 30 with a free key. Get a free key at https://xoomar.com/signup?utm_source=api, register your app at https://xoomar.com/developers/register?utm_source=api, and credit the data as \"Data: XOOMAR\" together with the sourceAttribution line."
}
}size is USD notional at entry. PnL is unrealized, as Hyperliquid reports it. Wallets are pseudonymous; we never claim to know who they are.
What people build with it
Side-change alerts
Poll every 5 minutes and alert when one of the largest positions in BTC or ETH changes side.
Whales next to funding
Show the per-coin long and short totals of the largest accounts next to the funding rates for the same coin.
Position boards
Build a board of the largest open positions with their unrealized PnL.
Size alerts
Alert when a single position passes a notional you choose.
Fair use
No key needed to start. A 429 response carries a Retry-After header in seconds; cache responses on your side where you can. Need more volume? Write to info@xoomar.com.
Response shape
Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs, license, attribution, meta }. In meta, source names who publishes the data and sourceAttribution is the credit line to show with it. The data field is an object with these fields:
| Field | Type | Description |
|---|---|---|
| positions | array | Top 20 open positions among tracked whale wallets, largest first |
| positions[].wallet | string | Shortened wallet address (0xd4c1...3d1d) |
| positions[].coin | string | Asset symbol on Hyperliquid (BTC, ETH, SOL...) |
| positions[].side | string | long or short |
| positions[].size | number | Position notional in USD at entry price |
| positions[].uPnl | number | Unrealized PnL in USD as reported by Hyperliquid |
| positions[].canonicalUrl | string (optional) | The page on xoomar.com for this record, present only when a matching page exists; otherwise omitted |
The per-coin endpoint /api/markets/whales/{coin} returns { coin, aggregate: { longSize, shortSize }, positions } filtered to that asset.
Numeric fields typed string in the table carry exact decimals; parse them with your language's decimal type. No key needed to start: 10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history. A 429 response carries a Retry-After header in seconds. Credit XOOMAR with a link to the dataset page when you republish the data; the data terms are on the terms page.
A free account key raises the limit; send it in an X-API-Key header.
Frequently Asked Questions
Which wallets are tracked?
How often does whale data update?
Can I filter by coin?
Is PnL data available?
Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.