Hyperliquid Data Layer API
Real-time liquidation tracking, whale monitoring, smart money signals, and position analytics.
https://api.moondev.comCopy-paste this to test your API key instantly:
curl "https://api.moondev.com/api/ticks/btc.json?api_key=YOUR_API_KEY"Or in Python:
import requests
data = requests.get(
"https://api.moondev.com/api/ticks/btc.json",
headers={"X-API-Key": "YOUR_API_KEY"}
).json()
print(f"BTC Price: ${data['latest_price']:,.2f}")| Error | Cause | Fix |
|---|---|---|
| 401 Unauthorized | Missing or invalid API key | Add ?api_key=YOUR_KEY to URL or use X-API-Key header |
| 404 Not Found | Uppercase symbol (BTC.json) | Use lowercase: btc.json not BTC.json |
| 404 Not Found | Missing .json extension | Add .json: /api/ticks/btc.json |
Moon Dev AI
NEW!Proprietary Trading AI - 5 Years of Quant Knowledge
Black box. Proprietary model trained on 5 years of quantitative trading research, backtesting strategies, and real trading experience. If you're an algorithmic trader using any other AI, you're cooked.
Proprietary model. No details. Just results.
RBI system, backtesting, bot building, real trading edge.
Not a generic chatbot. Built by a trader, for traders.
🔗 Endpoints
| Endpoint | Auth | Description |
|---|---|---|
| GET /api/ai/health | No | Health check |
| POST /api/ai/v1/chat/completions | Yes | Chat completions |
| POST /api/ai/chat | Yes | Simple chat |
🎯 Quick Test
Verify the AI is live:
curl https://api.moondev.com/api/ai/health- Base URL:
https://api.moondev.com/api/ai/v1 - Model:
moondev-ai(always use this exact model name) - Auth Header:
Authorization: Bearer YOUR_API_KEY
💻 cURL
curl -X POST "https://api.moondev.com/api/ai/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "moondev-ai",
"messages": [{"role": "user", "content": "How do I build a trading bot?"}],
"max_tokens": 500
}'🐍 Python (requests)
import requests
response = requests.post(
"https://api.moondev.com/api/ai/v1/chat/completions",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
json={
"model": "moondev-ai",
"messages": [{"role": "user", "content": "What is the RBI system?"}],
"max_tokens": 500
}
)
print(response.json()["choices"][0]["message"]["content"])🐍 Python (OpenAI SDK)
If you already use the OpenAI SDK, just change the base_url and api_key:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.moondev.com/api/ai/v1"
)
response = client.chat.completions.create(
model="moondev-ai",
messages=[{"role": "user", "content": "What is the RBI system?"}],
max_tokens=500
)
print(response.choices[0].message.content)📤 Response
{
"id": "gen-xxx",
"choices": [
{
"message": {
"role": "assistant",
"content": "..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1289,
"completion_tokens": 500,
"total_tokens": 1789
}
}- Context Length: 200,000 tokens
- Model Name:
moondev-ai(required in request body) - Auth:
Authorization: Bearer YOUR_API_KEYheader
If you're trading with ChatGPT or any generic AI, you're bringing a butter knife to a sword fight. Moon Dev AI was built from the trenches - 5 years of live trading, thousands of backtests, hundreds of bots. No other AI has this edge.
Authentication
All /api/* endpoints require authentication via API key.Need an API key?
Method 1: Query Parameter
?api_key=YOUR_API_KEYMethod 2: Header (Recommended)
X-API-Key: YOUR_API_KEYError Response (401)
{
"error": "Unauthorized",
"message": "Valid API key required. Use ?api_key=YOUR_KEY or X-API-Key header"
}Rate Limits & Caching
| Setting | Value |
|---|---|
| Rate Limit | 60 requests/second sustained, burst up to 200 |
| Response Format | JSON (Content-Type: application/json) |
Health & Info
| Endpoint | Auth | Description |
|---|---|---|
| GET /health | No | Health check |
| GET / | No | API info and endpoint listing |
{"status": "ok", "service": "hyperliquid-data-layer"}Market Data
Drop-in replacements for Hyperliquid API calls. All requests go through Moon Dev's local node.
These endpoints replace metaAndAssetCtxs, l2Book, clearinghouseState, userFills, and candleSnapshot.
Prices (All 228 Coins)
| Endpoint | Description |
|---|---|
| GET /api/prices | All prices, funding rates, and OI for 228 coins (replaces metaAndAssetCtxs) |
| GET /api/price/{coin} | Quick single-coin price with bid/ask/spread (e.g., /api/price/BTC) |
Orderbook
| Endpoint | Description |
|---|---|
| GET /api/orderbook/{coin} | L2 orderbook with ~20 levels each side (replaces l2Book) |
Account & Fills
| Endpoint | Description |
|---|---|
| GET /api/account/{address} | Full account state for any wallet (replaces clearinghouseState) |
| GET /api/fills/{address}?limit=N | Trade fills in Hyperliquid-compatible format (replaces userFills) |
Candles (OHLCV)
| Endpoint | Description |
|---|---|
| GET /api/candles/{coin}?interval=1h | OHLCV candles (intervals: 1m, 5m, 15m, 1h, 4h, 1d) |
All coin symbols are case-insensitive (e.g., BTC, btc, Ada all work).
Candle intervals: 1m, 5m, 15m, 1h, 4h, 1d. Optional query params: start_time and end_time (millisecond timestamps).
Response Example (/api/prices)
{
"count": 228,
"timestamp": "2026-01-14T12:00:00Z",
"prices": {
"BTC": "94500.50",
"ETH": "3250.25",
"SOL": "185.30"
},
"funding_rates": {
"BTC": "0.0001",
"ETH": "0.00008"
},
"open_interest": {
"BTC": "125000.5",
"ETH": "850000.2"
}
}Response Example (/api/price/BTC)
{
"coin": "BTC",
"timestamp": "2026-01-29T15:37:44Z",
"best_bid": "85324.0",
"best_ask": "85325.0",
"best_bid_size": "0.00036",
"best_ask_size": "5.7609",
"mid_price": "85324.5",
"spread": "1.0",
"spread_bps": 0.12
}Response Example (/api/orderbook/BTC)
{
"symbol": "BTC",
"best_bid": "94500.00",
"best_ask": "94501.00",
"mid_price": "94500.50",
"spread_bps": "0.11",
"bid_depth": 20,
"ask_depth": 20,
"levels": [
[
{"px": "94500.0", "sz": "2.5"},
{"px": "94499.0", "sz": "1.2"}
],
[
{"px": "94501.0", "sz": "1.8"},
{"px": "94502.0", "sz": "3.1"}
]
]
}Response Example (/api/candles/BTC?interval=1h)
{
"coin": "BTC",
"interval": "1h",
"start_time": 1738166257000,
"end_time": 1738252257000,
"count": 72,
"candles": [
{
"timestamp": 1738166400000,
"open": "85234.5",
"high": "85890.2",
"low": "85100.0",
"close": "85654.3",
"volume": 150.5,
"trades": 1234
}
]
}Migration Cheatsheet
| Old Hyperliquid Call | New Moon Dev API |
|---|---|
| {"type": "metaAndAssetCtxs"} | GET /api/prices |
| {"type": "l2Book", "coin": "BTC"} | GET /api/orderbook/BTC |
| {"type": "clearinghouseState", "user": "0x..."} | GET /api/account/0x... |
| {"type": "userFills", "user": "0x..."} | GET /api/fills/0x... |
| {"type": "candleSnapshot", ...} | GET /api/candles/BTC?interval=1h |
Python Example
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.moondev.com"
headers = {"X-API-Key": API_KEY}
# Get all prices (replaces metaAndAssetCtxs)
prices = requests.get(f"{BASE_URL}/api/prices", headers=headers).json()
print(f"BTC: ${prices['prices']['BTC']}")
print(f"Loaded {prices['count']} coins")
# Quick price check
btc = requests.get(f"{BASE_URL}/api/price/BTC", headers=headers).json()
print(f"Mid: ${btc['mid_price']} | Spread: {btc['spread_bps']} bps")
# Get orderbook (replaces l2Book)
book = requests.get(f"{BASE_URL}/api/orderbook/BTC", headers=headers).json()
print(f"Best Bid: ${book['best_bid']} | Best Ask: ${book['best_ask']}")
# Get account state (replaces clearinghouseState)
wallet = "0x1234567890abcdef..."
account = requests.get(f"{BASE_URL}/api/account/{wallet}", headers=headers).json()
print(f"Account Value: ${account['marginSummary']['accountValue']}")
# Get candles
candles = requests.get(
f"{BASE_URL}/api/candles/BTC?interval=1h",
headers=headers
).json()
print(f"Latest close: ${candles[-1]['c']}")Core Data
| Endpoint | Description |
|---|---|
| GET /api/positions.json | Top 50 positions across ALL symbols — crypto + HIP3 combined (1s updates) |
| GET /api/positions_crypto.json | Top 50 positions — crypto perps only (BTC, ETH, SOL, …) |
| GET /api/positions_hip3.json | Top 50 positions — HIP3 only (xyz:GOLD, cash:USA500, …) |
| GET /api/positions/all.json | All 182 symbols with top 50 positions each — combined (90s updates) |
| GET /api/positions/all_crypto.json | All 134 crypto symbols with top 50 positions each |
| GET /api/positions/all_hip3.json | All 48 HIP3 symbols with top 50 positions each |
| GET /api/whales.json | Recent whale trades ($25k+, buys & sells) |
| GET /api/buyers.json | Recent buyers only ($5k+, HYPE/SOL/XRP/ETH) |
| GET /api/depositors.json | All Hyperliquid depositors - canonical address list |
| GET /api/whale_addresses.txt | Plain text list of whale addresses |
Crypto / HIP3 Position Separation
Position data is now available in separate crypto and HIP3 feeds in addition to the existing combined files. Classification rule: any coin with a : in its name (e.g. xyz:GOLD, cash:USA500) is HIP3. All others (e.g. BTC, ETH) are crypto.
| File | Positions | Symbols |
|---|---|---|
| positions.json (combined) | ~4,477 | 182 |
| positions_crypto.json | ~3,516 | 134 |
| positions_hip3.json | ~961 | 48 |
Update frequency: Top-50 files (positions*.json) update every ~1s via priority scan. Per-symbol files (all*.json) update every ~90s on full scan. Original endpoints are unchanged — fully backward compatible.
Response Example (positions_crypto.json)
{
"updated_at": "2026-03-03T14:52:38.731Z",
"total_positions": 3516,
"total_longs": 50,
"total_shorts": 50,
"min_position_value": 10000,
"price_source": "websocket",
"longs": [
{
"address": "0x...",
"coin": "BTC",
"value": 1250000.50,
"entry_price": 85000.0,
"current_price": 86500.0,
"liq_price": 82000.0,
"distance_pct": 5.20,
"leverage": 10.0,
"size": 14.705882,
"pnl": 22058.82
}
],
"shorts": [ ... ]
}longs and shorts are sorted by distance_pct ascending (closest to liquidation first). Each array contains up to 50 positions.
Response Example (all_crypto.json)
{
"updated_at": "2026-03-03T14:51:42.000Z",
"min_position_value": 10000,
"total_symbols": 134,
"symbols": {
"BTC": {
"total_positions": 892,
"total_longs": 510,
"total_shorts": 382,
"total_long_value": 450000000.00,
"total_short_value": 280000000.00,
"longs": [ ... ],
"shorts": [ ... ]
},
"ETH": { ... }
}
}Symbols are sorted by total_positions descending. Each symbol contains up to 50 longs + 50 shorts.
Whale Watcher Expansion: 75 Symbols
Whale discovery now watches 75 symbols across native perps and HIP-3 dexes (previously 3). Whale threshold: $25,000+ per trade.
| Category | Count | Examples |
|---|---|---|
| Always-watch (native perps) | 7 | BTC, ETH, SOL, HYPE, XRP, ZEC, FARTCOIN |
| Top volume (native perps) | 23 | PAXG, PUMP, SUI, DOGE, ASTER, LINK, XMR, MON, BNB, kPEPE, UNI, ENA, ... |
| HIP-3 Commodities | 14 | xyz:SILVER, xyz:GOLD, xyz:COPPER, xyz:CL, xyz:NATGAS, flx:OIL, ... |
| HIP-3 Indices | 8 | xyz:XYZ100, cash:USA500, km:USTECH, vntl:MAG7, vntl:SEMIS, vntl:ROBOT |
| HIP-3 Stocks | 18 | xyz:TSLA, xyz:NVDA, xyz:GOOGL, xyz:PLTR, xyz:META, xyz:AAPL, cash:NVDA, ... |
| HIP-3 FX | 2 | xyz:EUR, xyz:JPY |
| HIP-3 Pre-IPO | 3 | vntl:SPACEX, vntl:OPENAI, vntl:ANTHROPIC |
HIP-3 perps live on separate dexes within Hyperliquid. Symbol format: dex:NAME (e.g., xyz:SILVER, cash:USA500). Whale addresses discovered from HIP-3 trades are added to the same whale address pool.
Position Scanner: 200 Threads
All 22,500+ discovered whale wallets are scanned continuously. Position tracking is wallet-based — calling clearinghouseState for a wallet returns all positions across both native perps and HIP-3 markets automatically. No per-symbol config needed.
- 200 scan threads (full wallet scans)
- 30 priority threads (fast updates for top positions)
- Adding more watched symbols increases the whale address pool over time, not the per-wallet scan cost
Response Example (depositors.json)
{
"updated_at": "2026-01-14T12:00:00Z",
"stats": {
"total_count": 125000,
"total_deposited": 2500000000
},
"depositors": [
{
"address": "0x1234567890abcdef...",
"amount": 50000,
"timestamp": "2026-01-14T11:30:00Z"
}
]
}The depositors endpoint contains every wallet that has ever bridged USDC to Hyperliquid - the canonical address list.
Tick Data
Historical tick data for all 129 tracked symbols.
⚠️ IMPORTANT: Symbols MUST be lowercase. BTC.json returns 404. Use btc.json
Available symbols (lowercase only):
0g, 2z, aave, ace, ada, aero, aixbt, apex, apt, ar, arb, aster, atom, avax, avnt, axs, banana, bch, bera, bio, blast, blur, bnb, btc, cake, cc, celo, crv, dash, doge, dot, eigen, ena, eth, ethfi, fartcoin, fet, fil, fogo, gas, grass, hbar, hemi, hmstr, hype, icp, init, inj, io, ip, jto, jup, kaito, layer, ldo, linea, link, lit, ltc, manta, me, mega, melania, meme, merl, met, mina, mnt, mon, moodeng, morpho, move, near, ondo, op, ordi, paxg, pendle, pengu, pol, popcat, prompt, pump, purr, pyth, render, resolv, rune, s, saga, sand, sei, skr, sky, sol, spx, stable, stbl, strk, stx, sui, super, syrup, tao, tia, ton, trump, trx, uni, virtual, vvv, wct, wif, wld, wlfi, xai, xlm, xmr, xpl, xrp, zec, zen, zerebro, zeta, zk, zro, kbonk, kpepe, kshib
| Endpoint | Example | Description |
|---|---|---|
| GET /api/ticks/{symbol}.json | /api/ticks/btc.json | Current/latest ticks |
| GET /api/ticks/{symbol}_10m.json | /api/ticks/btc_10m.json | Last 10 minutes |
| GET /api/ticks/{symbol}_1h.json | /api/ticks/btc_1h.json | Last 1 hour |
| GET /api/ticks/{symbol}_4h.json | /api/ticks/btc_4h.json | Last 4 hours |
| GET /api/ticks/{symbol}_24h.json | /api/ticks/btc_24h.json | Last 24 hours |
| GET /api/ticks/{symbol}_7d.json | /api/ticks/btc_7d.json | Last 7 days |
| GET /api/ticks/latest.json | Latest tick data for all 129 assets | |
| GET /api/ticks/stats.json | Tick collection statistics and metadata |
Replace btc with any of the 129 symbols listed above.
Examples
# Get BTC tick data (last hour)
curl "https://api.moondev.com/api/ticks/btc_1h.json?api_key=YOUR_KEY"
# Get ADA tick data (last 24 hours)
curl "https://api.moondev.com/api/ticks/ada_24h.json?api_key=YOUR_KEY"
# Get TRUMP tick data (last 7 days)
curl "https://api.moondev.com/api/ticks/trump_7d.json?api_key=YOUR_KEY"Response Example (stats.json)
{
"generated_at": "2026-01-29T15:37:44Z",
"symbols": ["0G", "2Z", "AAVE", "ACE", "ADA", "...129 total"],
"collector_stats": {
"ticks_collected": 1552,
"ticks_saved": 1552,
"errors": 0,
"started_at": "2026-01-06T19:03:35Z"
},
"db_size_mb": 0.16,
"symbol_stats": {
"BTC": {
"tick_count": 251,
"min_price": 91950.5,
"max_price": 92296.0,
"last_price": 92256.5
}
}
}Response Example (btc_1h.json)
{
"symbol": "BTC",
"generated_at": "2026-01-06T19:17:38Z",
"duration": "1h",
"tick_count": 251,
"latest_price": 92256.5,
"ticks": [
{"timestamp": 1767726130918, "price": 91950.5, "datetime": "2026-01-06T19:02:10Z"}
]
}Blockchain Events
| Endpoint | Description |
|---|---|
| GET /api/events.json | Real-time decoded blockchain events from Hyperliquid L1 |
{
"updated_at": "2026-01-06T19:17:00Z",
"stats": {
"total_events": 2424,
"events_by_type": {
"Transfer": 1200,
"Swap": 500,
"Approval": 200,
"Deposit": 150,
"Withdrawal": 100
}
},
"recent_events": [
{
"block_number": 23863116,
"tx_hash": "0x...",
"event_type": "Transfer",
"contract": "0x5555555555555555555555555555555555555555",
"timestamp": "2026-01-06T19:17:00Z"
}
]
}Contract Registry
| Endpoint | Description |
|---|---|
| GET /api/contracts.json | Complete registry of Hyperliquid EVM smart contracts |
{
"generated_at": "2026-01-06T18:54:45Z",
"chain": "hyperliquid_evm",
"chain_id": 999,
"total_contracts": 27,
"high_value_count": 12,
"key_contracts": {
"system_treasury": "0x2222222222222222222222222222222222222222",
"whype": "0x5555555555555555555555555555555555555555",
"core_trading": "0x8549fd7ffc092f8366e416e129a622ec060104ea",
"deposit_bridge": "0x5ed8551f90acc6395810d8274b019bf13ef1f696",
"oracle": "0x200302c99d93ae1a024ecf9475df7d71b125efed"
},
"liquidation_contracts": ["0x8549...", "0x2003..."],
"trading_alpha_contracts": ["0x8549...", "0x2180..."],
"contracts": [
{
"address": "0x2222222222222222222222222222222222222222",
"name": "Hyperliquid System Treasury",
"type": "system",
"description": "System treasury holding 954M+ HYPE",
"is_high_value": true,
"monitoring_priority": 10
}
]
}Hyperliquid Liquidations
Real-time liquidation data from Hyperliquid DEX.
| Endpoint | Description |
|---|---|
| GET /api/liquidations/stats.json | Liquidation monitoring statistics |
| GET /api/liquidations/scan_summary.json | Recent liquidation scan results |
| GET /api/liquidations/10m.json | Last 10 minutes |
| GET /api/liquidations/1h.json | Last 1 hour |
| GET /api/liquidations/4h.json | Last 4 hours |
| GET /api/liquidations/12h.json | Last 12 hours |
| GET /api/liquidations/24h.json | Last 24 hours |
| GET /api/liquidations/2d.json | Last 2 days |
| GET /api/liquidations/7d.json | Last 7 days |
| GET /api/liquidations/14d.json | Last 14 days |
| GET /api/liquidations/30d.json | Last 30 days |
{
"scan_timestamp": "2026-01-06T19:00:00Z",
"blocks_scanned": 500,
"total_alerts": 150,
"critical_count": 5,
"warning_count": 25,
"alerts": [
{
"timestamp": "2026-01-06T18:55:00Z",
"block_number": 23863000,
"tx_hash": "0x...",
"contract_name": "Core Trading",
"alert_type": "trade_executed",
"level": "info"
}
]
}Alert Levels: info, warning, critical
HIP3 Liquidations (TradFi Assets)
Real-time liquidation data for traditional finance assets trading on Hyperliquid. Includes stocks, commodities, indices, and forex pairs.
Asset Categories
| Category | Assets | Approx OI |
|---|---|---|
| Stocks | TSLA, NVDA, AAPL, META, MSFT, GOOGL, AMZN, AMD, INTC, PLTR, COIN, HOOD, MSTR, ORCL, MU, NFLX, RIVN, BABA | ~$100M+ |
| Commodities | GOLD, SILVER, COPPER, CL (Oil), NATGAS, URANIUM | ~$125M |
| Indices | XYZ100 (Nasdaq proxy) | ~$120M |
| FX | EUR, JPY | ~$3M |
Get HIP3 Liquidations
| Endpoint | Description |
|---|---|
| GET /api/hip3_liquidations/10m.json | Last 10 minutes |
| GET /api/hip3_liquidations/1h.json | Last 1 hour |
| GET /api/hip3_liquidations/24h.json | Last 24 hours |
| GET /api/hip3_liquidations/7d.json | Last 7 days |
Response Fields
| Field | Type | Description |
|---|---|---|
| symbol | string | Asset symbol (TSLA, GOLD, etc.) |
| side | string | long or short |
| size | number | Position size |
| price | number | Liquidation price |
| value_usd | number | USD value of liquidation |
| category | string | stocks, commodities, indices, or fx |
| timestamp | number | Event timestamp (Unix ms) |
Get HIP3 Liquidation Stats
| Endpoint | Description |
|---|---|
| GET /api/hip3_liquidations/stats.json | Aggregated statistics for HIP3 liquidations |
Stats Response Fields
| Field | Type | Description |
|---|---|---|
| total_count | number | Total liquidation count |
| total_volume | number | Total USD volume liquidated |
| long_count | number | Number of long liquidations |
| short_count | number | Number of short liquidations |
| long_volume | number | USD volume of long liquidations |
| short_volume | number | USD volume of short liquidations |
| by_category | object | Breakdown by category (stocks, commodities, indices, fx) |
| by_symbol | object | Breakdown by individual symbol |
| top_symbols | array | Top symbols by liquidation volume |
Example Request
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_liquidations/1h.jsonPython SDK Usage
from api import MoonDevAPI
api = MoonDevAPI()
# Get HIP3 liquidation stats
stats = api.get_hip3_liquidation_stats()
print(f"Total liquidations: {stats['total_count']}")
print(f"Total volume: ${stats['total_volume']:,.0f}")
# Get HIP3 liquidations for different timeframes
liqs_10m = api.get_hip3_liquidations("10m") # Last 10 minutes
liqs_1h = api.get_hip3_liquidations("1h") # Last 1 hour
liqs_24h = api.get_hip3_liquidations("24h") # Last 24 hours
liqs_7d = api.get_hip3_liquidations("7d") # Last 7 days
# Process liquidation data
for liq in liqs_1h:
print(f"{liq['symbol']} {liq['side'].upper()} ${liq['value_usd']:,.0f} @ ${liq['price']}")Use Cases
- Risk Management - Monitor liquidation activity across traditional finance assets to gauge market stress
- Trading Signals - High liquidation volume in one direction may indicate squeeze potential
- Market Analysis - Track which asset categories are seeing the most liquidation activity
- Alert Systems - Build alerts for large liquidations on specific symbols
Rate limit: 3,600 requests per minute. Data updates in real-time. Historical data available up to 7 days.
Ready to start building? Get your API key here.
HIP3 Market Data (Multi-Dex)
Real-time tick data for 58 traditional finance and crypto assets across 5 different dexes on Hyperliquid via WebSocket streaming.
Dex Breakdown (58 Symbols)
| Dex | Count | Focus | Symbols |
|---|---|---|---|
| xyz | 27 | Stocks, Commodities, FX | AAPL, AMD, AMZN, BABA, CL, COIN, COPPER, CRCL, EUR, GOLD, GOOGL, HOOD, INTC, JPY, META, MSFT, MSTR, MU, NFLX, NVDA, ORCL, PLTR, RIVN, SILVER, SNDK, TSLA, XYZ100 |
| flx | 7 | Stocks, XMR, Commodities | COIN, CRCL, GOLD, OIL, SILVER, TSLA, XMR |
| vntl | 7 | Pre-IPO & Indices | ANTHROPIC, INFOTECH, MAG7, OPENAI, ROBOT, SEMIS, SPACEX |
| hyna | 12 | Crypto | BNB, BTC, DOGE, ETH, FARTCOIN, HYPE, LIGHTER, PUMP, SOL, SUI, XRP, ZEC |
| km | 5 | US Indices | BABA, SMALL2000, TSLA, US500, USTECH |
Category Breakdown
| Category | Count |
|---|---|
| Stocks | 25 |
| Indices | 8 |
| Commodities | 7 |
| FX | 2 |
| Crypto | 13 |
| Pre-IPO | 3 |
Symbol Format: {dex}:{ticker} (e.g., xyz:TSLA, hyna:BTC, km:US500, vntl:OPENAI)
Get All HIP3 Symbols & Prices
| Endpoint | Description |
|---|---|
| GET /api/hip3/meta | Returns all 58 symbols with current prices organized by dex |
| GET /api/hip3/meta?include_delisted=true | Include delisted symbols |
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3/metaGet Tick Collector Stats
| Endpoint | Description |
|---|---|
| GET /api/hip3_ticks/stats.json | Returns tick collector statistics including all 58 symbols |
{
"generated_at": "2026-01-19T14:02:35Z",
"market_type": "HIP3",
"collection_method": "WebSocket Streaming",
"dexes": ["xyz", "flx", "vntl", "hyna", "km"],
"dex_counts": {
"xyz": 27, "flx": 7, "vntl": 7, "hyna": 12, "km": 5
},
"symbols": [
"xyz:TSLA", "xyz:NVDA", "xyz:GOLD", "hyna:BTC", "vntl:OPENAI", ...
],
"symbol_count": 58,
"collector_stats": {
"ticks_received": 4550,
"ticks_saved": 2136
},
"by_category": {
"stocks": 25, "indices": 8, "commodities": 7,
"fx": 2, "crypto": 13, "pre_ipo": 3
}
}Get Individual Symbol Tick Data
| Endpoint | Description |
|---|---|
| GET /api/hip3_ticks/{dex}_{ticker}.json | Returns tick data for a specific symbol |
XYZ Dex (27) - Stocks, Commodities, FX
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/xyz_tsla.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/xyz_nvda.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/xyz_gold.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/xyz_eur.jsonFLX Dex (7) - Stocks, XMR, Commodities
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/flx_xmr.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/flx_gold.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/flx_oil.jsonVNTL Dex (7) - Pre-IPO & Indices
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/vntl_openai.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/vntl_anthropic.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/vntl_spacex.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/vntl_mag7.jsonHYNA Dex (12) - Crypto
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/hyna_btc.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/hyna_eth.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/hyna_hype.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/hyna_sol.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/hyna_fartcoin.jsonKM Dex (5) - US Indices
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/km_us500.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/km_ustech.json
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3_ticks/km_small2000.jsonPython SDK Usage
from api import MoonDevAPI
api = MoonDevAPI()
# Get all HIP3 symbols with prices
meta = api.get_hip3_meta()
for sym in meta['symbols']:
print(f"{sym['dex']}:{sym['ticker']} = ${sym['price']}")
# Get tick stats
stats = api.get_hip3_tick_stats()
print(f"Symbols: {stats['symbol_count']}")
print(f"Ticks received: {stats['collector_stats']['ticks_received']}")
# Get tick data by dex:ticker
tsla = api.get_hip3_ticks("xyz", "tsla") # Tesla
openai = api.get_hip3_ticks("vntl", "openai") # OpenAI Pre-IPO
btc = api.get_hip3_ticks("hyna", "btc") # Bitcoin
sp500 = api.get_hip3_ticks("km", "us500") # S&P 500Example Dashboard
python examples/21_hip3_market_data.py # All 58 symbols with prices
python examples/21_hip3_market_data.py xyz tsla # Tesla ticks
python examples/21_hip3_market_data.py vntl openai # OpenAI Pre-IPO ticks
python examples/21_hip3_market_data.py hyna btc # Bitcoin ticks
python examples/21_hip3_market_data.py km us500 # S&P 500 ticksLegacy Endpoints (Still Supported)
The following endpoints from the original HIP3 Market Data are still available:
| Endpoint | Description |
|---|---|
| GET /api/hip3/candles/symbols | List all symbols organized by category |
| GET /api/hip3/prices | All prices at once |
| GET /api/hip3/price/{coin} | Single symbol price |
| GET /api/hip3/candles/{coin}?interval= | OHLCV candles (1m, 5m, 15m, 1h, 4h, 1d) |
| GET /api/hip3/ticks/{coin}?duration= | Raw tick data (10m, 1h, 4h, 24h, 7d) |
List All HIP3 Symbols
| Endpoint | Description |
|---|---|
| GET /api/hip3/candles/symbols | Returns all 33 HIP3 symbols organized by category |
{
"count": 33,
"categories": {
"stocks": ["TSLA", "NVDA", "META", "AAPL", ...],
"commodities": ["GOLD", "SILVER", "CL", "COPPER", "NATGAS", "URANIUM"],
"fx": ["JPY", "EUR"],
"indices": ["XYZ100"]
},
"symbols": ["TSLA", "NVDA", "META", ...]
}Get All HIP3 Prices
| Endpoint | Description |
|---|---|
| GET /api/hip3/prices | Returns current prices for all 33 HIP3 symbols |
{
"timestamp": "2026-01-19T13:09:00Z",
"count": 33,
"prices": {
"TSLA": {"price": 431.64, "category": "stocks"},
"GOLD": {"price": 4672.30, "category": "commodities"},
"EUR": {"price": 1.0285, "category": "fx"},
"XYZ100": {"price": 21450.50, "category": "indices"}
}
}Get Single Symbol Price
| Endpoint | Description |
|---|---|
| GET /api/hip3/price/{coin} | Returns current price for a single HIP3 symbol |
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/hip3/price/TSLA{
"symbol": "TSLA",
"price": 431.64,
"category": "stocks",
"timestamp": "2026-01-19T13:09:39.215000+00:00"
}Get OHLCV Candles
| Endpoint | Description |
|---|---|
| GET /api/hip3/candles/{coin}?interval={interval} | Returns OHLCV candle data for any HIP3 symbol |
| Param | Default | Description |
|---|---|---|
| coin | required | Symbol (TSLA, GOLD, EUR, XYZ100, etc.) |
| interval | 5m | Candle interval: 1m, 5m, 15m, 1h, 4h, 1d |
| startTime | auto | Start timestamp (Unix ms) |
| endTime | now | End timestamp (Unix ms) |
curl -H "X-API-Key: YOUR_KEY" "https://api.moondev.com/api/hip3/candles/TSLA?interval=1h"[
{
"t": 1737288000000,
"T": 1737291599999,
"s": "TSLA",
"i": "1h",
"o": "430.50",
"h": "432.20",
"l": "429.80",
"c": "431.90",
"v": "0",
"n": 245
}
]Candle Response Fields
| Field | Description |
|---|---|
| t | Open time (Unix ms) |
| T | Close time (Unix ms) |
| s | Symbol |
| i | Interval |
| o | Open price |
| h | High price |
| l | Low price |
| c | Close price |
| v | Volume |
| n | Number of ticks in candle |
Get Raw Tick Data
| Endpoint | Description |
|---|---|
| GET /api/hip3/ticks/{coin}?duration={duration} | Returns raw tick-by-tick price data for any HIP3 symbol |
| Param | Default | Description |
|---|---|---|
| coin | required | Symbol (TSLA, GOLD, EUR, XYZ100, etc.) |
| duration | 1h | Time window: 10m, 1h, 4h, 24h, 7d |
| limit | 10000 | Max ticks to return |
| startTime | - | Start time (Unix ms), overrides duration |
| endTime | - | End time (Unix ms) |
curl -H "X-API-Key: YOUR_KEY" "https://api.moondev.com/api/hip3/ticks/GOLD?duration=1h"{
"symbol": "GOLD",
"duration": "1h",
"tick_count": 112,
"latest_price": 4672.40,
"ticks": [
{
"t": 1737288000000,
"p": 4671.50,
"dt": "2026-01-19T13:00:00.000000+00:00"
},
{
"t": 1737288003000,
"p": 4671.80,
"dt": "2026-01-19T13:00:03.000000+00:00"
}
]
}Python SDK Usage
from api import MoonDevAPI
api = MoonDevAPI()
# Get all HIP3 symbols by category
symbols = api.get_hip3_symbols()
print(f"{symbols['count']} symbols available")
print(f"Stocks: {symbols['categories']['stocks']}")
print(f"Commodities: {symbols['categories']['commodities']}")
# Get all HIP3 prices at once
prices = api.get_hip3_prices()
print(f"TSLA: ${prices['prices']['TSLA']['price']}")
print(f"GOLD: ${prices['prices']['GOLD']['price']}")
# Get single symbol price
tsla = api.get_hip3_price("TSLA")
print(f"TSLA: ${tsla['price']} ({tsla['category']})")
# Get OHLCV candles
candles = api.get_hip3_candles("TSLA", interval="5m")
for c in candles[-5:]:
print(f"O:{c['o']} H:{c['h']} L:{c['l']} C:{c['c']}")
# Get 1-hour candles for GOLD
gold_candles = api.get_hip3_candles("GOLD", interval="1h")
# Get daily candles
daily = api.get_hip3_candles("NVDA", interval="1d")
# Get raw tick data
ticks = api.get_hip3_ticks("TSLA", duration="1h")
print(f"{ticks['tick_count']} ticks, latest: ${ticks['latest_price']}")
# Get 24h of tick data
ticks_24h = api.get_hip3_ticks("GOLD", duration="24h")
# Custom time range (Unix ms)
ticks = api.get_hip3_ticks("EUR", start_time=1737280000000, end_time=1737290000000)Use Cases
- Technical Analysis - Build charts and indicators using OHLCV candles
- Algorithmic Trading - Use tick data for high-frequency strategies
- Cross-Asset Analysis - Compare crypto with TradFi assets on same platform
- Price Alerts - Monitor tick-by-tick price changes for specific assets
- Backtesting - Historical candle data for strategy testing
Like what you see? Grab your API key and start building.
Data Collection Details
- Polling Interval: 500ms (only stores price changes)
- Auto-Discovery: New symbols detected every 5 minutes
- Candle Intervals: 1m, 5m, 15m, 1h, 4h, 1d
- Tick Durations: 10m, 1h, 4h, 24h, 7d
Rate limit: 3,600 requests per minute. Data updates at 500ms intervals. Tick data stored only on price changes.
HIP3 Funding
Funding rate analysis for both crypto perps and HIP3 tokenized assets (stocks, commodities, ETFs) across xyz and cash dexes. Includes top positive/negative rates, tracked symbols, and 24h history.
Available Endpoints
| Endpoint | Description |
|---|---|
| GET /api/hlp/funding | Funding rates for crypto perps only |
| GET /api/hlp/funding/hip3 | Funding rates for HIP3 tokenized assets (stocks, commodities, ETFs) |
HIP3 Funding
Returns funding rate analysis for HIP3 tokenized assets across xyz and cash dexes. Symbols are prefixed with the dex name — xyz:GOLD, cash:USA500, cash:TSLA, etc. This matches the convention used by the positions scanner.
curl "https://api.moondev.com/api/hlp/funding/hip3?api_key=YOUR_KEY"Response Example
{
"timestamp": "2026-03-07T13:54:05.479635+00:00",
"top_positive_funding": [
{ "coin": "xyz:BRENTOIL", "rate_pct": 0.024, "annualized": 26.31 },
{ "coin": "xyz:URNM", "rate_pct": 0.0239, "annualized": 26.12 }
],
"top_negative_funding": [
{ "coin": "xyz:HYUNDAI", "rate_pct": -0.0642, "annualized": -70.31 },
{ "coin": "xyz:NATGAS", "rate_pct": -0.0368, "annualized": -40.25 }
],
"current_rates": {
"xyz:GOLD": { "rate_pct": 0.0006, "annualized": 0.68 },
"xyz:TSLA": { "rate_pct": -0.0009, "annualized": -0.93 },
"cash:USA500": { "rate_pct": 0.0, "annualized": 0.0 }
},
"all_rates": {
"xyz:BRENTOIL": {
"rate_pct": 0.024,
"annualized": 26.31,
"mark_price": 71.42,
"oi_value": 152340.50
}
},
"history_24h": [
{
"time": "2026-03-07T13:00:00+00:00",
"coin": "xyz:GOLD",
"rate": 0.000006,
"annualized": 0.68,
"price": 2920.5
}
]
}Response Fields
| Field | Description |
|---|---|
| top_positive_funding | Top 10 symbols with highest (most positive) funding rates |
| top_negative_funding | Top 10 symbols with lowest (most negative) funding rates |
| current_rates | Rates for tracked HIP3 symbols (GOLD, SILVER, TSLA, NVDA, AAPL, USA500, etc.) |
| all_rates | Every HIP3 symbol with rate, annualized %, mark price, and open interest value |
| history_24h | Up to 100 recent funding rate snapshots for tracked symbols |
| rate_pct | Funding rate as percentage (per 8-hour period) |
| annualized | Annualized funding rate as percentage |
Python Example
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.moondev.com"
# Get HIP3 funding rates
hip3_funding = requests.get(
f"{BASE_URL}/api/hlp/funding/hip3",
headers={"X-API-Key": API_KEY}
).json()
print(f"Timestamp: {hip3_funding['timestamp']}")
# Top positive funding (longs paying shorts)
print("\nTop Positive Funding:")
for item in hip3_funding["top_positive_funding"][:5]:
print(f" {item['coin']}: {item['rate_pct']}% ({item['annualized']:.1f}% annualized)")
# Top negative funding (shorts paying longs)
print("\nTop Negative Funding:")
for item in hip3_funding["top_negative_funding"][:5]:
print(f" {item['coin']}: {item['rate_pct']}% ({item['annualized']:.1f}% annualized)")
# Check specific symbols
for coin, data in hip3_funding["current_rates"].items():
print(f" {coin}: {data['annualized']:.2f}% annualized")Data updates every ~15 seconds. The existing /api/hlp/funding endpoint is unchanged and continues to serve crypto perps only.
HIP3 Tick Data (Top 10 by Volume)
Tick-level data and server-computed OHLCV candles for the top 10 HIP3 symbols by 24h volume across all HIP3 dexes (xyz, cash, flx). Only these 10 symbols are tracked — the list refreshes every 5 minutes based on live volume ranking. Candles are computed server-side from stored ticks, not proxied from Hyperliquid. Data retention is 30 days.
⚠️ Only the top 10 HIP3 symbols by 24h volume are tracked. This is not all HIP3 symbols — use the /api/hip3/candles/symbols endpoint to see which symbols are currently being collected. The 10th slot rotates as volume shifts.
Symbols Currently Tracked
These are the highest-volume HIP3 symbols. The list auto-updates every 5 minutes.
| # | Symbol | Dex | Category |
|---|---|---|---|
| 1 | xyz:CL | xyz | Commodities |
| 2 | xyz:XYZ100 | xyz | Indices |
| 3 | xyz:SILVER | xyz | Commodities |
| 4 | xyz:BRENTOIL | xyz | Commodities |
| 5 | cash:USA500 | cash | Indices |
| 6 | xyz:GOLD | xyz | Commodities |
| 7 | xyz:NATGAS | xyz | Commodities |
| 8 | xyz:NVDA | xyz | Stocks |
| 9 | xyz:CRCL | xyz | Stocks |
| 10 | (rotates by volume) |
Endpoints
All endpoints require api_key as a query param or X-API-Key header.
| Endpoint | Description |
|---|---|
| GET /api/hip3/candles/symbols | List all currently tracked symbols, intervals, and categories |
| GET /api/hip3/ticks/{coin}?duration=1h | Raw tick data for a symbol (durations: 10m, 1h, 4h, 24h, 7d) |
| GET /api/hip3/candles/{coin}?interval=5m | OHLCV candles computed from ticks (intervals: 1m, 5m, 15m, 1h, 4h, 1d) |
| GET /api/hip3/price/{coin} | Latest price for a single symbol |
| GET /api/hip3/prices | Latest prices for all tracked symbols |
Symbol Lookup
Three symbol formats are accepted — bare ticker, full dex:ticker, or non-xyz dex prefix. Bare tickers auto-resolve to the correct dex.
# Bare ticker (resolves to correct dex automatically)
curl "https://api.moondev.com/api/hip3/ticks/CL?duration=1h&api_key=YOUR_KEY"
# Full dex:ticker format
curl "https://api.moondev.com/api/hip3/ticks/xyz:CL?duration=1h&api_key=YOUR_KEY"
# Non-xyz dex
curl "https://api.moondev.com/api/hip3/ticks/cash:USA500?duration=1h&api_key=YOUR_KEY"1. List Available Symbols
curl "https://api.moondev.com/api/hip3/candles/symbols?api_key=YOUR_KEY"Response Example
{
"symbols": ["xyz:CL", "xyz:XYZ100", "xyz:SILVER", "xyz:BRENTOIL", "cash:USA500", "xyz:GOLD", "xyz:NATGAS", "xyz:NVDA", "flx:OIL", "xyz:CRCL"],
"count": 10,
"intervals": ["1m", "5m", "15m", "1h", "4h", "1d"],
"by_category": {
"commodities": ["xyz:CL", "xyz:SILVER", "xyz:BRENTOIL", "xyz:GOLD", "xyz:NATGAS", "flx:OIL"],
"indices": ["xyz:XYZ100", "cash:USA500"],
"stocks": ["xyz:NVDA", "xyz:CRCL"]
},
"market_type": "HIP3"
}2. Raw Tick Data
Durations: 10m, 1h, 4h, 24h, 7d
curl "https://api.moondev.com/api/hip3/ticks/CL?duration=1h&api_key=YOUR_KEY"Response Example
{
"symbol": "xyz:CL",
"category": "commodities",
"market_type": "HIP3",
"duration": "1h",
"tick_count": 1842,
"start_time": 1741611600000,
"end_time": 1741615200000,
"latest_price": 87.89,
"ticks": [
{"t": 1741611600500, "p": 87.65, "dt": "2026-03-10T13:00:00+00:00"},
{"t": 1741611601000, "p": 87.66, "dt": "2026-03-10T13:00:01+00:00"}
]
}3. OHLCV Candles (computed from ticks)
Intervals: 1m, 5m, 15m, 1h, 4h, 1d. Optional params: startTime, endTime (Unix ms).
curl "https://api.moondev.com/api/hip3/candles/CL?interval=5m&api_key=YOUR_KEY"
curl "https://api.moondev.com/api/hip3/candles/cash:USA500?interval=1h&api_key=YOUR_KEY"Response Example
[
{
"t": 1741611600000, "T": 1741611899999,
"s": "CL", "i": "5m",
"o": "87.65", "h": "87.92", "l": "87.60", "c": "87.89",
"v": "0", "n": 42
}
]4. Latest Price (single symbol)
curl "https://api.moondev.com/api/hip3/price/GOLD?api_key=YOUR_KEY"Response Example
{
"symbol": "xyz:GOLD",
"price": 5195.40,
"category": "commodities",
"market_type": "HIP3",
"timestamp": "2026-03-10T13:05:13+00:00"
}5. All Latest Prices
curl "https://api.moondev.com/api/hip3/prices?api_key=YOUR_KEY"Response Example
{
"generated_at": "2026-03-10T13:05:15+00:00",
"market_type": "HIP3",
"mode": "top_10_by_volume",
"dexes": ["xyz", "cash", "flx"],
"prices": {
"xyz:CL": {"dex": "xyz", "ticker": "CL", "price": 87.89, "category": "commodities"},
"cash:USA500": {"dex": "cash", "ticker": "USA500", "price": 6780.60, "category": "indices"},
"flx:OIL": {"dex": "flx", "ticker": "OIL", "price": 86.79, "category": "commodities"}
}
}Key Notes
- Top 10 only — only the 10 highest-volume HIP3 symbols are tracked; the list refreshes every 5 min based on 24h notional volume
- 30-day retention — historical data goes back up to 30 days
- Multi-dex — symbols span xyz, cash, and flx dexes
- Bare ticker lookups — pass just
CLorUSA500and it resolves to the correct dex - Server-computed candles — built from stored tick data, not proxied from Hyperliquid
- Tick resolution — ~500ms polling interval
Multi-Exchange Liquidations
Real-time liquidation data from multiple exchanges: Binance, Bybit, OKX, and HyperLiquid. Get individual exchange data or combined aggregated stats across all exchanges.
Update Frequency
- Live endpoints (10m - 5d): Updated every 30 seconds
- Archive endpoints (7d - 30d): Updated every 15 minutes
Combined (All Exchanges) - Live
| Endpoint | Description |
|---|---|
| GET /api/all_liquidations/stats.json | Combined stats from all exchanges |
| GET /api/all_liquidations/10m.json | Last 10 minutes |
| GET /api/all_liquidations/1h.json | Last 1 hour |
| GET /api/all_liquidations/4h.json | Last 4 hours |
| GET /api/all_liquidations/12h.json | Last 12 hours |
| GET /api/all_liquidations/24h.json | Last 24 hours |
| GET /api/all_liquidations/2d.json | Last 2 days |
| GET /api/all_liquidations/5d.json | Last 5 days |
Combined (All Exchanges) - Archive
| Endpoint | Description |
|---|---|
| GET /api/all_liquidations/7d.json | Last 7 days (15-min updates) |
| GET /api/all_liquidations/14d.json | Last 14 days (15-min updates) |
| GET /api/all_liquidations/30d.json | Last 30 days (15-min updates) |
Binance Liquidations
| Endpoint | Description |
|---|---|
| GET /api/binance_liquidations/stats.json | Binance stats (24h volume, counts, top coins) |
| GET /api/binance_liquidations/10m.json | Last 10 minutes |
| GET /api/binance_liquidations/1h.json | Last hour |
| GET /api/binance_liquidations/24h.json | Last 24 hours |
| GET /api/binance_liquidations/7d.json | Last 7 days |
| GET /api/binance_liquidations/30d.json | Last 30 days |
Bybit Liquidations
| Endpoint | Description |
|---|---|
| GET /api/bybit_liquidations/stats.json | Bybit stats (24h volume, counts, top coins) |
| GET /api/bybit_liquidations/10m.json | Last 10 minutes |
| GET /api/bybit_liquidations/1h.json | Last hour |
| GET /api/bybit_liquidations/24h.json | Last 24 hours |
| GET /api/bybit_liquidations/7d.json | Last 7 days |
| GET /api/bybit_liquidations/30d.json | Last 30 days |
OKX Liquidations
| Endpoint | Description |
|---|---|
| GET /api/okx_liquidations/stats.json | OKX stats (24h volume, counts, top coins) |
| GET /api/okx_liquidations/10m.json | Last 10 minutes |
| GET /api/okx_liquidations/1h.json | Last hour |
| GET /api/okx_liquidations/24h.json | Last 24 hours |
| GET /api/okx_liquidations/7d.json | Last 7 days |
| GET /api/okx_liquidations/30d.json | Last 30 days |
Response Example (all_liquidations/stats.json)
{
"updated_at": "2026-01-09T12:00:00Z",
"exchanges": ["binance", "bybit", "okx"],
"combined": {
"total_liquidations": 45000,
"total_value_usd": 380000000,
"long_liquidations": {
"count": 25000,
"value_usd": 215000000
},
"short_liquidations": {
"count": 20000,
"value_usd": 165000000
}
},
"by_exchange": {
"binance": {"count": 18000, "value_usd": 165000000},
"bybit": {"count": 15000, "value_usd": 125000000},
"okx": {"count": 12000, "value_usd": 90000000}
},
"top_liquidated_coins": [
{"symbol": "BTC", "value_usd": 125000000, "count": 9500},
{"symbol": "ETH", "value_usd": 85000000, "count": 8200},
{"symbol": "SOL", "value_usd": 45000000, "count": 5100}
]
}Response Example (binance_liquidations/1h.json)
{
"exchange": "binance",
"timeframe": "1h",
"generated_at": "2026-01-09T12:00:00Z",
"stats": {
"total_count": 850,
"long_count": 480,
"short_count": 370,
"total_value_usd": 8500000,
"long_value_usd": 5200000,
"short_value_usd": 3300000
},
"liquidations": [
{
"symbol": "BTCUSDT",
"side": "SELL",
"quantity": 0.15,
"price": 42500.00,
"value_usd": 6375.00,
"timestamp": "2026-01-09T11:55:00Z"
}
]
}Python Example - Multi-Exchange
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.moondev.com"
headers = {"X-API-Key": API_KEY}
# Get combined stats from ALL exchanges
all_stats = requests.get(
f"{BASE_URL}/api/all_liquidations/stats.json",
headers=headers
).json()
print("=== COMBINED LIQUIDATIONS (All Exchanges) ===")
print(f"Total Volume: ${all_stats['combined']['total_value_usd']:,.0f}")
print(f"Longs Rekt: ${all_stats['combined']['long_liquidations']['value_usd']:,.0f}")
print(f"Shorts Rekt: ${all_stats['combined']['short_liquidations']['value_usd']:,.0f}")
print("\n=== BY EXCHANGE ===")
for exchange, data in all_stats['by_exchange'].items():
print(f"{exchange.upper()}: {data['count']:,} liquidations, ${data['value_usd']:,.0f}")
# Get individual exchange data
for exchange in ["binance", "bybit", "okx"]:
hourly = requests.get(
f"{BASE_URL}/api/{exchange}_liquidations/1h.json",
headers=headers
).json()
print(f"\n{exchange.upper()} Last Hour: {hourly['stats']['total_count']} liquidations")Note: side: "SELL" = Long position liquidated, side: "BUY" = Short position liquidated.
Cross-exchange liquidation data in one API call. Get your API key here.
Bulk Binance Liquidation Data Download
Quant Elite Only
This endpoint requires a Quant Elite API key (must end in _qe). Access 18+ months of Binance Futures liquidation data — 32M+ records back to June 2024, updated in real-time.
Endpoint
| Method | URL |
|---|---|
| GET | /api/bulk/binance_liquidations?api_key=YOUR_QE_KEY |
Parameters
| Param | Description |
|---|---|
| start | Start date — YYYY-MM-DD or unix ms |
| end | End date — YYYY-MM-DD or unix ms |
| symbol | Filter by symbol — BTC, BTCUSDT, ETH, ETHUSDT all work |
| side | BUY (shorts liquidated) or SELL (longs liquidated) |
| min_usd | Min USD size, e.g. 100000 |
| limit | Records per page (default 10,000 / max 100,000) |
| offset | Pagination offset |
Quick Examples
Latest 10k liquidations:
GET /api/bulk/binance_liquidations?api_key=YOUR_QE_KEYBTC only, 2025:
GET /api/bulk/binance_liquidations?api_key=YOUR_QE_KEY&symbol=BTCUSDT&start=2025-01-01&end=2025-12-31Large liquidations only (>$100k):
GET /api/bulk/binance_liquidations?api_key=YOUR_QE_KEY&min_usd=100000Pagination
Response includes has_more and next_offset. Keep requesting with offset=next_offset until has_more is false. At limit=100000 the full 32M+ dataset downloads in ~3 minutes.
Python — Download Full Dataset to CSV
import requests, csv, time
API_KEY = "yourkey_qe"
URL = "https://api.moondev.com/api/bulk/binance_liquidations"
limit, offset = 100000, 0
with open("binance_liqs.csv", "w", newline="") as f:
writer = None
while True:
r = requests.get(URL, params={
"api_key": API_KEY,
"limit": limit,
"offset": offset
}).json()
if not r["data"]:
break
if not writer:
writer = csv.DictWriter(f, fieldnames=r["data"][0].keys())
writer.writeheader()
writer.writerows(r["data"])
print(f"{offset + len(r['data']):,} / {r['total_records']:,}")
if not r["has_more"]:
break
offset = r["next_offset"]
time.sleep(0.5)Position Snapshots
Historical snapshots of HyperLiquid positions within 15% of liquidation. Captured every 1 minute — perfect for backtesting liquidation cascade strategies and squeeze detection.
Tracked Symbols
Currently tracking: BTC, ETH, SOL, XRP, HYPE
Filters: Positions within 15% of liquidation, minimum $10k position value, 1-minute snapshots
Endpoints
| Endpoint | Description |
|---|---|
| GET /api/position_snapshots/stats?hours=N | Aggregate statistics across all tracked symbols |
| GET /api/position_snapshots/symbol/{symbol}?hours=N | Historical snapshots for a symbol (BTC, ETH, SOL, XRP, HYPE) |
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| hours | 24 | Lookback period in hours |
| limit | 1000 | Maximum records to return (symbol endpoint only) |
| min_distance_pct | - | Filter: minimum distance to liquidation % |
| max_distance_pct | - | Filter: maximum distance to liquidation % |
| side | - | Filter: "long" or "short" |
Response Example (stats)
{
"overall": {
"total_snapshots": 39128,
"unique_users": 2579,
"avg_distance_pct": 6.46
},
"by_symbol": {
"BTC": {
"snapshots": 22952,
"unique_users": 1710,
"avg_distance_pct": 5.95,
"longs": 17646,
"shorts": 5306
},
"ETH": { "snapshots": 8500, "unique_users": 620, "avg_distance_pct": 6.8, "longs": 5200, "shorts": 3300 },
"SOL": { "snapshots": 4200, "unique_users": 380, "avg_distance_pct": 7.2, "longs": 2800, "shorts": 1400 },
"XRP": { "snapshots": 2100, "unique_users": 180, "avg_distance_pct": 8.1, "longs": 1400, "shorts": 700 },
"HYPE": { "snapshots": 1376, "unique_users": 95, "avg_distance_pct": 7.5, "longs": 900, "shorts": 476 }
},
"top_10_closest": [
{
"user": "0x702f...",
"symbol": "BTC",
"side": "long",
"position_value": 184600,
"entry_price": 74913.80,
"liquidation_price": 67164.00,
"distance_pct": 0.00
}
]
}Response Example (symbol/BTC)
{
"symbol": "BTC",
"snapshots": [
{
"snapshot_time": 1738763400000,
"user": "0xabc123...",
"symbol": "BTC",
"side": "long",
"position_value": 333500,
"entry_price": 69469.50,
"liquidation_price": 66859.73,
"current_price": 68500.00,
"distance_pct": 2.43,
"leverage": 20.0
}
],
"count": 50
}Response Fields (Snapshot Records)
| Field | Description |
|---|---|
| snapshot_time | Unix timestamp in milliseconds |
| user | Wallet address |
| symbol | BTC, ETH, SOL, XRP, or HYPE |
| side | "long" or "short" |
| position_value | USD value of position |
| distance_pct | % distance to liquidation |
| leverage | Position leverage |
| entry_price | Entry price |
| liquidation_price | Liquidation price |
| current_price | Current market price at snapshot time |
Curl Examples
# Get stats for last hour
curl "https://api.moondev.com/api/position_snapshots/stats?hours=1" \
-H "X-API-Key: YOUR_API_KEY"
# Get BTC snapshots (last hour, limit 50)
curl "https://api.moondev.com/api/position_snapshots/symbol/BTC?hours=1&limit=50" \
-H "X-API-Key: YOUR_API_KEY"
# Get ETH shorts only, within 5% of liquidation
curl "https://api.moondev.com/api/position_snapshots/symbol/ETH?hours=24&side=short&max_distance_pct=5" \
-H "X-API-Key: YOUR_API_KEY"Python Example
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.moondev.com"
headers = {"X-API-Key": API_KEY}
# Get aggregate stats
stats = requests.get(
f"{BASE_URL}/api/position_snapshots/stats",
headers=headers,
params={"hours": 24}
).json()
print(f"Total snapshots: {stats['overall']['total_snapshots']}")
print(f"Unique users: {stats['overall']['unique_users']}")
print(f"Top at risk: {stats['top_10_closest']}")
# Get BTC positions close to liquidation
btc = requests.get(
f"{BASE_URL}/api/position_snapshots/symbol/BTC",
headers=headers,
params={"hours": 24, "limit": 100}
).json()
for snap in btc['snapshots']:
print(f"{snap['user']}: {snap['distance_pct']}% from liq")
# Filter to very risky positions only
risky = requests.get(
f"{BASE_URL}/api/position_snapshots/symbol/ETH",
headers=headers,
params={"hours": 12, "max_distance_pct": 5}
).json()Backtesting Use Cases
Since this is historical snapshot data, you can use it for:
- Liquidation Cascade Detection — Query positions that were <2% from liquidation, cross-reference with price data to see if they got liquidated, build models predicting cascade events
- Squeeze Setup Identification — Track when shorts cluster near liquidation prices, identify price levels where forced buying would occur, backtest "buy when shorts are trapped" strategies
- Whale Liquidation Hunting — Monitor large positions approaching liquidation, identify recurring whale addresses and their patterns, backtest strategies targeting known liquidation levels
- Risk Concentration Analysis — Analyze where leverage clusters by price level, identify "liquidation magnets" (price zones with heavy exposure), backtest contrarian strategies around these zones
Example Backtest Query
# Get all positions that were within 3% of liquidation yesterday
risky_positions = requests.get(
f"{BASE_URL}/api/position_snapshots/symbol/BTC",
headers=headers,
params={"hours": 24, "max_distance_pct": 3, "limit": 5000}
).json()
# Group by snapshot_time to see how risk evolved
# Cross-reference with price data to see which got liquidated
for snap in risky_positions['snapshots']:
print(f"{snap['snapshot_time']}: {snap['user']} - {snap['distance_pct']}% from liq")Want to plug this into your trading system? Get your API key here.
Smart Money
| Endpoint | Description |
|---|---|
| GET /api/smart_money/rankings.json | Top 100 smart + Bottom 100 dumb money by PnL |
| GET /api/smart_money/leaderboard.json | Top 50 performers with detailed metrics |
| GET /api/smart_money/signals_10m.json | Trading signals - last 10 minutes |
| GET /api/smart_money/signals_1h.json | Trading signals - last 1 hour |
| GET /api/smart_money/signals_24h.json | Trading signals - last 24 hours |
Response Example (rankings.json)
{
"updated_at": "2026-01-06T19:17:19Z",
"total_tracked_addresses": 3488,
"smart_money": {
"description": "Top 100 most profitable addresses",
"count": 100,
"addresses": [
{
"address": "0x...",
"total_pnl": 5000000.00,
"win_rate": 0.72,
"total_trades": 500
}
]
},
"dumb_money": {
"description": "Bottom 100 least profitable addresses",
"count": 100,
"addresses": []
}
}Response Example (signals_1h.json)
{
"updated_at": "2026-01-06T19:17:19Z",
"duration": "1h",
"signals": [
{
"timestamp": "2026-01-06T19:15:00Z",
"address": "0x...",
"address_type": "smart_money",
"action": "open_long",
"coin": "BTC",
"size": 2.5,
"price": 92000.0,
"leverage": 10
}
]
}Trades & Order Flow
| Endpoint | Description |
|---|---|
| GET /api/trades.json | Recent trades (last 1000) |
| GET /api/large_trades.json | Large trades only (>$100k) |
| GET /api/orderflow.json | Current order flow metrics |
| GET /api/orderflow/stats.json | Order flow statistics |
| GET /api/imbalance/5m.json | Buy/sell imbalance - 5 minutes |
| GET /api/imbalance/15m.json | Buy/sell imbalance - 15 minutes |
| GET /api/imbalance/1h.json | Buy/sell imbalance - 1 hour |
| GET /api/imbalance/4h.json | Buy/sell imbalance - 4 hours |
| GET /api/imbalance/24h.json | Buy/sell imbalance - 24 hours |
Orderflow Expansion: Now tracking 130 symbols across all Hyperliquid coins!
Every coin on Hyperliquid is now tracked for buy/sell imbalance, enabling pairs trading discovery and cross-market analysis.
Data Retention Policy
- Raw trade data: Retained for 90 days, then auto-deleted. Export if you need it longer!
- Hourly aggregates: Kept permanently (forever) for historical backtesting. Per-symbol buy/sell pressure every hour.
Response Example (trades.json)
{
"updated_at": "2026-01-06T19:17:00Z",
"trade_count": 1000,
"trades": [
{
"timestamp": 1767727000000,
"coin": "BTC",
"side": "buy",
"size": 0.5,
"price": 92000.0,
"value_usd": 46000.0,
"is_large": false
}
]
}Response Example (orderflow.json)
{
"updated_at": "2026-01-06T19:17:00Z",
"window": "5m",
"metrics": {
"BTC": {
"buy_volume": 5000000.0,
"sell_volume": 4500000.0,
"net_flow": 500000.0,
"buy_count": 150,
"sell_count": 140,
"imbalance_ratio": 1.11
}
}
}Response Example (imbalance/1h.json)
Now returns data for all 130 tracked symbols:
{
"time_window": "1h",
"overall": {
"buy_volume_usd": 923134333.04,
"sell_volume_usd": 1146007719.76,
"imbalance_ratio": -0.1077,
"dominant_side": "SELL"
},
"by_coin": {
"BTC": {
"buy_volume_usd": 616856512.28,
"sell_volume_usd": 814592126.43,
"net_imbalance_usd": -197735614.15,
"imbalance_ratio": -0.1381,
"buy_count": 15420,
"sell_count": 18350,
"dominant_side": "SELL"
},
"ETH": { "..." : "..." },
"SOL": { "..." : "..." },
"ADA": { "..." : "..." },
"EIGEN": { "..." : "..." },
"...": "130 symbols total"
}
}Each symbol includes:
buy_volume_usd/sell_volume_usd- Volume in USDnet_imbalance_usd- Net buy/sell imbalanceimbalance_ratio- Ratio (-1.0 to 1.0, negative = sell pressure)buy_count/sell_count- Number of tradesdominant_side- EitherBUYorSELL
Pairs Trading Example
With 130 symbols, you can compare imbalance across any two coins for pairs trading signals:
import requests
API_KEY = "your_api_key"
r = requests.get(
"https://api.moondev.com/api/imbalance/1h.json",
headers={"X-API-Key": API_KEY}
).json()
# Compare any two coins for pairs trading
ada = r["by_coin"]["ADA"]["imbalance_ratio"]
eigen = r["by_coin"]["EIGEN"]["imbalance_ratio"]
spread = ada - eigen # Your entry signal!
print(f"ADA imbalance: {ada:.4f}")
print(f"EIGEN imbalance: {eigen:.4f}")
print(f"Spread: {spread:.4f}")Exporting Raw Data (Before 90-Day Expiry)
Raw trade data is auto-deleted after 90 days. Pull and store locally if you need it longer:
import requests, json
API_KEY = "your_api_key"
# Pull all recent trades and save locally
trades = requests.get(
"https://api.moondev.com/api/trades.json",
headers={"X-API-Key": API_KEY}
).json()
with open("trades_backup.json", "w") as f:
json.dump(trades, f)
print(f"Saved {trades['trade_count']} trades")User Data (Local Node)
Get positions and trade history for any Hyperliquid wallet. Powered by Moon Dev's local node for fast responses.
| Endpoint | Description |
|---|---|
| GET /api/user/{address}/positions | Current positions for any wallet |
| GET /api/user/{address}/fills?limit=N | Historical fills (default: 100, max: 2000, -1 for ALL) |
Response Example (positions)
{
"address": "0xABC123...",
"positions": [
{
"symbol": "BTC",
"side": "long",
"size": 0.5,
"size_usd": 21250,
"entry_price": 42500,
"mark_price": 42800,
"unrealized_pnl": 150,
"leverage": 10
}
],
"total_value": 45000,
"margin_used": 4500
}Response Example (fills)
{
"address": "0xABC123...",
"fills": [
{
"symbol": "ETH",
"side": "buy",
"size": 2.5,
"price": 2245.00,
"fee": 1.12,
"realized_pnl": 0,
"timestamp": "2026-01-08T10:30:00Z",
"order_type": "limit"
}
],
"total_count": 1543
}Python Example
import requests
API_KEY = "your_api_key"
WALLET = "0x1234567890abcdef..."
# Get positions
positions = requests.get(
f"https://api.moondev.com/api/user/{WALLET}/positions",
headers={"X-API-Key": API_KEY}
).json()
print(f"Total Value: ${positions['total_value']:,.2f}")
for pos in positions["positions"]:
print(f" {pos['symbol']} {pos['side']}: ${pos['size_usd']:,.0f}")
# Get ALL fills
fills = requests.get(
f"https://api.moondev.com/api/user/{WALLET}/fills?limit=-1",
headers={"X-API-Key": API_KEY}
).json()
print(f"Total trades: {fills['total_count']}")HLP (Hyperliquidity Provider)
Complete reverse engineering of Hyperliquid's native market-making protocol (~$210M+ AUM, 7 strategies, 5,000+ trades tracked).
| Endpoint | Description |
|---|---|
| GET /api/hlp/positions | All 7 HLP strategy positions + combined net exposure |
| GET /api/hlp/positions?include_strategies=false | Summary only (faster response) |
| GET /api/hlp/trades?limit=N | Historical HLP trade fills (5,000+ collected) |
| GET /api/hlp/trades/stats | Trade volume and fee statistics |
| GET /api/hlp/positions/history?hours=N | Position snapshots over time |
| GET /api/hlp/liquidators | Liquidator activation events |
| GET /api/hlp/deltas?hours=N | Net exposure changes over time |
Response Example (positions)
{
"total_value_usd": 210000000,
"net_exposure": {
"BTC": {"long": 125000000, "short": 98000000, "net": 27000000},
"ETH": {"long": 85000000, "short": 92000000, "net": -7000000}
},
"strategies": [
{
"name": "Strategy A",
"vault_address": "0x...",
"value_usd": 45000000,
"positions": [
{"symbol": "BTC", "side": "long", "size_usd": 12000000}
]
}
]
}Response Example (trades)
{
"trades": [
{
"strategy": "Strategy A",
"symbol": "BTC",
"side": "buy",
"size": 0.25,
"price": 42500,
"fee": 0.85,
"timestamp": "2026-01-08T11:00:00Z"
}
],
"total_count": 5432
}Response Example (trades/stats)
{
"total_volume_usd": 850000000,
"total_fees_paid": 425000,
"volume_by_coin": {
"BTC": 450000000,
"ETH": 280000000,
"SOL": 120000000
},
"volume_by_strategy": {
"Strategy A": 320000000,
"Strategy B": 280000000
}
}Response Example (deltas)
{
"deltas": [
{
"timestamp": "2026-01-08T10:00:00Z",
"BTC": {"delta": 500000, "direction": "more_long"},
"ETH": {"delta": -200000, "direction": "more_short"}
}
]
}Python Example
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.moondev.com"
# Get HLP positions (full details)
hlp = requests.get(
f"{BASE_URL}/api/hlp/positions",
headers={"X-API-Key": API_KEY}
).json()
print(f"Total HLP Value: ${hlp['total_value_usd']:,.0f}")
print(f"Strategies: {len(hlp['strategies'])}")
# Net exposure per coin
for coin, exp in hlp["net_exposure"].items():
direction = "LONG" if exp["net"] > 0 else "SHORT"
print(f" {coin}: ${abs(exp['net']):,.0f} {direction}")
# Get trade stats
stats = requests.get(
f"{BASE_URL}/api/hlp/trades/stats",
headers={"X-API-Key": API_KEY}
).json()
print(f"Total Volume: ${stats['total_volume_usd']:,.0f}")HLP data collection started Nov 3, 2025. Historical analysis covers this full period.
This data is nowhere else. Get your API key and start using it.
HLP Sentiment & Analytics
Advanced analytics endpoints for HLP sentiment analysis, liquidator monitoring, market maker tracking, and timing analysis. These endpoints provide institutional-grade signals based on HLP positioning data.
Available Endpoints
| Endpoint | Description |
|---|---|
| GET /api/hlp/sentiment | Net delta with z-scores and trading signals - THE sentiment indicator |
| GET /api/hlp/liquidators/status | Real-time liquidator status (active/idle) with PnL |
| GET /api/hlp/market-maker | Strategy B tracker for BTC/ETH/SOL positions |
| GET /api/hlp/timing | Hourly and session profitability analysis |
| GET /api/hlp/correlation | Delta-price correlation analysis by coin |
Sentiment Analysis (The Big One)
The /api/hlp/sentiment endpoint analyzes HLP net delta positions and generates z-score based trading signals. This is the primary sentiment indicator for understanding institutional positioning.
curl "https://api.moondev.com/api/hlp/sentiment?api_key=YOUR_KEY"Response Example
{
"timestamp": "2025-01-12T15:30:00Z",
"net_delta": {
"BTC": { "value": -2450000, "z_score": 2.2, "signal": "Retail heavily SHORT - potential short squeeze" },
"ETH": { "value": 1200000, "z_score": -0.8, "signal": "Neutral positioning" },
"SOL": { "value": -580000, "z_score": 1.5, "signal": "Moderate retail SHORT bias" }
},
"overall_signal": "Market sentiment: Retail skewed SHORT on majors",
"confidence": "high"
}Liquidator Status
Monitor liquidator wallet activity in real-time. Track which liquidators are active/idle and their recent PnL.
curl "https://api.moondev.com/api/hlp/liquidators/status?api_key=YOUR_KEY"Market Maker (Strategy B)
Track Strategy B market maker positions across BTC, ETH, and SOL. Useful for understanding MM inventory and potential mean reversion.
curl "https://api.moondev.com/api/hlp/market-maker?api_key=YOUR_KEY"Timing Analysis
Analyze HLP profitability by hour of day and trading session. Identify optimal trading windows based on historical HLP performance.
curl "https://api.moondev.com/api/hlp/timing?api_key=YOUR_KEY"Correlation Analysis
Analyze correlation between HLP delta changes and price movements by coin. Higher correlation suggests stronger predictive signal.
curl "https://api.moondev.com/api/hlp/correlation?api_key=YOUR_KEY"Python Example
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.moondev.com"
# Get HLP sentiment signals
sentiment = requests.get(
f"{BASE_URL}/api/hlp/sentiment",
params={"api_key": API_KEY}
).json()
print(f"Overall: {sentiment['overall_signal']}")
print(f"Confidence: {sentiment['confidence']}")
for coin, data in sentiment["net_delta"].items():
print(f" {coin}: z={data['z_score']:.1f} - {data['signal']}")
# Check liquidator activity
liquidators = requests.get(
f"{BASE_URL}/api/hlp/liquidators/status",
params={"api_key": API_KEY}
).json()
for liq in liquidators.get("liquidators", []):
status = "ACTIVE" if liq["active"] else "IDLE"
print(f" {liq['address'][:10]}...: {status} (PnL: ${liq['pnl']:,.0f})")Code Examples
More examples on GitHub
Every new API endpoint gets a working example added to the repo. Clone it and start building!
Replace your_api_key with your actual key.Need an API key?
Python - Get Smart Money Signals
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.moondev.com"
# Get smart money signals from last hour
signals = requests.get(
f"{BASE_URL}/api/smart_money/signals_1h.json",
headers={"X-API-Key": API_KEY}
).json()
for signal in signals["signals"][:10]:
print(f"{signal['action']} {signal['coin']} @ ${signal['price']:,.0f}")Python - Monitor Order Flow (130 Symbols)
import requests
API_KEY = "your_api_key"
imbalance = requests.get(
"https://api.moondev.com/api/imbalance/1h.json",
headers={"X-API-Key": API_KEY}
).json()
# Overall market pressure
overall = imbalance["overall"]
print(f"Market: {overall['dominant_side']} pressure (ratio: {overall['imbalance_ratio']:.4f})")
# Top coins by sell pressure
for coin, data in sorted(imbalance["by_coin"].items(), key=lambda x: x[1]["imbalance_ratio"]):
print(f"{coin}: {data['dominant_side']} ({data['imbalance_ratio']:.4f})")JavaScript - Real-time Ticks
const API_KEY = "your_api_key";
fetch("https://api.moondev.com/api/ticks/latest.json", {
headers: { "X-API-Key": API_KEY }
})
.then(res => res.json())
.then(data => {
console.log("Current prices:", data);
});cURL
# Get smart money rankings
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/smart_money/rankings.json
# Get BTC ticks for last hour
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/ticks/btc_1h.json
# Get large trades
curl -H "X-API-Key: YOUR_KEY" https://api.moondev.com/api/large_trades.jsonWant more? Check out the full collection of examples on GitHub.
Data Freshness
| Category | Update Frequency |
|---|---|
| Tick Data | 500ms |
| Events | 2 seconds |
| Trades/Order Flow | 5 seconds |
| User Data | 5 seconds |
| Binance Liquidations | Real-time (WebSocket) |
| Bybit Liquidations | Real-time (WebSocket) |
| OKX Liquidations | Real-time (WebSocket) |
| All Liquidations (Combined) | Real-time (WebSocket) |
| HIP3 Liquidations (TradFi) | Real-time |
| HIP3 Market Data (Candles/Ticks) | 500ms |
| HLP Positions | 30 seconds |
| HLP Trades | 30 seconds |
| HLP Sentiment/Analytics | 30 seconds |
| HIP3 Funding | ~15 seconds |
| Hyperliquid Liquidations | 30 seconds |
| Positions/Whales (22,500+ wallets) | 30 seconds |
| Smart Money | 60 seconds |
| Contracts | 5 minutes |
Error Codes
| HTTP Code | Meaning |
|---|---|
| 200 | Success |
| 401 | Unauthorized - Invalid or missing API key |
| 404 | Endpoint not found |
| 429 | Rate limit exceeded |
| 500 | Server error |
Getting 401 errors? Get your API key here.
Quick Reference - All Endpoints
# Market Data
/api/prices
/api/price/{coin}
/api/orderbook/{coin}
/api/account/{address}
/api/fills/{address}?limit=N
/api/candles/{coin}?interval={1m,5m,15m,1h,4h,1d}
# Core Data
/api/positions.json (combined)
/api/positions_crypto.json (crypto only)
/api/positions_hip3.json (HIP3 only)
/api/positions/all.json (combined)
/api/positions/all_crypto.json (crypto only)
/api/positions/all_hip3.json (HIP3 only)
/api/whales.json (75 symbols: native + HIP-3)
/api/buyers.json
/api/depositors.json
/api/whale_addresses.txt
# Blockchain
/api/events.json
/api/contracts.json
# Tick Data (129 symbols)
/api/ticks/{stats,latest}.json
/api/ticks/{symbol}.json
/api/ticks/{symbol}_{10m,1h,4h,24h,7d}.json
# Trades & Order Flow (130 symbols)
/api/trades.json
/api/large_trades.json
/api/orderflow.json
/api/orderflow/stats.json
/api/imbalance/{5m,15m,1h,4h,24h}.json
Raw data: 90-day retention | Hourly aggregates: permanent
# Hyperliquid Liquidations
/api/liquidations/{stats,scan_summary}.json
/api/liquidations/{10m,1h,4h,12h,24h,2d,7d,14d,30d}.json
# HIP3 Liquidations (TradFi)
/api/hip3_liquidations/stats.json
/api/hip3_liquidations/{10m,1h,24h,7d}.json
# HIP3 Market Data (TradFi OHLCV)
/api/hip3/candles/symbols
/api/hip3/prices
/api/hip3/price/{coin}
/api/hip3/candles/{coin}?interval={1m,5m,15m,1h,4h,1d}
/api/hip3/ticks/{coin}?duration={10m,1h,4h,24h,7d}
# HIP3 Funding (NEW)
/api/hlp/funding (crypto perps)
/api/hlp/funding/hip3 (HIP3 tokenized assets)
# Multi-Exchange Liquidations
/api/all_liquidations/stats.json
/api/all_liquidations/{10m,1h,4h,12h,24h,2d,5d}.json (30s updates)
/api/all_liquidations/{7d,14d,30d}.json (15min updates)
/api/binance_liquidations/stats.json
/api/binance_liquidations/{10m,1h,24h,7d,30d}.json
/api/bybit_liquidations/stats.json
/api/bybit_liquidations/{10m,1h,24h,7d,30d}.json
/api/okx_liquidations/stats.json
/api/okx_liquidations/{10m,1h,24h,7d,30d}.json
# Bulk Binance Liquidations (Quant Elite)
/api/bulk/binance_liquidations?api_key=KEY&symbol=&start=&end=&side=&min_usd=&limit=&offset=
32M+ records, June 2024+, requires _qe API key
# Position Snapshots (Liquidation Risk)
/api/position_snapshots/symbol/{BTC,ETH,SOL,XRP,HYPE}?hours=24
/api/position_snapshots/stats?hours=24
Tracks positions within 15% of liquidation, min $10k value, 1-min snapshots
# Smart Money
/api/smart_money/{rankings,leaderboard}.json
/api/smart_money/signals_{10m,1h,24h}.json
# User Data (Local Node)
/api/user/{address}/positions
/api/user/{address}/fills?limit=N
# HLP (Hyperliquidity Provider)
/api/hlp/positions
/api/hlp/positions?include_strategies=false
/api/hlp/trades?limit=N
/api/hlp/trades/stats
/api/hlp/positions/history?hours=N
/api/hlp/liquidators
/api/hlp/deltas?hours=N
# HLP Sentiment & Analytics
/api/hlp/sentiment
/api/hlp/liquidators/status
/api/hlp/market-maker
/api/hlp/timing
/api/hlp/correlation
Need an API key or integration support? Get your API key here