vike

Vault flows feed

Deposits into and withdrawals from every vault, newest first, from the depositor's side.

GET https://data.vike.io/v1/hyperliquid/vaults/flows

Deposits into and withdrawals from every vault, newest first, from the depositor's side. Each row names the depositor, the vault and the direction.

cURL
# vault deposits and withdrawals of $10k or more over the last 7 days, newest first
curl -s "https://data.vike.io/v1/hyperliquid/vaults/flows?limit=3" \
  -H "X-API-KEY: $VIKE_API_KEY"

# next page of the call just above: NEXT is its nextCursor, passed back verbatim
curl -s "https://data.vike.io/v1/hyperliquid/vaults/flows?limit=3&cursor=$NEXT" \
  -H "X-API-KEY: $VIKE_API_KEY"

# withdrawals of $1M or more over 30 days
curl -s "https://data.vike.io/v1/hyperliquid/vaults/flows?window=30d&type=withdraw&min_usd=1000000&limit=50" \
  -H "X-API-KEY: $VIKE_API_KEY"

# what the most profitable traders are moving into and out of vaults
curl -s "https://data.vike.io/v1/hyperliquid/vaults/flows?smart_only=true&min_usd=0&limit=50" \
  -H "X-API-KEY: $VIKE_API_KEY" \
  | jq '.flows[] | {ts, depositor, pnl_rank, vault_name, direction, amount_usd}'
windowqueryoptional
7d | 30d | 90d | 365d | all. Default 7d
min_usdqueryoptional
Smallest flow in USD. Default 10000
typequeryoptional
all | deposit | withdraw | distribution | commission. Default all
smart_onlyqueryoptional
Only depositors in the top 1,000 of /v1/hyperliquid/leaderboard?window=all. Default false
limitqueryoptional
Default 100, max 1000
cursorqueryoptional
Keyset cursor

No response has been captured for this route yet. The card shows the fields the code returns, with placeholders in place of values.

Response shape
{
  "window": {
    "window": "7d",
    "start": "<YYYY-MM-DD>",
    "end": "<YYYY-MM-DD, the newest recorded day>",
    "partial": "<true when the history is shorter than the window>"
  },
  "min_usd": 10000.0,
  "type": "all",
  "smart_only": false,
  "flows": [
    {
      "ts": "<ISO-8601 UTC>",
      "hash": "<transaction hash, or null>",
      "vault": "<address, or null>",
      "vault_name": "<vault name, or null>",
      "depositor": "<address>",
      "event_type": "<vaultDeposit, vaultWithdraw, vaultCreate, vaultDistribution or vaultLeaderCommission>",
      "direction": "<in or out>",
      "amount_usd": "<USD, unsigned>",
      "fee_usd": "<USD>",
      "pnl_rank": "<integer, or null>"
    }
  ],
  "nextCursor": "<string, or null on the last page>"
}

The feed reaches back only as far as the vault history

The window is the vault history's, which is recorded from 2026-10-27: a window ends on the newest recorded day, and rows are served from the start of its start day. A wallet's older vault deposits and withdrawals are on /wallets/{address}/ledger.

amount_usd is unsigned: read direction

direction is in for vaultDeposit and vaultCreate, and out for a withdrawal, a distribution or a leader commission. amount_usd carries no sign.

  • pnl_rank is the depositor's rank in the top 1,000 of /leaderboard?window=all, else null. smart_only=true keeps only the ranked depositors.
  • vault is null on rows recorded before 2026-10-25 06:31 UTC.
  • A depositor that is itself a vault is left out, so HLP moving money between its own sub-vaults is not a row.
  • min_usd filters on the size of the flow; min_usd=0 keeps every row.

One vault's own side of these flows is /vaults/{vault}/flows.