vike
API EndpointsHyperliquid

/stats

Ecosystem time series: perp equity, open interest, position counts.

GET https://data.vike.io/v1/hyperliquid/stats

Ecosystem time series: perp equity, open interest, position counts.

cURL
# the newest three hourly rows of venue-wide equity, open interest and position counts
curl -s "https://data.vike.io/v1/hyperliquid/stats?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/stats?limit=3&cursor=$NEXT" \
  -H "X-API-KEY: $VIKE_API_KEY"

# a pinned week: start only narrows a window that is limit hours back from end, so size limit to the range
curl -s "https://data.vike.io/v1/hyperliquid/stats?start=2026-08-10T00:00:00Z&end=2026-08-16T23:59:59Z&limit=168" \
  -H "X-API-KEY: $VIKE_API_KEY"

# sentiment over time: the share of open positions currently in profit, hour by hour
curl -s "https://data.vike.io/v1/hyperliquid/stats?limit=168" \
  -H "X-API-KEY: $VIKE_API_KEY" \
  | jq '.metrics[] | {ts, in_profit_share: (.count_positions_in_profit / .count_open_positions)}'

# a sanity check on the hour: long and short open interest should match
curl -s "https://data.vike.io/v1/hyperliquid/stats?limit=24" \
  -H "X-API-KEY: $VIKE_API_KEY" \
  | jq '.metrics[] | {ts, open_interest_long, open_interest_short}'
startqueryoptional
ISO-8601 UTC bounds
endqueryoptional
ISO-8601 UTC bounds
limitqueryoptional
Default 500, max 5000
cursorqueryoptional
Keyset cursor
Example response
{
  "metrics": [
    {
      "ts": "2026-09-03T07:00:00+00:00",
      "total_perp_equity": 2178980170.7294016,
      "count_wallets": 125165,
      "count_open_positions": 362781,
      "count_long": 237331,
      "count_short": 125450,
      "open_interest": 13869169131.74862,
      "open_interest_long": 6939683497.517567,
      "open_interest_short": 6929485634.231054,
      "count_positions_in_profit": 189633
    },
    {
      "ts": "2026-09-03T06:00:00+00:00",
      "total_perp_equity": 2187765497.7367554,
      "count_wallets": 124626,
      "count_open_positions": 361533,
      "count_long": 236634,
      "count_short": 124899,
      "open_interest": 13875586056.264666,
      "open_interest_long": 6938701711.02817,
      "open_interest_short": 6936884345.236498,
      "count_positions_in_profit": 191147
    },
    {
      "ts": "2026-09-03T05:00:00+00:00",
      "total_perp_equity": 2175650033.332754,
      "count_wallets": 124837,
      "count_open_positions": 362198,
      "count_long": 237231,
      "count_short": 124967,
      "open_interest": 13829590200.787807,
      "open_interest_long": 6914317028.5549555,
      "open_interest_short": 6915273172.232853,
      "count_positions_in_profit": 191243
    }
  ],
  "nextCursor": "eyJ0cyI6IjIwMjYtMDktMDMgMDU6MDA6MDAifQ"
}
cURL
# the newest three hourly rows of venue-wide equity, open interest and position countscurl -s "https://data.vike.io/v1/hyperliquid/stats?limit=3" \  -H "X-API-KEY: $VIKE_API_KEY"# next page of the call just above: NEXT is its nextCursor, passed back verbatimcurl -s "https://data.vike.io/v1/hyperliquid/stats?limit=3&cursor=$NEXT" \  -H "X-API-KEY: $VIKE_API_KEY"# a pinned week: start only narrows a window that is limit hours back from end, so size limit to the rangecurl -s "https://data.vike.io/v1/hyperliquid/stats?start=2026-08-10T00:00:00Z&end=2026-08-16T23:59:59Z&limit=168" \  -H "X-API-KEY: $VIKE_API_KEY"# sentiment over time: the share of open positions currently in profit, hour by hourcurl -s "https://data.vike.io/v1/hyperliquid/stats?limit=168" \  -H "X-API-KEY: $VIKE_API_KEY" \  | jq '.metrics[] | {ts, in_profit_share: (.count_positions_in_profit / .count_open_positions)}'# a sanity check on the hour: long and short open interest should matchcurl -s "https://data.vike.io/v1/hyperliquid/stats?limit=24" \  -H "X-API-KEY: $VIKE_API_KEY" \  | jq '.metrics[] | {ts, open_interest_long, open_interest_short}'
Example response
{  "metrics": [    {      "ts": "2026-09-03T07:00:00+00:00",      "total_perp_equity": 2178980170.7294016,      "count_wallets": 125165,      "count_open_positions": 362781,      "count_long": 237331,      "count_short": 125450,      "open_interest": 13869169131.74862,      "open_interest_long": 6939683497.517567,      "open_interest_short": 6929485634.231054,      "count_positions_in_profit": 189633    },    {      "ts": "2026-09-03T06:00:00+00:00",      "total_perp_equity": 2187765497.7367554,      "count_wallets": 124626,      "count_open_positions": 361533,      "count_long": 236634,      "count_short": 124899,      "open_interest": 13875586056.264666,      "open_interest_long": 6938701711.02817,      "open_interest_short": 6936884345.236498,      "count_positions_in_profit": 191147    },    {      "ts": "2026-09-03T05:00:00+00:00",      "total_perp_equity": 2175650033.332754,      "count_wallets": 124837,      "count_open_positions": 362198,      "count_long": 237231,      "count_short": 124967,      "open_interest": 13829590200.787807,      "open_interest_long": 6914317028.5549555,      "open_interest_short": 6915273172.232853,      "count_positions_in_profit": 191243    }  ],  "nextCursor": "eyJ0cyI6IjIwMjYtMDktMDMgMDU6MDA6MDAifQ"}