A Long/Short Ratio Can't Tell You Who Is Long
The most-quoted derivatives stat is the long/short ratio. It's also one of the most misleading, because it treats every dollar the same. A book that's 60% long because market makers are warehousing inventory means something completely different from one that's 60% long because whales are pressing a directional bet.
The /api/v1/quant/positioning endpoint fixes that. It splits each coin's Hyperliquid book by trader type, so you can see whose money is on each side — not just the net.
Per-Coin Positioning by Account Type
For every coin it aggregates the full ≥$100k account universe (active accounts re-polled every collection cycle) into four buckets — market_maker, whale, other, and all — each with long / short / net / gross notional and a distinct account count:
| Bucket | Who it is | What it signals |
|---|---|---|
market_maker | Perp dealers / liquidity | Inventory, not direction (feeds GEX) |
whale | Large directional accounts | Conviction |
other | Everyone else in the ≥$100k set | The broader crowd |
all | Combined book | The headline net |
meta.by_tag reports the account-class summary and meta.active_accounts the universe size behind the read.
How Accounts Are Classified
There are no labels on-chain, so accounts are sorted by behavior. A lightweight classifier scores each account on:
- Turnover — how often it flips position (dealers churn; whales hold).
- Market breadth — how many coins it makes markets in at once.
- Leverage — conservative inventory vs aggressive directional risk.
- PnL consistency — spread-capture profiles look different from directional bets.
It's a heuristic, not a registry — treat the market_maker set as a strong behavioral grouping, the same one that powers the dealer-gamma view at /quant/gex.
Pulling Positioning for One Coin
curl -H "X-API-Key: cdk_live_your_key" \
"https://cryptodataapi.com/api/v1/quant/positioning?symbol=ETH"{
"scope": "positioning",
"coins": {
"ETH": {
"market_maker": {"net": -12400000, "accounts": 7},
"whale": {"net": 41800000, "accounts": 34},
"other": {"net": 9200000, "accounts": 121},
"all": {"net": 38600000, "accounts": 162}
}
}
}The headline net is +$38.6M long, but the read is sharper than that: whales are decisively long (+$41.8M across 34 accounts) while market makers lean short inventory — conviction longs, not a positioning artifact.
Reading the Split: MM vs Whale vs Other
The relationship between buckets is where the signal lives:
- Whales long, MM short: directional conviction with dealers absorbing — trend can run.
- Whales and other both heavy one side: crowded — squeeze/contrarian risk.
- MM dominates the net: mostly liquidity — discount the directional read.
- Whale net flips day-over-day: a regime change in smart-money posture.
This is the structural detail an aggregate ratio averages away.
Positioning vs Whale Activity vs GEX
Three endpoints read the same ≥$100k account universe through different lenses — pick by the question you're asking:
| Endpoint | Granularity | Answers |
|---|---|---|
/quant/positioning | Per coin, by account type | Who is long/short this coin? |
/quant/whales | Aggregate roll-up | Is the whole whale book risk-on or off? |
/quant/gex | Market-maker subset | Will dealer flow amplify or dampen? |
Positioning is the per-coin microscope; whale activity is the wide-angle; GEX isolates the dealers. They share one classification pass, so the numbers reconcile.
How AI Agents Use Positioning
import httpx
p = httpx.get("https://cryptodataapi.com/api/v1/quant/positioning?symbol=ETH",
headers={"X-API-Key": "cdk_live_your_key"}).json()["coins"]["ETH"]
whale_net = p["whale"]["net"]
mm_net = p["market_maker"]["net"]
# conviction long: whales long while dealers lean short
conviction_long = whale_net > 0 and mm_net < 0- Signal-quality filter: require whale agreement before acting on a net.
- Crowding guard: flag coins where whale + other pile onto one side.
- Pair it up: combine with whale activity (aggregate) and GEX (dealer gamma).
Pro Plus, one call per coin or the whole universe at once.



