/symbols/{symbol}/large-fills
One symbol's fills over $50,000 from the last 24 hours, newest first — the asset page's Whale Activity feed, with the wallet's cohorts and how far back the answer reaches.
GET https://data.vike.io/v1/hl-cohorts/symbols/{symbol}/large-fillsThe asset page's Whale Activity feed: one symbol's large fills, newest first, each with the wallet's
size and realized-PnL cohort. It reads the same view, with the same SQL, as the site. That view is
rebuilt every minute and keeps, per symbol, the newest 200 fills over $50,000 of the last 24 hours —
so covered_from says how far back an answer reaches, truncated whether the view's cap cut the
window, and has_more whether limit cut rows.
On a busy symbol the feed covers minutes, not a day
200 fills per symbol is the view's whole depth, whatever hours or limit ask for. On BTC it
reached back about 20 minutes (measured 2026-10-22). Read covered_from before treating an answer
as the whole of a window. Any closed UTC day of fills is one Parquet file in the
file archive.
# BTC's newest fills over $50,000: everything the view holds for the symbol
curl -s "https://data.vike.io/v1/hl-cohorts/symbols/BTC/large-fills" \
-H "X-API-KEY: $VIKE_API_KEY"
# how far back that answer reaches, and whether the view's cap cut the window
curl -s "https://data.vike.io/v1/hl-cohorts/symbols/BTC/large-fills" \
-H "X-API-KEY: $VIKE_API_KEY" \
| jq '{covered_from, truncated, has_more, fills: (.fills | length)}'
# only fills over $250,000 in the last 6 hours on ETH
curl -s "https://data.vike.io/v1/hl-cohorts/symbols/ETH/large-fills?min_usd=250000&hours=6" \
-H "X-API-KEY: $VIKE_API_KEY"
# who is taking liquidity: market orders only, with the wallet's cohorts
curl -s "https://data.vike.io/v1/hl-cohorts/symbols/HYPE/large-fills" \
-H "X-API-KEY: $VIKE_API_KEY" \
| jq '[.fills[] | select(.order_type == "market") | {ts, wallet, direction, size_usd, size_cohort, pnl_cohort}]'
# the newest 20 only; has_more says the view holds more that match
curl -s "https://data.vike.io/v1/hl-cohorts/symbols/BTC/large-fills?limit=20" \
-H "X-API-KEY: $VIKE_API_KEY"symbolpathrequiredmin_usdqueryoptionalhoursqueryoptionallimitqueryoptionalhas_more says a lower limit cut rows.The response
| Field | What it is |
|---|---|
symbol | The symbol in its stored spelling (btc → BTC). |
min_usd, hours | The values applied. |
covered_from | How far back the answer reaches: the window start (now − hours) when truncated is false, else the oldest fill the view holds for the symbol. |
truncated | true when the view is at its 200-fill cap and its oldest fill is newer than the window start, so older fills of the window may have been cut. It ignores min_usd: above $50,000 the cut fills may all have been smaller than min_usd, so true means "may have been cut", never "were". |
has_more | true when limit cut fills that match. There is no cursor: ask for a larger limit. |
size_cohort_basis | Always current. |
fills | The fills, newest first. |
When truncated is false the view holds every fill over $50,000 of the window, so an empty or
short answer for a quiet symbol means there were no such fills. An unknown symbol answers with an
empty fills.
Each fill:
| Field | What it is |
|---|---|
ts | When the fill happened, ISO-8601 UTC. |
wallet | The wallet that filled. |
direction | buy or sell, the fill's side, as on /v1/hyperliquid/wallets/{address}/fills. |
size_token | size_usd / price, which is how the fill is stored. null when price is 0. |
size_usd | The fill's notional, USD. |
price | The fill price. |
order_type | market when the fill crossed the book (taker), limit when it rested — the site's MKT and LMT. |
size_cohort | The wallet's size rung on its latest position snapshot when the view was rebuilt; null when there is none. |
pnl_cohort | The wallet's realized-PnL rung as of the fill's own hour where that hour is labelled, else today's; null when there is none. |
pnl_cohort_basis | point_in_time or current: which of the two pnl_cohort is. |
Not served: whether a fill was a liquidation (the fill record does not carry it;
/v1/hyperliquid/liquidations is the separate listing), and the
fill's open or close text, which is not stored.
Errors
| Status | When |
|---|---|
400 | The symbol is blank. The body is {"detail": "…"}. |
422 | min_usd is below 50000 or not a finite number, hours is outside 1–24, or limit is outside 1–1000. |
401 / 429 | No or bad credential, or the hourly budget or the per-minute cap is spent — see Authentication and Rate limits. |
503 | The store behind it is unavailable. |
The ladders behind size_cohort and pnl_cohort are on
Cohorts and axes; the two label bases are on
Label basis.
/symbols/{symbol}/indices
Smart Money Index, Whale-vs-Shrimp Index and the whale and smart bias of one symbol, as ratios — the newest snapshot and the settled hourly series.
On-chain REST
Endpoints for EVM wallets, tokens, transfers, labels and PnL — the one namespace where every REST route runs the same code as its MCP tool.