Get a free key
LIVE --:--:-- UTC Hyperliquid positions snapshot on a 5-min UTC grid — last boundary --:-- next in -:--
Vike · Free Data API

Crypto data API. Free. All of it.

Labelled EVM wallets and tokens on Ethereum, BNB Chain, Base and HyperEVM, Hyperliquid perps, HL Cohorts (long and short by wallet group, hourly), the Polymarket tape and full L2 book and Predict.fun trades with their wallets and wallet P&L — 121 REST routes, a WebSocket, an MCP server and Parquet archives. One free key, 20,000 requests an hour, nothing billed.

Free = a free API key, 20,000 requests/hour, up to 3 keys, nothing billed. Keyless = archive samples (Polymarket and Hyperliquid) + the Polymarket manifest only.

Datasets

Every dataset, live on its product's pages

Each product's pages draw every dataset from a real response captured from the real route, under the real field names.

On-chain

On-chain datasets are on the On-chain pages →

Hyperliquid

Hyperliquid datasets are on the Hyperliquid pages →

HL Cohorts

HL Cohorts datasets are on the HL Cohorts pages →

Polymarket

Polymarket datasets are on the Polymarket pages →

Coverage

Historical data: how far back each dataset goes

One 2026 date axis. Each bar starts at the oldest row actually stored for that dataset; click a row to open its card.

Archive completeness

Parquet archive: one square per daily partition

The Polymarket Parquet archive, read from the live manifest. A missing day would show as a gap.

Why history matters

Historical crypto data: public endpoints end when the moment passes

A venue API tells you what is true now. Backtests need what was true then — graded the way it looked then.

CapabilityVenue public APITypical trackersvike Data APIShow me
History depthLive state, short lookbackVaries Hyperliquid candles back to the end of 2025-12-31 · 5-min position snapshots kept 1 year · Polymarket archive show me
Snapshot cadenceLive onlyVaries Hyperliquid positions every 5 minutes, kept 1 year show me
Cohort grading without look-aheadNo cohortsNot stated labelBasis=point_in_time grades each hour with the label it had then show me
Every cohort of a coin, hourly, in one callNo cohortsVaries Up to 8,760 hours per request show me
Keyset paginationVariesVaries nextCursor → cursor, limit up to 5,000 show me
Wallet labels with their sourcesNo labelsVaries /labels/{address}/provenance shows which source claimed what show me
Bulk Parquet archiveVariesOften a paid tier One file per stream per UTC day · show me
PriceFree, rate-limitedOften a paid tier Free · 20,000 requests/hour per key · nothing billed show me

The vike column is the API's own route signatures, the live catalog and measured counts. The other two columns describe a category, not any one product.

Delivery

How to get the data: API, archive, samples

API free key

Every dataset, JSON over HTTPS. 20,000 requests an hour per key, keyset-paged.

bash
BASE=https://data.vike.io/v1
curl -H "X-API-KEY: vk_…" \
  "$BASE/hyperliquid/ohlcv?symbol=BTC&interval=1h"
  • Base: https://data.vike.io/v1
  • 429 + Retry-After over either limit (20,000/hour, 200/minute)

Archive free key

Polymarket and Hyperliquid Parquet, one file per stream per UTC day. Downloads do not count against your hourly limit.

http
# resolve one file (302 → Parquet)
GET /v1/polymarket/archive/url
    ?date=YYYY-MM-DD&stream=trades
    &redirect=1
  • Hyperliquid files (GET /v1/hyperliquid/archive/url) arrive as signed links valid 7 days, with no download quota
  • Licence: personal use under the Terms — details

Samples no key

One complete Polymarket up/down 5-minute market from a recent day, all three streams, regenerated daily. No sign-in, no key.

bash
# no key, no sign-in
curl -O https://data.vike.io/archive/samples/trades.parquet
curl -O https://data.vike.io/archive/manifest.json
  • Same columns as the full archive
  • Hyperliquid has its own, no key: BTC fills of one hour and BTC positions at one snapshot, at /archive/hl-samples/
  • Build your parser before you sign up
No fine print

What the free API key includes

Free means free. Here is exactly where the edges are.

included with a free key

  • Every route in /v1/onchain, /v1/hyperliquid, /v1/hl-cohorts, /v1/polymarket, the shared /v1/search and your own /v1/alerts — 121 in all
  • 20,000 requests/hour per key (200/minute on /v1), up to 3 keys per account
  • Archive downloads — do not count toward the hourly limit. A file needs a key only to ask for its signed link (one ordinary request), and the download itself carries none. A link is valid 7 days; there is no download quota
  • Nothing is billed — failed requests included, though they do count toward the hourly limit
  • No key at all for /archive/samples/, /archive/hl-samples/ and /archive/manifest.json

not included by design

  • No CEX market data. On-chain sources only, by design — no exchange candles, trades, funding boards or order books.
  • Polymarket /events and /orderbook begin on 2026-07-25, the first recorded day; an earlier time answers empty. The Parquet archive holds the same days in bulk.
  • Over 20,000 requests/hour (or 200/minute on /v1) you get 429 with Retry-After: 60 s for the hour, 1 s for the minute.
  • Hyperliquid position snapshots are kept 1 year, rolling.
8 studies

Across products: questions no single product answers

A Hyperliquid whale's funding on HyperEVM, Polymarket odds against the Hyperliquid price, one address on every venue: some questions need more than one product. One free key reaches all four, and each study below joins them, with the sentence to ask your AI instead and the code that answers it.

They join On-chain, Hyperliquid, HL Cohorts and Polymarket. Every block was run against the live API on 2026-11-04.

  1. Daily brief: Hyperliquid cohorts, liquidations, Polymarket smart money and trending tokens
  2. Hyperliquid whale: who funded it on HyperEVM?
  3. Liquidation cascade on Hyperliquid: did whales see it coming?
  4. One address, three venues: Hyperliquid, Polymarket and EVM activity in one report
  5. Polymarket BTC Up/Down odds vs Hyperliquid BTC price and whale positioning
  6. Who are the biggest Hyperliquid traders, and which known entities are they?
  7. Give my AI assistant the whole vike API in one page
  8. Hyperliquid builder users: what else do they trade on-chain?
Across products · API

Daily brief: Hyperliquid cohorts, liquidations, Polymarket smart money and trending tokens

Four independent calls, one per line of the brief: what the top 1% of Hyperliquid wallets by realized PnL (3x smart) hold, the liquidations of the last 24 hours, where Polymarket smart money went, and which Ethereum tokens smart wallets bought. Two traps: the screener's 24h counts whole UTC days (today and yesterday), and Polymarket's net_inflow adds both outcomes, so read each row's outcomes for a direction.

Uses
/v1/hl-cohorts/heatmap, /v1/hl-cohorts/segments/{…}/summary, /v1/hyperliquid/liquidations, /v1/hyperliquid/liquidations/risk, /v1/onchain/tokens/screener, /v1/polymarket/smart_money
Verified
live API, 2026-11-04: 8 calls, all 200
Free APIArchiveStreamMCP
Ask your AI agent: “Give me today's brief: what the 3x smart Hyperliquid cohort holds, the latest liquidations, where Polymarket smart money went in the last 24 hours, and which Ethereum tokens smart wallets bought.”

The code

python
import os
from datetime import datetime, timedelta, timezone

import requests

API_KEY = os.environ["VIKE_API_KEY"]  # your key, read from the environment

SINCE = (datetime.now(timezone.utc) - timedelta(hours=24)).strftime("%Y-%m-%dT%H:%M:%SZ")  # 24 hours ago, UTC

# 1. what the top 1% of Hyperliquid wallets by realized PnL hold right now, long against short
cohort = requests.get(
    "https://data.vike.io/v1/hl-cohorts/segments/3x_smart/summary?axis=pnl",
    headers={"X-API-Key": API_KEY},
).json()
# 2. the liquidations of the last 24 hours, newest first
liqs = requests.get(
    f"https://data.vike.io/v1/hyperliquid/liquidations?start={SINCE}&limit=3",
    headers={"X-API-Key": API_KEY},
).json()["liquidations"]
# 3. Polymarket markets with the largest net buying by its smart-money cohort over 24 hours
smart = requests.get(
    "https://data.vike.io/v1/polymarket/smart_money?mode=flows&hours=24&limit=3",
    headers={"X-API-Key": API_KEY},
).json()
# 4. Ethereum tokens ranked by the net inflow of smart wallets
tokens = requests.get(
    "https://data.vike.io/v1/onchain/tokens/screener?window=24h&sort=smart_inflow&limit=3",
    headers={"X-API-Key": API_KEY},
).json()

print(f"3x smart: ${cohort['total_long_usd']:,.0f} long, ${cohort['total_short_usd']:,.0f} short, bias {cohort['bias']:+.2f}")
for x in liqs:
    print("liquidated:", x["liq_ts"], x["symbol"], x["side"], f"${x['size_usd']:,.0f}")
for m in smart:
    print("smart money:", m["title"], f"${m['net_inflow']:,.0f}")
print("smart wallets bought:", [t["symbol"] or t["token_address"] for t in tokens])
Across products · API

Hyperliquid whale: who funded it on HyperEVM?

Look the whale up on Hyperliquid, then ask for the earliest inbound transfers of the same address on HyperEVM. When the first HYPE comes from 0x2222…2222 (wallet_type: "system"), the whale moved it over from its own Hyperliquid balance. Many whales never touch HyperEVM: then the answer is found: false, and only the bridge deposits in /ledger say where the money came from.

Uses
/v1/hyperliquid/leaderboard, /v1/hyperliquid/wallets/{…}, /v1/hyperliquid/wallets/{…}/ledger, /v1/onchain/wallets/{…}/first-funder
Verified
live API, 2026-11-04: 16 calls, all 200
Free APIArchiveStreamMCP
Measured 2026-11-04: Of the ten largest Hyperliquid accounts by value ($17.8M to $125.3M, all 4x whale), 6 had used HyperEVM under the same address and 4 had not. For 5 of the 6 the first HYPE came from 0x2222…2222, the system address that moves HYPE over from Hyperliquid: they funded HyperEVM from their own Hyperliquid balance. The sixth got its first 15 HYPE from another wallet. The example whale, 0xb83d…6e36, holds $94.9M; its first 10 HYPE came from 0x2222…2222 on 2025-06-26.
Ask your AI agent: “Who funded Hyperliquid whale 0xb83de012dba672c76a7dbbbf3e459cb59d7d6e36 on HyperEVM, and how big is its Hyperliquid account?”

The code

python
import os

import requests

API_KEY = os.environ["VIKE_API_KEY"]  # your key, read from the environment

WALLET = "0xb83de012dba672c76a7dbbbf3e459cb59d7d6e36"

# 1. is it a whale? equity and cohorts on Hyperliquid
hl = requests.get(
    f"https://data.vike.io/v1/hyperliquid/wallets/{WALLET}?window=30d",
    headers={"X-API-Key": API_KEY},
).json()
# 2. the earliest inbound HYPE and token transfers of the same address on HyperEVM, with the sender
ff = requests.get(
    f"https://data.vike.io/v1/onchain/wallets/{WALLET}/first-funder?chain=hyperevm",
    headers={"X-API-Key": API_KEY},
).json()

print(hl["cohorts"]["size"], f"${hl['equity']['account_value']:,.0f}")
if ff["found"]:
    first = ff["first_native_in"]
    print("first HYPE from", first["from"], first["wallet_type"], first["time"])
else:
    print("no HyperEVM activity under this address")
Across products · API

Liquidation cascade on Hyperliquid: did whales see it coming?

Find the hour of the move with candles, pull the longs liquidated inside it, then read every cohort's long/short bias in the six hours before. bias is (long − short) / (long + short) of the cohort's BTC notional. On the PnL ladder pass labelBasis=point_in_time, or every past hour is graded with today's label; the size ladder is always point-in-time.

Uses
/v1/hl-cohorts/symbols/{…}/cohort-metrics, /v1/hyperliquid/liquidations, /v1/hyperliquid/ohlcv
Verified
live API, 2026-11-04: 11 calls, all 200
Free APIArchiveStreamMCP
Measured 2026-11-04: In the 30 days to 2026-11-04 11:00 UTC, BTC's largest hourly drop on Hyperliquid came at 2026-10-29 20:00 UTC: 80,821 to 78,830 (-2.46%), with 4,449 longs ($70.8M) liquidated in that hour against 8 shorts ($35k). In the six hours before, 4x whale (accounts of $10m and up) was already net short, bias -0.38 to -0.47 on $1.18B–1.27B of BTC, while the three smaller whale rungs leaned long (+0.07 to +0.53) and 3x smart, graded point-in-time, sat at -0.15 to -0.20 on $1.73B–1.84B. The largest accounts were short before the drop; they did not turn short into it.
Ask your AI agent: “Find the largest hourly BTC drop on Hyperliquid in the last 30 days: how many longs were liquidated in it, and how were the whales positioned in the six hours before?”

The code

python
import os
from datetime import datetime, timedelta, timezone

import requests

API_KEY = os.environ["VIKE_API_KEY"]  # your key, read from the environment

def iso(t):
    return t.strftime("%Y-%m-%dT%H:%M:%SZ")


now = datetime.now(timezone.utc).replace(minute=0, second=0, microsecond=0)
# 1. BTC hourly candles over the last 30 days, and the hour with the largest drop
candles = requests.get(
    f"https://data.vike.io/v1/hyperliquid/ohlcv?symbol=BTC&interval=1h&start={iso(now - timedelta(days=30))}&end={iso(now)}&limit=720",
    headers={"X-API-Key": API_KEY},
).json()["candles"]
worst = min(candles, key=lambda c: c["close"] / c["open"])
hour = datetime.fromtimestamp(worst["ts"] / 1000, timezone.utc)
print(iso(hour), worst["open"], "->", worst["close"])
# 2. the longs liquidated on BTC inside that hour (up to 5,000 a page; nextCursor says there is more)
liqs = requests.get(
    f"https://data.vike.io/v1/hyperliquid/liquidations?symbol=BTC&direction=long&start={iso(hour)}&end={iso(hour + timedelta(hours=1))}&limit=5000",
    headers={"X-API-Key": API_KEY},
).json()["liquidations"]
print(len(liqs), "longs liquidated,", f"${sum(x['size_usd'] or 0 for x in liqs):,.0f}")
# 3. every size cohort's BTC positioning, hour by hour, in the six hours before
before = requests.get(
    f"https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&start={iso(hour - timedelta(hours=6))}&end={iso(hour - timedelta(hours=1))}&hours=7",
    headers={"X-API-Key": API_KEY},
).json()["metrics"]
for row in before:
    if row["cohort"] in ("4x whale", "shrimp"):
        print(row["ts"], row["cohort"], f"bias {row['bias']:+.2f}", f"${row['total_position_value']:,.0f}")
Across products · API

One address, three venues: Hyperliquid, Polymarket and EVM activity in one report

/v1/onchain/wallets/{address}/check says in one call where an address is known: the chains it is active on, its labels, its Hyperliquid account and the Polymarket accounts it owns. Then each venue's own route gives the detail. Polymarket keeps a trader's trades under a proxy wallet, so ask Polymarket for the account the address owns: the address itself usually answers 400.

Uses
/v1/hyperliquid/wallets/{…}, /v1/onchain/wallets/{…}, /v1/onchain/wallets/{…}/balances, /v1/onchain/wallets/{…}/check, /v1/polymarket/leaderboard, /v1/polymarket/wallets/{…}
Verified
live API, 2026-11-04: 8 calls, all 200
Free APIArchiveStreamMCP
Measured 2026-11-04: 0xf3dc…1672 is active on all four EVM chains (1,679 Ethereum transfers since 2023-08-14), is a Hyperliquid trader (2x shark, 3x smart, a $769k account, $123M traded in 30 days) and owns one Polymarket account, 0xb1a2…372a, with $3.6M of volume. Asked for the address itself, Polymarket answers 400: the trades sit under the proxy, which the check names.
Ask your AI agent: “Profile 0xf3dcaeb909d3d17318c0908a1ec0ca31321e1672 on Hyperliquid, Polymarket and the EVM chains in one report.”

The code

python
import os

import requests

API_KEY = os.environ["VIKE_API_KEY"]  # your key, read from the environment

ADDRESS = "0xf3dcaeb909d3d17318c0908a1ec0ca31321e1672"

# 1. everything held on the address in one call: chains, labels, its Hyperliquid account, the Polymarket accounts it owns
check = requests.get(
    f"https://data.vike.io/v1/onchain/wallets/{ADDRESS}/check",
    headers={"X-API-Key": API_KEY},
).json()
print("\n".join(check["summary"]))
# 2. the address on Hyperliquid: cohorts, 30-day metrics, lifetime flows
hl = requests.get(
    f"https://data.vike.io/v1/hyperliquid/wallets/{ADDRESS}?window=30d",
    headers={"X-API-Key": API_KEY},
).json()
# 3. on Polymarket a trader is its proxy wallet: the account this address owns
proxy = check["polymarket"]["owned"][0]["address"]
pm = requests.get(
    f"https://data.vike.io/v1/polymarket/wallets/{proxy}?window=30d",
    headers={"X-API-Key": API_KEY},
).json()
# 4. the address on the EVM chains: volume, flows and transfer counts in five windows
evm = requests.get(
    f"https://data.vike.io/v1/onchain/wallets/{ADDRESS}",
    headers={"X-API-Key": API_KEY},
).json()

print("Hyperliquid:", hl["cohorts"], f"30-day volume ${hl['metrics']['total_volume']:,.0f}")
print("Polymarket:", proxy, f"volume ${pm['volume_all_usd']:,.0f}, {pm['markets_count']} markets")
print("EVM:", evm["chain"], evm["all"]["tx_count"], "transfers since", evm["all"]["first_seen"])
Across products · API

Polymarket BTC Up/Down odds vs Hyperliquid BTC price and whale positioning

Take the Up token of a daily Polymarket "Bitcoin Up or Down" market (its price is the market's probability of Up), pull its hourly candles beside Hyperliquid's BTC candles and cohort matrix, and join the three on the hour. Polymarket's from and to are epoch milliseconds, both inclusive (a date string is ignored); Hyperliquid's end is exclusive. The cohort matrix serves settled hours only, one to two hours behind the clock.

Uses
/v1/hl-cohorts/symbols/{…}/cohort-metrics, /v1/hyperliquid/ohlcv, /v1/polymarket/markets, /v1/polymarket/ohlcv, /v1/polymarket/settlements/bulk, /v1/polymarket/settlements/{…}
Verified
live API, 2026-11-04: 8 calls, all 200
Free APIArchiveStreamMCP
Measured 2026-11-04: On Bitcoin Up or Down on November 3 (resolved Up), the Up token's first hourly candle of the day was 13:00 UTC: it closed at 0.46, then 0.39, 0.65, 0.99 and 0.999 by 17:00, while Hyperliquid BTC went 77,364 → 77,722. Through those five hours 4x whale kept its BTC short, bias -0.62 to -0.65 on $0.91B–0.93B, and shrimp leaned long (+0.34 to +0.45): the whales' positioning did not follow the odds.
Ask your AI agent: “Compare the Polymarket 'Bitcoin Up or Down on November 3' odds with the Hyperliquid BTC price and whale positioning, hour by hour.”

The code

python
import os
from datetime import datetime, timezone

import requests

API_KEY = os.environ["VIKE_API_KEY"]  # your key, read from the environment

CONDITION = "0x6f9a955c14d5a37eeb59d02ac17a72072a5140ad607df0954f56afd92ac0c567"  # Bitcoin Up or Down on November 3?

# 1. the market's outcomes and token ids, in the same order (an array of 0 or 1 rows)
market = requests.get(
    f"https://data.vike.io/v1/polymarket/settlements/{CONDITION}",
    headers={"X-API-Key": API_KEY},
).json()[0]
up = market["token_ids"][market["outcomes"].index("Up")]
# 2. hourly candles of the Up token from 13:00 to 17:00 UTC: the close is the probability of Up
odds = requests.get(
    f"https://data.vike.io/v1/polymarket/ohlcv?token_id={up}&interval=1h&from=1793710800000&to=1793725200000&limit=24",
    headers={"X-API-Key": API_KEY},
).json()
# 3. BTC hourly candles from Hyperliquid fills over the same hours
btc = requests.get(
    "https://data.vike.io/v1/hyperliquid/ohlcv?symbol=BTC&interval=1h&start=2026-11-03T13:00:00Z&end=2026-11-03T18:00:00Z&limit=24",
    headers={"X-API-Key": API_KEY},
).json()["candles"]
# 4. every size cohort's BTC long/short bias, hour by hour
cohorts = requests.get(
    "https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&start=2026-11-03T13:00:00Z&end=2026-11-03T17:00:00Z&hours=6",
    headers={"X-API-Key": API_KEY},
).json()["metrics"]

price = {c["ts"]: c["close"] for c in btc}
whale = {r["ts"]: r["bias"] for r in cohorts if r["cohort"] == "4x whale"}
for c in odds:
    hour = datetime.fromtimestamp(c["ts"] / 1000, timezone.utc)
    print(hour.strftime("%H:%M"), "Up", c["close"], "BTC", price.get(c["ts"]), "4x whale bias", whale.get(hour.isoformat()))
print("resolved:", market["winning_outcome"])
Across products · API

Who are the biggest Hyperliquid traders, and which known entities are they?

Rank Hyperliquid wallets on the leaderboard, then send the addresses to the batch label route: up to 100 addresses in one call, in input order, with entity, wallet type, risk flag and 30-day flows. A Hyperliquid account is an EVM address, so the same address works on both. An unlabelled trader comes back found: false with every field null, never 0, and that is the common case at the top of the board.

Uses
/v1/hyperliquid/leaderboard, /v1/onchain/labels/batch, /v1/onchain/labels/{…}/provenance
Verified
live API, 2026-11-04: 6 calls, all 200
Free APIArchiveStreamMCP
Measured 2026-11-04: Of the 100 Hyperliquid wallets with the most realized PnL over 30 days ($629k to $26.8M), 13 carry an Ethereum label: 2 name an entity (both binance, wallet type cex) and 11 are unnamed user wallets. None of the 100 has a HyperEVM label. 17 of the 100 showed an account value of 0: realized PnL counts closed trades, so a wallet can top the board after moving its money out.
Ask your AI agent: “Who are the top 100 Hyperliquid traders by 30-day realized PnL, and are any of them known entities?”

The code

python
import os

import requests

API_KEY = os.environ["VIKE_API_KEY"]  # your key, read from the environment

# 1. the 100 Hyperliquid wallets with the most realized PnL over 30 days
top = requests.get(
    "https://data.vike.io/v1/hyperliquid/leaderboard?window=30d&limit=100",
    headers={"X-API-Key": API_KEY},
).json()["traders"]
# 2. entity and wallet type of all 100 on Ethereum, in one call
labels = requests.post(
    f"https://data.vike.io/v1/onchain/labels/batch?chain=ethereum&addresses={','.join(t['wallet'] for t in top)}",
    headers={"X-API-Key": API_KEY},
).json()

for t, label in zip(top, labels):
    if label["found"]:
        print(t["rank"], t["wallet"], label["entity"], label["wallet_type"], f"${t['total_realized_pnl']:,.0f}")
Across products · API

Give my AI assistant the whole vike API in one page

/v1/openapi.json is the live OpenAPI document of the Data API: every /v1 route, its parameters, their allowed values and the auth it takes, in one JSON file generated from the running service. Save it and attach it to the chat. It takes your key; the same document is published with no key at https://vike.io/data/openapi.json. The spec says what a route accepts, not the traps around it: those are on each /data page, whose markdown twin is the page URL plus .md. An agent that can call tools does better with the MCP server.

Uses
/v1/openapi.json
Verified
live API, 2026-11-04: 5 calls, all 200
Free APIArchiveStreamMCP
Ask your AI agent: “Which vike data tools do you have, and what does each one answer?”

The code

python
import os

import requests

API_KEY = os.environ["VIKE_API_KEY"]  # your key, read from the environment

# the whole /v1 surface as one OpenAPI file, saved to disk
r = requests.get(
    "https://data.vike.io/v1/openapi.json",
    headers={"X-API-Key": API_KEY},
)
with open("openapi.json", "wb") as f:
    f.write(r.content)
Across products · API

Hyperliquid builder users: what else do they trade on-chain?

Take the largest Hyperliquid builder by 30-day volume, list the wallets that route orders through it, and send each wallet to the on-chain summary: a Hyperliquid account is an EVM address. One call per user. chain: null with zeros means no priced transfer on Ethereum, BSC, Base or HyperEVM, not nothing anywhere; tokens_traded is a lifetime count, so read activity per window from tx_count.

Uses
/v1/hyperliquid/builders, /v1/hyperliquid/builders/{…}/users, /v1/onchain/wallets/{…}, /v1/onchain/wallets/{…}/balances, /v1/onchain/wallets/{…}/transactions
Verified
live API, 2026-11-04: 17 calls, all 200
Free APIArchiveStreamMCP
Measured 2026-11-04: The largest builder by 30-day volume, 0xe966…f618, routed $4.79B for 935 users. Of its 10 largest users, 8 have priced transfers on the EVM chains (5 on Ethereum, 3 on BSC) and 2 have none on any of the four. The largest user, $2.75B through the builder, has moved $41.8M on Ethereum since 2023-07-15.
Ask your AI agent: “Take the top 10 users of the largest Hyperliquid builder and tell me what they hold and trade on Ethereum, BSC, Base and HyperEVM.”

The code

python
import os

import requests

API_KEY = os.environ["VIKE_API_KEY"]  # your key, read from the environment

# 1. the largest builder by 30-day volume
builder = requests.get(
    "https://data.vike.io/v1/hyperliquid/builders?window=30d&sort=volume&limit=1",
    headers={"X-API-Key": API_KEY},
).json()["builders"][0]["builder"]
# 2. its top 10 users by 30-day volume
users = requests.get(
    f"https://data.vike.io/v1/hyperliquid/builders/{builder}/users?window=30d&limit=10",
    headers={"X-API-Key": API_KEY},
).json()["users"]
# 3. each user's transfer activity: Ethereum and BSC, then Base and HyperEVM if those know nothing
for u in users:
    wallet = u["wallet"]
    s = requests.get(
        f"https://data.vike.io/v1/onchain/wallets/{wallet}",
        headers={"X-API-Key": API_KEY},
    ).json()
    print(wallet, f"builder volume ${u['volume_usd']:,.0f}", s["chain"], s["all"]["tx_count"], s["all"]["first_seen"])
FAQ

Free crypto data API FAQ

Is it actually free?
Yes. No plans, no tiers, nothing billed. One API key gets 20,000 requests an hour, and an account can hold up to 3 keys. Failed requests are not billed either, but they do count toward the hourly limit.
What works without a key?
The Polymarket archive samples (https://data.vike.io/archive/samples/), the Hyperliquid archive samples (https://data.vike.io/archive/hl-samples/manifest.json) and the Polymarket archive manifest (https://data.vike.io/archive/manifest.json). Everything else needs a free key: sign in, then open vike.io/account?tab=api-keys. You can reveal the key again later from your account page.
Do archive downloads count against my hourly limit?
No. Polymarket archive files need a key, but they are not counted against the 20,000 requests an hour. Files also come as presigned links valid 7 days: asking for a link needs the key and is one ordinary request, and the download itself needs no key and is not counted. There is no download cap. The files are for personal use under the Terms of Service.
How far back does it go?
Hyperliquid candles go back to the end of 2025-12-31, 5-minute position snapshots are kept for 1 year, and point-in-time cohort labels start 2026-04-07. Polymarket /events and /orderbook start on 2026-07-25, the first recorded day, and the Polymarket Parquet archive publishes one partition per UTC day from that date — the live manifest lists every one. The Hyperliquid Parquet archive holds fills from 2026-05-01 and positions from 2026-05-08, one file per UTC day. The coverage chart above starts each bar at the oldest row actually stored.
Why is there no exchange data?
By design. The Data API serves on-chain sources only: EVM wallets and tokens on Ethereum, BNB Chain, Base and HyperEVM, Hyperliquid (with HL Cohorts), Polymarket and Predict.fun. There are no CEX candles, trades, funding boards or order books.