Hyperliquid candles
Query or stream single-market Hyperliquid OHLCV candles over REST, JSON-RPC, and WebSocket using the Dwellir Hyperliquid Index.
Use candles when you need OHLCV data for one Hyperliquid market and one interval. The same candle schema is available over REST, JSON-RPC, and WebSocket:
| Transport | Best for | Endpoint |
|---|---|---|
| REST | Simple HTTP lookups for a known candle timestamp | GET /v1/candles |
| JSON-RPC | Clients that prefer method-based RPC envelopes | POST /jsonrpc with ohlcv_getCandle |
| WebSocket | Live candle state updates after subscribing | wss://api-hyperliquid-index.n.dwellir.com/YOUR_API_KEY |
Historical coverage start
Historical candle lookups are intended to cover history back to 2025-07-27T08:00:00Z, which is the first available
node_fills_by_block archive hour.
WebSocket is live only
The WebSocket surface is not a historical replay API. It streams live candle updates after a successful subscription, including in-progress candles before they finalize.
Parameters
| Field | Required | Description |
|---|---|---|
market | yes | Hyperliquid market symbol. See market types for perp, spot, and HIP-3 formats. |
interval | yes | Candle interval, one of 1s, 1m, 5m. |
time | REST and JSON-RPC only | Candle bucket-open timestamp in ISO-8601 UTC, for example 2026-03-30T23:00:00Z. |
type | WebSocket only | Must be subscribe for the WebSocket subscribe message. |
REST
Use REST when you want a simple HTTP lookup for one completed candle.
GET https://api-hyperliquid-index.n.dwellir.com/YOUR_API_KEY/v1/candlescurl "https://api-hyperliquid-index.n.dwellir.com/YOUR_API_KEY/v1/candles?market=BTC&interval=1m&time=2026-03-30T23:00:00Z"REST returns the candle object directly. Missing sparse buckets return 404.
JSON-RPC
Use JSON-RPC when your client already expects RPC envelopes or method-based request logging.
POST https://api-hyperliquid-index.n.dwellir.com/YOUR_API_KEY/jsonrpcMethod:
ohlcv_getCandlecurl "https://api-hyperliquid-index.n.dwellir.com/YOUR_API_KEY/jsonrpc" \
-H "content-type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "ohlcv_getCandle",
"params": {
"market": "BTC",
"interval": "1m",
"time": "2026-03-30T23:00:00Z"
}
}'JSON-RPC returns the candle object under result. Missing sparse buckets return an error with code: -32004.
WebSocket
Use WebSocket when you want live candle updates pushed to your client for one market and interval.
wss://api-hyperliquid-index.n.dwellir.com/YOUR_API_KEYIf your client expects an explicit WebSocket path, this compatible form also works:
wss://api-hyperliquid-index.n.dwellir.com/YOUR_API_KEY/wsSend a subscribe message:
{ "type": "subscribe", "market": "BTC", "interval": "1m" }The stream includes both unfinalized updates and the final closed candle state. Repeated messages with the same cursor are successive states of the same candle.
If you need one interval-wide stream for all active markets, use allCandles.
Candle Field Reference
| Field | Description |
|---|---|
s | Hyperliquid market symbol, for example BTC, @142, or hyna:ETH. |
i | Candle interval, one of 1s, 1m, 5m. |
t | Candle open time in Unix milliseconds. |
T | Candle close time in Unix milliseconds. |
o | First trade price in the interval. |
h | Highest trade price in the interval. |
l | Lowest trade price in the interval. |
c | Last trade price in the interval. |
v | Total traded size in base units. |
q | Total traded notional in quote units. |
n | Number of contributing trades. |
x | Candle finalization flag. Historical REST and JSON-RPC lookups return completed candles with x=true; WebSocket updates can be false while the candle is still open. |
Discovering Markets
Use Dwellir's Info Endpoint to find valid market values before querying candles.
Native perp symbols
Call meta. Each entry's name in the universe array is the symbol you need.
curl -X POST 'https://api-hyperliquid-mainnet-info.n.dwellir.com/YOUR_API_KEY/info' \
-H 'Content-Type: application/json' \
-d '{"type":"meta"}'Look for entries like { "name": "BTC", "szDecimals": 5, "maxLeverage": 40 } and use market=BTC.
Spot symbols
Call spotMeta. Each pair in the universe array has an index field. Prefix it with @ to get the market symbol.
curl -X POST 'https://api-hyperliquid-mainnet-info.n.dwellir.com/YOUR_API_KEY/info' \
-H 'Content-Type: application/json' \
-d '{"type":"spotMeta"}'To find a specific token's spot pair, cross-reference the tokens and universe arrays:
import requests
data = requests.post(
"https://api-hyperliquid-mainnet-info.n.dwellir.com/YOUR_API_KEY/info",
json={"type": "spotMeta"},
).json()
tokens = {t["index"]: t for t in data["tokens"]}
for pair in data["universe"]:
t0, t1 = pair["tokens"]
if "BTC" in tokens[t0]["name"].upper():
symbol = pair["name"] if pair.get("isCanonical") else f"@{pair['index']}"
print(f"Use market={symbol}") # market=@142HIP-3 perpDex symbols
Call perpDexs. Each DEX has an assetToStreamingOiCap array of [symbol, oiCap] pairs. The symbol is what you pass as market.
curl -X POST 'https://api-hyperliquid-mainnet-info.n.dwellir.com/YOUR_API_KEY/info' \
-H 'Content-Type: application/json' \
-d '{"type":"perpDexs"}'Some HIP-3 DEXs currently available:
| Prefix | Name | Example assets |
|---|---|---|
xyz | XYZ | xyz:AAPL, xyz:GOLD |
flx | Felix Exchange | flx:COPPER, flx:COIN |
hyna | HyENA | hyna:BTC, hyna:ETH |
km | Markets by Kinetiq | km:AAPL, km:BMNR |
cash | dreamcash | cash:EWY, cash:GOLD |
para | Paragon | para:TOTAL2, para:OTHERS |
Behavior
- REST and JSON-RPC return one completed candle per request.
timeis the open time of the candle bucket, not an arbitrary point inside a range.- WebSocket streams live candle state after subscribe.
- Candle payloads use the same
s i t T o h l c v q n xschema across all three transports. - Candles are sparse. Empty intervals are omitted instead of forward-filled.
Fetching Multiple Historical Candles
Use the time parameter as the iterator. For 1m, advance by one minute per request. For 5m, advance by five minutes. For 1s, advance by one second.
For high-throughput backfills, see the archive backfill guide. It covers HTTP/2, worker pools, sticky-session discovery, rate limiting, sparse bucket handling, and atomic resume state.
When to Use Each Transport
| Need | Recommendation |
|---|---|
| One known historical candle | REST |
| RPC-style envelopes and method logs | JSON-RPC |
| Live updates for one market | WebSocket |
| Live updates across all active markets | allCandles |
| Full archive as a ready-made file | Full-history exports |
OHLCV Data - Aggregated Candlestick Data
Access Hyperliquid OHLCV candles over REST, JSON-RPC, and WebSocket with sparse 1s, 1m, and 5m intervals for all Hyperliquid markets.
allCandles
Subscribe to live Hyperliquid OHLCV candle updates for all active markets in one WebSocket stream, with response billing based on emitted candle objects.