Hyperliquid funding rates: live, and the funding rate history
Hyperliquid funding rates now and hour by hour: every perp's current rate, premium and open interest in one call, any perp's funding rate history, every coin's funding live on the WebSocket, and what any wallet paid or received in funding. Over MCP, REST and the CLI, on one free key.
“Which Hyperliquid perps pay the highest funding right now, and what was BTC's funding rate every hour today?”
hl_market“How much funding did this wallet pay or receive on each coin this month? (paste an address)”
hl_wallet_activityEvery perp's funding rate, premium and open interest
One call to the funding rates route answers for every perp it lists, ranked by open interest. Below is a real answer, captured once.
A real answer: the board
GET /v1/hyperliquid/funding-rates · captured 2026-11-03 17:49 UTC
| Perp | Funding / hour | A year (× 8,760) | Premium | Mid price | Open interest |
|---|---|---|---|---|---|
| BTC | 0.00125% | 10.95% | -0.0142% | 77,683.5 | $3,188.0M |
| ETH | 0.00125% | 10.95% | -0.0218% | 2,296.45 | $2,288.6M |
| HYPE | 0.00125% | 10.95% | 0.0592% | 86.4285 | $2,006.2M |
| ZEC | 0.00172% | 15.07% | 0.1241% | 1,225.3 | $586.8M |
| SOL | 0.00093% | 8.17% | -0.0428% | 93.3445 | $533.7M |
| XRP | 0.00125% | 10.95% | 0.0005% | 1.28405 | $212.2M |
| NEAR | 0.00125% | 10.95% | 0.0835% | 3.826 | $178.0M |
| XMR | 0.00113% | 9.93% | 0.0000% | 627.2 | $146.1M |
| LIT | 0.00125% | 10.95% | 0.0026% | 3.40175 | $137.8M |
| PUMP | 0.00125% | 10.95% | 0.0471% | 0.004249 | $100.0M |
| ENA | 0.00125% | 10.95% | 0.0000% | 0.170415 | $80.8M |
| UNI | 0.00125% | 10.95% | 0.0000% | 7.29235 | $79.7M |
| DOGE | 0.00125% | 10.95% | -0.0040% | 0.075254 | $76.2M |
| ZRO | 0.00125% | 10.95% | 0.0479% | 1.8792 | $65.9M |
| VVV | 0.00125% | 10.95% | 0.0000% | 22.246 | $62.7M |
| kPEPE | 0.00125% | 10.95% | 0.0413% | 0.004849 | $57.2M |
| LINK | 0.00125% | 10.95% | 0.0000% | 11.1205 | $56.9M |
| AAVE | 0.00125% | 10.95% | 0.0000% | 126.885 | $56.3M |
| BNB | 0.00125% | 10.95% | -0.0174% | 696.695 | $52.2M |
| XPL | 0.00125% | 10.95% | 0.0000% | 0.063521 | $51.0M |
| WLD | 0.00125% | 10.95% | 0.0000% | 0.36995 | $50.6M |
| TAO | 0.00125% | 10.95% | 0.0000% | 226.805 | $32.1M |
| SUI | 0.00125% | 10.95% | -0.0189% | 0.89726 | $30.8M |
| STRK | 0.00125% | 10.95% | 0.0000% | 0.04258 | $27.7M |
| MON | 0.00125% | 10.95% | -0.0282% | 0.017681 | $27.4M |
| ADA | 0.00125% | 10.95% | 0.0000% | 0.189885 | $26.6M |
| PAXG | 0.00072% | 6.31% | -0.0446% | 3,934.75 | $25.2M |
| GRASS | 0.00125% | 10.95% | 0.0000% | 0.56145 | $24.9M |
| AERO | 0.00125% | 10.95% | -0.0011% | 0.614365 | $24.8M |
| CASHCAT | 0.00125% | 10.95% | 0.0000% | 0.10887 | $24.1M |
| ASTER | 0.00125% | 10.95% | 0.0553% | 0.69998 | $23.2M |
| GRAM | -0.00130% | -11.34% | -0.0577% | 1.17415 | $22.9M |
| LTC | 0.00125% | 10.95% | -0.0217% | 54.2625 | $20.6M |
| FARTCOIN | 0.00125% | 10.95% | -0.0085% | 0.11811 | $20.6M |
| ONDO | 0.00125% | 10.95% | -0.0074% | 0.389775 | $19.3M |
| AVAX | 0.00125% | 10.95% | -0.0282% | 8.5148 | $16.7M |
| TRX | 0.00125% | 10.95% | 0.0000% | 0.323395 | $14.6M |
| ARB | 0.00125% | 10.95% | -0.0253% | 0.15801 | $13.7M |
| CRV | 0.00125% | 10.95% | -0.0038% | 0.26235 | $12.9M |
| PURR | 0.00125% | 10.95% | 0.0000% | 0.11514 | $12.9M |
| WLFI | 0.00125% | 10.95% | 0.0000% | 0.050976 | $12.1M |
| PONS | 0.00125% | 10.95% | 0.0000% | 0.200155 | $11.3M |
| ETHFI | 0.00125% | 10.95% | 0.0623% | 0.57867 | $10.0M |
| XLM | 0.00125% | 10.95% | 0.0000% | 0.163615 | $9.9M |
| CHIP | 0.00125% | 10.95% | 0.0000% | 0.041517 | $9.7M |
| PENDLE | 0.00125% | 10.95% | -0.0092% | 1.7624 | $9.4M |
| USELESS | 0.00125% | 10.95% | 0.0741% | 0.127165 | $9.1M |
| MEGA | 0.00125% | 10.95% | -0.0311% | 0.045033 | $9.0M |
| HBAR | 0.00125% | 10.95% | 0.0000% | 0.069622 | $8.8M |
| LDO | 0.00125% | 10.95% | 0.0000% | 0.33393 | $8.1M |
| TRUMP | 0.00113% | 9.86% | -0.0252% | 1.58495 | $8.1M |
| kBONK | -0.00172% | -15.05% | -0.0355% | 0.002815 | $6.9M |
| BCH | 0.00125% | 10.95% | -0.0439% | 275.695 | $6.9M |
| TIA | -0.00144% | -12.60% | -0.0440% | 0.43103 | $6.7M |
| JUP | 0.00125% | 10.95% | 0.0000% | 0.247235 | $6.6M |
| FIL | 0.00125% | 10.95% | 0.0011% | 0.87177 | $6.5M |
| FET | 0.00125% | 10.95% | 0.0240% | 0.154605 | $6.3M |
| DOT | 0.00125% | 10.95% | 0.0000% | 0.93485 | $6.0M |
| CC | 0.00125% | 10.95% | 0.0000% | 0.09544 | $5.9M |
| MORPHO | 0.00125% | 10.95% | 0.0000% | 2.2068 | $5.7M |
| RUNE | 0.00125% | 10.95% | 0.0000% | 0.65303 | $5.6M |
| VIRTUAL | 0.00125% | 10.95% | -0.0102% | 0.59041 | $5.4M |
| POL | 0.00125% | 10.95% | -0.0304% | 0.092129 | $4.7M |
| INJ | 0.00125% | 10.95% | 0.0000% | 7.23315 | $4.6M |
| MNT | 0.00125% | 10.95% | 0.0000% | 0.47215 | $4.4M |
| SYRUP | 0.00125% | 10.95% | 0.1098% | 0.158735 | $4.4M |
| PENGU | 0.00125% | 10.95% | -0.0143% | 0.006994 | $4.3M |
| WIF | 0.00125% | 10.95% | 0.0529% | 0.172145 | $4.1M |
| OP | -0.00139% | -12.19% | -0.0365% | 0.10956 | $4.1M |
| ATOM | 0.00125% | 10.95% | 0.0000% | 1.4186 | $4.0M |
| SPX | 0.00125% | 10.95% | 0.0000% | 0.36003 | $4.0M |
| APT | 0.00033% | 2.85% | -0.0325% | 0.6158 | $3.9M |
| kSHIB | 0.00125% | 10.95% | 0.0000% | 0.004634 | $3.3M |
| IMX | 0.00125% | 10.95% | 0.0000% | 0.11866 | $3.3M |
| SKY | 0.00125% | 10.95% | 0.0000% | 0.065919 | $3.2M |
| CFX | 0.00332% | 29.11% | 0.0850% | 0.045974 | $3.0M |
| ALGO | 0.00013% | 1.13% | -0.0501% | 0.093739 | $2.7M |
| ETC | -0.00264% | -23.11% | -0.0453% | 7.0521 | $2.7M |
| W | -0.00230% | -20.14% | -0.0908% | 0.01099 | $2.6M |
| NIL | -0.01123% | -98.36% | -0.1280% | 0.063147 | $2.6M |
| DASH | 0.00125% | 10.95% | 0.0000% | 46.3 | $2.6M |
| SEI | 0.00125% | 10.95% | 0.0000% | 0.047685 | $2.4M |
| ICP | 0.00125% | 10.95% | 0.0000% | 2.48875 | $2.4M |
| MET | 0.00125% | 10.95% | -0.0232% | 0.270865 | $2.3M |
| RENDER | 0.00125% | 10.95% | -0.0013% | 1.5043 | $2.2M |
| LINEA | 0.00125% | 10.95% | 0.0000% | 0.002337 | $2.2M |
| EIGEN | 0.00125% | 10.95% | 0.0000% | 0.1809 | $2.1M |
| PYTH | 0.00125% | 10.95% | 0.0000% | 0.066345 | $1.9M |
| JTO | 0.00125% | 10.95% | 0.0000% | 0.34135 | $1.9M |
| ZK | 0.00125% | 10.95% | 0.0000% | 0.010219 | $1.9M |
| ENS | 0.00125% | 10.95% | 0.0000% | 4.8617 | $1.7M |
| SAGA | 0.00125% | 10.95% | 0.0000% | 0.0178 | $1.7M |
| HMSTR | 0.00125% | 10.95% | 0.0000% | 0.000137 | $1.7M |
| STX | -0.00015% | -1.28% | -0.0775% | 0.32215 | $1.6M |
| STBL | 0.00125% | 10.95% | -0.0082% | 0.024402 | $1.6M |
| INIT | 0.00125% | 10.95% | 0.0000% | 0.13098 | $1.6M |
| KAS | 0.00125% | 10.95% | 0.0000% | 0.030809 | $1.5M |
| APEX | 0.00125% | 10.95% | 0.0446% | 0.204485 | $1.4M |
| DYDX | 0.00125% | 10.95% | 0.0000% | 0.10397 | $1.4M |
| CAKE | 0.00125% | 10.95% | 0.0000% | 1.8677 | $1.4M |
| POPCAT | 0.00125% | 10.95% | 0.0000% | 0.039683 | $1.4M |
| REZ | 0.00125% | 10.95% | 0.0521% | 0.003846 | $1.3M |
| GOAT | 0.00999% | 87.48% | 0.1886% | 0.013829 | $1.2M |
| AVNT | 0.00125% | 10.95% | 0.0000% | 0.086735 | $1.2M |
| AZTEC | 0.00125% | 10.95% | -0.0139% | 0.014383 | $1.2M |
| KAITO | 0.00125% | 10.95% | 0.0000% | 0.23422 | $1.2M |
| IOTA | 0.00125% | 10.95% | 0.0000% | 0.039765 | $1.1M |
| GRIFFAIN | 0.00125% | 10.95% | 0.0000% | 0.011661 | $1.1M |
| COMP | 0.00125% | 10.95% | 0.0000% | 19.9165 | $1.1M |
| 0G | 0.00125% | 10.95% | 0.0000% | 0.154825 | $1.1M |
| RESOLV | 0.00521% | 45.67% | 0.1677% | 0.014959 | $1.0M |
| MELANIA | 0.00125% | 10.95% | 0.0000% | 0.07572 | $1.0M |
| XTEN | 0.00169% | 14.85% | 0.0569% | 0.252035 | $1.0M |
| STABLE | 0.00099% | 8.64% | -0.0552% | 0.027117 | $1.0M |
| PNUT | 0.00125% | 10.95% | 0.0000% | 0.03909 | $0.9M |
| GMX | 0.00125% | 10.95% | 0.0000% | 8.5717 | $0.9M |
| BERA | 0.00125% | 10.95% | 0.0000% | 0.12934 | $0.9M |
| USUAL | 0.00125% | 10.95% | 0.0000% | 0.01031 | $0.9M |
| APE | 0.00125% | 10.95% | -0.0271% | 0.11064 | $0.9M |
| SAND | -0.00182% | -15.92% | -0.0131% | 0.045745 | $0.9M |
| AR | 0.00125% | 10.95% | -0.0510% | 3.1357 | $0.9M |
| MINA | -0.00059% | -5.14% | -0.0233% | 0.055553 | $0.8M |
| BLUR | -0.07885% | -690.73% | -2.1214% | 0.007955 | $0.7M |
| ALT | -0.00170% | -14.93% | 0.0000% | 0.005671 | $0.7M |
| S | 0.00110% | 9.64% | -0.0575% | 0.038234 | $0.7M |
| HEMI | 0.00125% | 10.95% | 0.0216% | 0.004625 | $0.7M |
| BSV | 0.00125% | 10.95% | 0.0000% | 16.925 | $0.7M |
| ZETA | 0.00125% | 10.95% | 0.0000% | 0.03586 | $0.7M |
| ZORA | 0.00125% | 10.95% | 0.0000% | 0.005575 | $0.6M |
| 2Z | 0.00125% | 10.95% | -0.0136% | 0.022079 | $0.6M |
| SUPER | -0.00129% | -11.30% | -0.0814% | 0.166705 | $0.6M |
| MERL | 0.00125% | 10.95% | 0.0000% | 0.028181 | $0.5M |
| BIO | 0.00125% | 10.95% | 0.0000% | 0.020585 | $0.5M |
| TRB | 0.00125% | 10.95% | 0.0000% | 16.249 | $0.5M |
| IO | 0.00125% | 10.95% | 0.0000% | 0.12349 | $0.5M |
| SNX | 0.00125% | 10.95% | -0.0282% | 0.17676 | $0.5M |
| BOME | -0.00681% | -59.65% | 0.0000% | 0.000621 | $0.5M |
| RSR | 0.00125% | 10.95% | 0.0000% | 0.00143 | $0.5M |
| CELO | 0.00125% | 10.95% | 0.0000% | 0.0722 | $0.5M |
| kFLOKI | 0.00057% | 5.00% | -0.0089% | 0.022473 | $0.5M |
| ZEN | 0.00125% | 10.95% | -0.0383% | 5.2125 | $0.4M |
| SOPH | 0.00125% | 10.95% | 0.0000% | 0.00146 | $0.4M |
| GALA | 0.00125% | 10.95% | 0.0000% | 0.001668 | $0.4M |
| NEO | 0.00125% | 10.95% | 0.0000% | 1.9559 | $0.4M |
| ORDI | 0.00125% | 10.95% | 0.0000% | 3.4378 | $0.4M |
| TURBO | 0.00125% | 10.95% | 0.0000% | 0.000766 | $0.3M |
| MEME | 0.00125% | 10.95% | 0.0000% | 0.000431 | $0.3M |
| SKR | 0.00125% | 10.95% | 0.1029% | 0.012651 | $0.3M |
| MANTA | 0.00125% | 10.95% | 0.0175% | 0.0572 | $0.3M |
| MOODENG | 0.00125% | 10.95% | 0.0000% | 0.034589 | $0.3M |
| LAYER | -0.00555% | -48.60% | -0.0700% | 0.056993 | $0.3M |
| ANIME | 0.00013% | 1.10% | -0.0372% | 0.002682 | $0.3M |
| SUSHI | 0.00039% | 3.40% | -0.0313% | 0.19112 | $0.3M |
| XAI | 0.00125% | 10.95% | 0.0000% | 0.00674 | $0.2M |
| PROVE | 0.00125% | 10.95% | -0.0142% | 0.189955 | $0.2M |
| YGG | 0.00024% | 2.10% | -0.0293% | 0.023877 | $0.2M |
| kLUNC | 0.00125% | 10.95% | 0.0000% | 0.04094 | $0.2M |
| AXS | -0.00021% | -1.88% | -0.0047% | 0.84711 | $0.2M |
| NOT | 0.00125% | 10.95% | 0.0000% | 0.000345 | $0.2M |
| BABY | 0.00125% | 10.95% | 0.0000% | 0.011741 | $0.2M |
| MOVE | 0.00106% | 9.29% | -0.0162% | 0.006163 | $0.2M |
| BRETT | 0.00125% | 10.95% | 0.0000% | 0.004191 | $0.2M |
| DYM | 0.00125% | 10.95% | 0.0000% | 0.01509 | $0.2M |
| FOGO | 0.00125% | 10.95% | 0.0000% | 0.00239 | $0.2M |
| BIGTIME | 0.00125% | 10.95% | 0.0000% | 0.006658 | $0.2M |
| ACE | 0.00125% | 10.95% | 0.0000% | 0.134 | $0.2M |
| ME | 0.00125% | 10.95% | -0.0382% | 0.05221 | $0.2M |
| UMA | 0.00125% | 10.95% | 0.0000% | 0.34099 | $0.1M |
| PEOPLE | 0.00125% | 10.95% | 0.0000% | 0.006506 | $0.1M |
| TNSR | 0.00125% | 10.95% | 0.0000% | 0.02727 | $0.1M |
| AIXBT | 0.00125% | 10.95% | -0.0124% | 0.016057 | $0.1M |
| NXPC | 0.00125% | 10.95% | 0.0000% | 0.163095 | $0.1M |
| BANANA | 0.00125% | 10.95% | 0.0000% | 3.11435 | $0.1M |
| WCT | 0.00125% | 10.95% | 0.0000% | 0.032992 | $0.1M |
| GMT | 0.00125% | 10.95% | 0.0000% | 0.00635 | $0.1M |
| GAS | 0.00125% | 10.95% | 0.0000% | 1.1414 | $0.1M |
| kNEIRO | 0.00125% | 10.95% | 0.0000% | 0.06193 | $0.1M |
| HYPER | 0.00125% | 10.95% | 0.0000% | 0.058884 | $0.1M |
| POLYX | 0.00125% | 10.95% | -0.0379% | 0.031647 | $0.0M |
The JSON
{
"as_of": "2026-11-03T17:46:00+00:00",
"sort": "oi",
"order": "desc",
"items": [
{
"symbol": "BTC",
"ts": "2026-11-03T17:46:00+00:00",
"funding_rate": 1.25e-05,
"funding_rate_annualized": 0.1095,
"premium": -0.0001415793,
"mid_price": 77683.5,
"open_interest": 41037.68184,
"open_interest_usd": 3187950757.21764
},
{
"symbol": "ETH",
"ts": "2026-11-03T17:46:00+00:00",
"funding_rate": 1.25e-05,
"funding_rate_annualized": 0.1095,
"premium": -0.0002176752,
"mid_price": 2296.45,
"open_interest": 996590.1794000004,
"open_interest_usd": 2288619517.4831305
},
{
"symbol": "HYPE",
"ts": "2026-11-03T17:46:00+00:00",
"funding_rate": 1.25e-05,
"funding_rate_annualized": 0.1095,
"premium": 0.0005916543,
"mid_price": 86.4285,
"open_interest": 23212675.08000001,
"open_interest_usd": 2006236688.1517808
}
],
"nextCursor": null
}
The JSON trimmed to its first 3 of 179 items.
Funding rates API: every perp now, or one perp hour by hour
No symbol: the board, sortable by open interest or by the rate. With a symbol: that perp's funding rate history, one row per hour.
Funding rates: every perp now, or one perp hour by hour
- Route
GET /v1/hyperliquid/funding-rates- CLI
- —
- MCP
hl_market· 1 credit- Cost
- 1 request of the hourly limit
Hyperliquid funding rates: the latest of every perp, or one perp's hourly history.
funding_rate is the venue's hourly rate as a fraction (0.0000125 = 0.00125% an hour; Hyperliquid settles funding every hour, longs paying shorts when it is positive) and funding_rate_annualized is it x 8,760 (24 x 365), simple, not compounded (0.1095 = 10.95% a year). premium is the venue's premium of the perp over its oracle price, also a fraction. open_interest is one side, in coins, and open_interest_usd it x mid_price.
Without symbol, the board: one row per perp, native and builder-DEX (HIP-3, xyz:TSLA), its newest reading (taken every 5 minutes; ts says when), ranked by sort. as_of is the newest reading's time.
With symbol, the history: one row per UTC hour (ts is the hour's start), from data_from, the perp's first recorded hour (2026-04-02 for the oldest). funding_rate, premium, mid_price and open_interest are the means of the hour's readings (n_snapshots, 12 in a full hour), not the rate settled at the end of the hour, and the newest hour may still be filling. A symbol we hold no hour of is a 404.
Builder-DEX (HIP-3) perps: from 2026-04-22 13:00 to 2026-11-03 their hours are the rate the venue SETTLED at the end of the hour, rebuilt from its funding history, not a mean of readings; a value the venue never published (a market already delisted) is null.
Parameters
| Parameter | In | Description |
|---|---|---|
symbol | query | Hyperliquid perp ticker, e.g. BTC, or a builder-DEX (HIP-3) perp such as xyz:TSLA. Omit for the board: the latest funding of every perp. Given, that perp's hourly history. A spot or outcome market is a 400 |
sort | query | Board only: oi | rate | abs_rate. Default oi, open interest in USD; abs_rate ranks by the size of the rate whatever its sign. A 400 with symbol |
order | query | asc | desc. Default desc: the board largest first, a history newest hour first |
start | query | History only (needs symbol): ISO-8601 UTC, inclusive. Default: no lower bound (data_from) |
end | query | History only (needs symbol): ISO-8601 UTC, inclusive. Default: now |
limit | query | Default 500, max 5000. The board holds about 350 perps, so the default is all of it |
cursor | query | nextCursor from the previous page, verbatim. It pins the call that returned it: resend the same symbol, sort and order, or the call is a 400. A board cursor also pins that board's time, so every page reads the same one |
Call it
curl -H "X-API-KEY: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/funding-rates"
import os, requests
KEY = {"X-API-KEY": os.environ["VIKE_API_KEY"]}
board = requests.get("https://data.vike.io/v1/hyperliquid/funding-rates", params={"sort": "rate"}, headers=KEY).json()
print("as of", board["as_of"])
for p in board["items"][:10]: # the highest hourly rates first
print(p["symbol"], p["funding_rate"], p["funding_rate_annualized"], p["open_interest_usd"])
btc = requests.get("https://data.vike.io/v1/hyperliquid/funding-rates", params={"symbol": "BTC", "limit": 24}, headers=KEY).json()
for h in btc["items"]: # BTC hour by hour, newest first
print(h["ts"], h["funding_rate"], h["premium"], h["n_snapshots"])
# any MCP client; or from the terminal:
vike-data call hl_market --args '{"view": "funding_rates"}'
A real answer: BTC, hour by hour
GET /v1/hyperliquid/funding-rates?symbol=BTC&limit=24 · captured 2026-11-03 17:49 UTC
| Hour (UTC) | Funding / hour | A year (× 8,760) | Premium | Mid price | Open interest | Readings |
|---|---|---|---|---|---|---|
| 2026-11-03 17:00 | 0.00125% | 10.95% | -0.0177% | 77,696.9 | $3,185.4M | 10 |
| 2026-11-03 16:00 | 0.00125% | 10.95% | -0.0279% | 77,543.1 | $3,157.7M | 12 |
| 2026-11-03 15:00 | 0.00125% | 10.95% | -0.0231% | 77,456.9 | $3,143.9M | 12 |
| 2026-11-03 14:00 | 0.00125% | 10.95% | -0.0158% | 77,285.3 | $3,125.8M | 12 |
| 2026-11-03 13:00 | 0.00125% | 10.95% | -0.0334% | 77,468.8 | $3,095.0M | 12 |
| 2026-11-03 12:00 | 0.00125% | 10.95% | -0.0239% | 77,282.8 | $3,086.8M | 12 |
| 2026-11-03 11:00 | 0.00125% | 10.95% | -0.0291% | 77,125.5 | $3,073.7M | 12 |
| 2026-11-03 10:00 | 0.00125% | 10.95% | -0.0344% | 77,011.2 | $3,053.7M | 12 |
| 2026-11-03 09:00 | 0.00125% | 10.95% | -0.0324% | 76,880.7 | $3,063.2M | 12 |
| 2026-11-03 08:00 | 0.00125% | 10.95% | -0.0367% | 76,637.2 | $3,063.6M | 12 |
| 2026-11-03 07:00 | 0.00125% | 10.95% | -0.0269% | 76,735 | $3,072.0M | 12 |
| 2026-11-03 06:00 | 0.00125% | 10.95% | -0.0282% | 76,597.2 | $3,083.9M | 12 |
| 2026-11-03 05:00 | 0.00125% | 10.95% | -0.0169% | 76,750.2 | $3,135.9M | 12 |
| 2026-11-03 04:00 | 0.00125% | 10.95% | -0.0209% | 76,926.8 | $3,153.6M | 12 |
| 2026-11-03 03:00 | 0.00125% | 10.95% | -0.0153% | 76,833.5 | $3,153.1M | 12 |
| 2026-11-03 02:00 | 0.00125% | 10.95% | -0.0074% | 76,954.8 | $3,174.8M | 12 |
| 2026-11-03 01:00 | 0.00125% | 10.95% | -0.0063% | 77,182.6 | $3,181.7M | 12 |
| 2026-11-03 00:00 | 0.00125% | 10.95% | -0.0127% | 76,995.9 | $3,184.9M | 12 |
| 2026-11-02 23:00 | 0.00125% | 10.95% | -0.0116% | 76,808.2 | $3,182.3M | 12 |
| 2026-11-02 22:00 | 0.00125% | 10.95% | -0.0016% | 76,886.8 | $3,221.6M | 12 |
| 2026-11-02 21:00 | 0.00125% | 10.95% | -0.0070% | 76,859.2 | $3,235.6M | 12 |
| 2026-11-02 20:00 | 0.00125% | 10.95% | -0.0115% | 76,969.9 | $3,217.8M | 12 |
| 2026-11-02 19:00 | 0.00125% | 10.95% | -0.0277% | 76,873.7 | $3,173.4M | 12 |
| 2026-11-02 18:00 | 0.00125% | 10.95% | -0.0308% | 77,074 | $3,167.1M | 12 |
The JSON
{
"symbol": "BTC",
"order": "desc",
"data_from": "2026-04-02T18:00:00+00:00",
"items": [
{
"ts": "2026-11-03T17:00:00+00:00",
"funding_rate": 1.2500000000000002e-05,
"funding_rate_annualized": 0.10950000000000001,
"premium": -0.00017679877,
"mid_price": 77696.9,
"open_interest": 40997.19866800001,
"open_interest_usd": 3185355245.18773,
"n_snapshots": 10
},
{
"ts": "2026-11-03T16:00:00+00:00",
"funding_rate": 1.2500000000000004e-05,
"funding_rate_annualized": 0.10950000000000004,
"premium": -0.00027939513333333335,
"mid_price": 77543.08333333333,
"open_interest": 40722.16002666667,
"open_interest_usd": 3157721848.461149,
"n_snapshots": 12
}
],
"nextCursor": "eyJhIjoiQlRDIiwiayI6Imhpc3RvcnkiLCJvIjoiZGVzYyIsInQiOiIyMDI2LTExLTAyIDE4OjAwOjAwIn0"
}
The JSON trimmed to its first 2 of 24 items.
BTC's history starts at data_from 2026-04-02.
Ask it in Claude or ChatGPT
The MCP tool hl_market answers with view funding_rates, 1 credit a call: the board, or one perp's hours.
“Which Hyperliquid perps pay the highest funding right now?”
vike-data call hl_market --args '{"view": "funding_rates", "sort": "rate"}'
“What was BTC's funding rate every hour today?”
vike-data call hl_market --args '{"view": "funding_rates", "symbol": "BTC", "limit": 24}'
Connect your client: Connect in a minute →
Build a funding request
Pick a route; its parameters come with sample values and the call is rebuilt as you type.
Funding beside close, open interest and premium
Many coins in one call, one row per coin and hour.
Funding beside close, open interest and premium, many coins at once
- Route
GET /v1/hyperliquid/symbols/hourly- CLI
vike-data hl market- MCP
hl_market· 1 credit- Cost
- 1 request of the hourly limit
Hourly close + open interest + funding rate + premium, many assets at once.
Rows are arrays in columns order, not objects — a 120-day 10-asset window is 28,800 of them.
Parameters
| Parameter | In | Description |
|---|---|---|
symbolsrequired | query | Comma-separated perp tickers, e.g. BTC,ETH,SOL. Max 64 |
days | query | Window length back from end. Default 120, range 1–400 |
start | query | ISO-8601 UTC or epoch s/ms, inclusive. Overrides days |
end | query | ISO-8601 UTC or epoch s/ms, exclusive. Defaults to now |
Call it
curl -H "X-API-KEY: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC&days=2"
import os, requests
r = requests.get(
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC&days=2",
headers={"X-API-KEY": os.environ["VIKE_API_KEY"]},
)
print(r.json())
vike-data hl market --view hourly --symbols BTC --days 2
# any MCP client; or from the terminal:
vike-data call hl_market --args '{"view": "hourly", "symbols": "BTC", "days": 2}'
What one wallet paid or received in funding
Every funding payment of one wallet, per coin and hour, newest first.
What one wallet paid or received in funding
- Route
GET /v1/hyperliquid/wallets/{address}/funding- CLI
vike-data hl wallet-activity- MCP
hl_wallet_activity· 1 credit- Cost
- 1 request of the hourly limit
Funding paid and received by one wallet.
Parameters
| Parameter | In | Description |
|---|---|---|
addressrequired | path | The wallet |
symbol | query | HL ticker |
start | query | ISO-8601 UTC bounds |
end | query | ISO-8601 UTC bounds |
limit | query | Default 100, max 5000 |
cursor | query | Keyset cursor |
Call it
curl -H "X-API-KEY: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding?limit=100"
import os, requests
r = requests.get(
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding?limit=100",
headers={"X-API-KEY": os.environ["VIKE_API_KEY"]},
)
print(r.json())
vike-data hl wallet-activity 0x25773676902085225ae5751075e4161369334897 --view funding
# any MCP client; or from the terminal:
vike-data call hl_wallet_activity --args '{"view": "funding", "address": "0x25773676902085225ae5751075e4161369334897"}'
Every perp's funding live, every 5 minutes
Subscribe once: each perp's funding rate, premium, mid price and open interest arrive with each 5-minute reading.
hl.funding on wss://stream.vike.io/v1/stream/hl
- Channel
hl.funding- Filter
coin: a list of up to 200 coins; none = every perp- Every
- 5 minutes, one event per perp
Subscribe
import json, os
from websockets.sync.client import connect # websockets >= 14
with connect("wss://stream.vike.io/v1/stream/hl",
additional_headers={"X-API-KEY": os.environ["VIKE_API_KEY"]}) as ws:
ws.send(json.dumps({"action": "subscribe", "id": "funding", "channel": "hl.funding",
"filter": {"coin": ["BTC", "ETH", "HYPE"]}}))
for message in ws:
frame = json.loads(message)
if frame["type"] == "ping":
ws.send(json.dumps({"action": "pong"}))
elif frame["type"] == "event":
e = frame["event"]
d = e["data"]
print(d["snapshot_ts"], e["subject"]["symbol"], "funding", d["funding_rate"], "premium", d["premium"],
"OI $", d["open_interest_usd"])
vike-data stream hl --channel hl.funding --filter coin=BTC,ETH,HYPE # prints NDJSON, reconnects by itself
{
"action": "subscribe",
"id": "funding",
"channel": "hl.funding",
"filter": {
"coin": [
"BTC",
"ETH",
"HYPE"
]
}
}
{
"schema": "vike.event.v1",
"event_id": "hl.funding:BTC:1793613060",
"source": "hl.funding",
"kind": "funding",
"ts": "2026-11-02T09:51:00.000Z",
"cursor": "1793613060000000-BTC-1793613060",
"chain": "hyperliquid",
"subject": {
"symbol": "BTC"
},
"data": {
"snapshot_ts": "2026-11-02T09:51:00Z",
"funding_rate": 1.25e-05,
"premium": -0.0002993843,
"mid_price": 78137.5,
"open_interest": 40225.25342,
"open_interest_usd": 3143100739.11
},
"labels": {}
}
Every channel, its filters and the connection rules: the WebSocket reference →
See it on a chart
Funding rate, open interest and order flow
The same funding readings charted per coin, beside open interest and order flow.
Funding questions, answered with code
Each with the sentence to ask your AI instead. Every block was run against the live API on 2026-11-03.
What is the funding-rate history of a Hyperliquid coin, with premium and open interest?
Hourly funding rate, premium and open interest per Hyperliquid perp, up to 400 days back and 64 coins per call.
- Uses
/symbols/hourly,/wallets/{…}/funding- Verified
- live API, 2026-11-03: 5 calls, all 200
The code
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# 30 days of hourly BTC close, open interest, funding rate and premium
r = requests.get(
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC&days=30",
headers={"X-API-Key": API_KEY},
)
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# one day of BTC rows as objects
r = requests.get(
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC&days=1",
headers={"X-API-Key": API_KEY},
)
# then: jq '. as $d | $d.rows[] | [$d.columns, .] | transpose | map({(.[0]): .[1]}) | add'
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# BTC funding as a yearly percentage and premium in basis points, hour by hour
r = requests.get(
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC&days=30",
headers={"X-API-Key": API_KEY},
)
# then: jq '[.rows[] | select(.[4] != null) | {ts: .[0], close: .[2], funding_apr_pct: (.[4] * 24 * 365 * 100), premium_bps: (.[5] * 10000)}]'
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# BTC and ETH, hourly, from 2026-01-01
r = requests.get(
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC,ETH&start=2026-01-01T00:00:00Z",
headers={"X-API-Key": API_KEY},
)
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# funding payments of one wallet on BTC; negative payment_usd = the wallet paid
r = requests.get(
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding?symbol=BTC&limit=100",
headers={"X-API-Key": API_KEY},
)
Which Hyperliquid coin had the best funding carry over the last 30 days?
Ask /v1/hyperliquid/symbols/hourly for up to 64 perps with days=30 and rank them by mean hourly funding_rate; the share of positive hours says how steady the carry was.
- Uses
/ohlcv/latest,/symbols/hourly,/wallets/{…}/funding- Verified
- live API, 2026-11-03: 4 calls, all 200
The code
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# 30 days of hourly funding for six perps, ranked by mean hourly rate, with the share of hours it was positive
r = requests.get(
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC,ETH,SOL,HYPE,XRP,DOGE&days=30",
headers={"X-API-Key": API_KEY},
)
# then: jq '.rows | group_by(.[1]) | map({symbol: .[0][1], hours: length, mean_hourly: ([.[][4] | select(. != null)] | add / length), positive_share: (([.[][4] | select(. != null and . > 0)] | length) / length)}) | map(.apr_pct = .mean_hourly * 24 * 365 * 100) | sort_by(-.mean_hourly)'
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# comma-separated core perp tickers that traded in the last hour
r = requests.get(
"https://data.vike.io/v1/hyperliquid/ohlcv/latest?dex=HL",
headers={"X-API-Key": API_KEY},
)
# then: jq -r '[.candles[] | select(.symbol | startswith("#") | not) | .symbol] | join(",")'
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# September 2026 only
r = requests.get(
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC,ETH,SOL,HYPE,XRP,DOGE&start=2026-09-01T00:00:00Z&end=2026-10-01T00:00:00Z",
headers={"X-API-Key": API_KEY},
)
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# the funding one wallet paid or received; negative payment_usd = the wallet paid
r = requests.get(
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding?limit=100",
headers={"X-API-Key": API_KEY},
)
How much funding did this wallet pay or receive, per market?
Sum payment_usd by symbol for a wallet's funding per market: /wallets/{address}/funding returns one row per hourly funding payment with symbol and signed payment_usd (negative means the wallet paid).
- Uses
/wallets/{…}/funding- Verified
- live API, 2026-11-03: 5 calls, all 200
The code
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# the wallet's newest funding payments
r = requests.get(
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding?limit=5",
headers={"X-API-Key": API_KEY},
)
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# net funding by symbol over the newest 5000 payments
r = requests.get(
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding?limit=5000",
headers={"X-API-Key": API_KEY},
)
# then: jq '{more: (.nextCursor != null), by_symbol: (.items | group_by(.symbol) | map({symbol: .[0].symbol, hours: length, payment_usd: (map(.payment_usd) | add)}) | sort_by(.payment_usd))}'
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# BTC funding paid and received in September 2026
r = requests.get(
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding?symbol=BTC&start=2026-09-01T00:00:00Z&end=2026-10-01T00:00:00Z&limit=5000",
headers={"X-API-Key": API_KEY},
)
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# the next 5000 payments: NEXT is the first page's nextCursor
first = requests.get(
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding?limit=5000",
headers={"X-API-Key": API_KEY},
).json()
r = requests.get(
"https://data.vike.io/v1/hyperliquid/wallets/0x25773676902085225ae5751075e4161369334897/funding",
params={"limit": 5000, "cursor": first["nextCursor"]},
headers={"X-API-Key": API_KEY},
)
What is the basis between HYPE spot and HYPE perp on Hyperliquid?
Pull hourly HYPE candles twice from /v1/hyperliquid/ohlcv, once with market=spot and once for the perp, and divide the closes; /symbols/hourly adds the venue's premium and funding for the same hours.
- Uses
/ohlcv,/symbols/hourly- Verified
- live API, 2026-11-03: 7 calls, all 200
The code
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# 24 hourly HYPE spot candles
r = requests.get(
"https://data.vike.io/v1/hyperliquid/ohlcv?symbol=HYPE&market=spot&interval=1h&limit=24",
headers={"X-API-Key": API_KEY},
)
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# the same 24 hours of the HYPE perp
r = requests.get(
"https://data.vike.io/v1/hyperliquid/ohlcv?symbol=HYPE&interval=1h&limit=24",
headers={"X-API-Key": API_KEY},
)
import os
import requests
H = {"X-API-Key": os.environ["VIKE_API_KEY"]}
URL = "https://data.vike.io/v1/hyperliquid/ohlcv"
spot = requests.get(URL, params={"symbol": "HYPE", "market": "spot", "interval": "1h", "limit": 24}, headers=H, timeout=60).json()
perp = requests.get(URL, params={"symbol": "HYPE", "interval": "1h", "limit": 24}, headers=H, timeout=60).json()
spot_close = {c["ts"]: c["close"] for c in spot["candles"]}
for c in perp["candles"]:
if c["ts"] in spot_close:
print(c["ts"], round((c["close"] / spot_close[c["ts"]] - 1) * 1e4, 2), "bps")
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# HYPE hourly close, open interest, funding rate and premium for the last day
r = requests.get(
"https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=HYPE&days=1",
headers={"X-API-Key": API_KEY},
)
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# 720 hourly HYPE spot candles from a pinned start; repeat without market=spot for the perp
r = requests.get(
"https://data.vike.io/v1/hyperliquid/ohlcv?symbol=HYPE&market=spot&interval=1h&start=2026-09-24T00:00:00Z&limit=720",
headers={"X-API-Key": API_KEY},
)
import os
import requests
API_KEY = os.environ["VIKE_API_KEY"] # your key, read from the environment
# the last 240 one-minute HYPE spot candles
r = requests.get(
"https://data.vike.io/v1/hyperliquid/ohlcv?symbol=HYPE&market=spot&interval=1m&limit=240",
headers={"X-API-Key": API_KEY},
)
Hyperliquid funding rate FAQ
What is the Hyperliquid funding rate right now?
GET /v1/hyperliquid/funding-rates answers it for every perp the route lists: each one's newest reading, taken every 5 minutes, ranked by open interest or by the rate. The table above is a real answer.How often does Hyperliquid pay funding?
funding_rate is the hourly rate as a fraction, funding_rate_annualized is it × 8,760 (24 × 365), simple. A positive rate means longs pay shorts.Where can I get the Hyperliquid funding rate history?
/funding-rates with symbol: one row per hour, the mean of the hour's readings, from data_from (the first hour recorded). /symbols/hourly gives the same funding beside close, open interest and premium for up to 64 coins a call and 400 days back.Is there a free Hyperliquid funding rate API?
How much funding did my wallet pay?
/wallets/{address}/funding lists every funding payment of one wallet, per coin and hour; the study below sums them per market.Can I get Hyperliquid funding rates live?
hl.funding on the WebSocket and every perp's funding rate, premium, mid price and open interest arrive every 5 minutes; filter by coin.