Skip to content
InfoHub
UpgradeSign in
Popular
LiquidationsFunding RatesDashboardNewsScreener
Shortcuts
ETF TrackerL/S Ratio
Back to API
v1 reference, kept in sync

API Documentation

Complete reference for the InfoHub Public API. Real-time derivatives data from 33 exchanges, aggregated into 26 REST endpoints.

Base URLhttps://info-hub.io/api/v1
FormatJSON
AuthBearer Token
OpenAPI 3.1/api/v1/openapi
What's newMay 2026
  • Fee model surface — every fee-aware endpoint now returnsmeta.feeModel with a version identifier and the full schedule. Read  →
  • Aggregate modes on funding / open-interest / tickers — pass ?aggregate=1 for one row per symbol.Read  →
  • /klines endpoint with Binance → Bybit → OKX fallback.Read  →
  • Long/short regime classifier — every /longshort response now includes a regime field (crowded-long / balanced / crowded-short).
  • Liquidation summary mode/liquidations?summary=1 returns aggregated stats instead of paging through the feed.

Authentication

All endpoints except /status require an API key passed as a Bearer token in the Authorization header.

Header format
Authorization: Bearer ih_your_api_key_here

Keys start with ih_ and are 35 characters long.

Generate up to 5 keys at /developers.

Keys are hashed server side. The full key is shown once at creation. Store it securely.

Rate Limits

Every response includes rate limit headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1709248060
Free
/min100
/day5,000
Trader
/min200
/day25,000
ProLaunch · free
/min600
/day
Whale
/min
/day
Tier comparison + pricing →

Exceeding the limit returns 429 with a Retry-After header indicating seconds until the window resets.

Response Format

All endpoints return JSON with a consistent structure:

Success
{
  "success": true,
  "data": [ ... ],
  "meta": { "timestamp": 1709248000, ... }
}
Error
{
  "success": false,
  "error": "Human-readable error message"
}

The meta field is optional and varies by endpoint. It may include counts, timestamps, or filter summaries.

Fee Model

Fee-sensitive endpoints (/arbitrage,/spreads,/funding-arb) expose the fee schedule they used to compute net P&L so callers can verify the assumption or recompute under their own fill model.

Unit. All fee values are percent-per-trade.0.05 means 0.05%, not 5%. Maker fees may be negative on venues that rebate makers.

Version bumps. Themeta.feeModel.version string changes whenever any value in our internal fee table changes — including a single venue's taker rate. Format is vMAJOR.MINOR-YYYY-MM-DD.

Headers. The same identifiers are mirrored onX-Fee-Model-Version andX-Fee-Model-Updated-At response headers, so a cheap HEAD request is enough to detect a bump.

Where it appears. Same shape on every fee-sensitive endpoint: meta.feeModel = { version, updatedAt, unit, schedule }./status and/exchanges emit just the identifiers (no schedule) so you can probe cheaply.

meta.feeModel shape
{
  "version": "v1.0-2026-02-01",
  "updatedAt": "2026-02-01T00:00:00Z",
  "unit": "percent",
  "schedule": {
    "Binance":      { "maker": 0.0200, "taker": 0.0500 },
    "Bybit":        { "maker": 0.0200, "taker": 0.0550 },
    "Hyperliquid":  { "maker": 0.0150, "taker": 0.0450 },
    "Nado":         { "maker": -0.0080, "taker": 0.0150 }
  }
}
Detect a fee bump (curl)
bash
# Lightweight HEAD probe — no body, just the version header
curl -sI -H "Authorization: Bearer ih_xxx" \
  https://info-hub.io/api/v1/status \
  | grep -i "x-fee-model-version"

# Output:
# X-Fee-Model-Version: v1.0-2026-02-01
# X-Fee-Model-Updated-At: 2026-02-01T00:00:00Z
Recompute net under maker-only fills (JS)
js
// Use the per-side fees in each arbitrage row to back out a maker-only net
const row = data[0];
const makerRoundTrip =
  (row.fees.shortExchangeMaker ?? row.fees.shortExchangeTaker) +
  (row.fees.longExchangeMaker  ?? row.fees.longExchangeTaker);
// Round-trip = open + close on each side = 4 fills total
const netSpreadMakerOnly = row.grossSpread8h - makerRoundTrip * 2;

// Cache key for downstream models — refresh when this changes
const cacheKey = `fee:${meta.feeModel.version}`;
Market Data

Funding Rates

GET/api/v1/funding

Real-time funding rates across 33 exchanges. Rates are expressed as percentages in the exchange's native interval.

ParameterTypeDefaultDescription
symbolsstringallComma-separated symbols (e.g. BTC,ETH,SOL)
exchangesstringallComma-separated exchanges (e.g. binance,bybit)
assetClassstringcryptocrypto, stocks, forex, commodities, or all
aggregatenumber01 = one row per symbol with avg/min/max rate8h
Response (per-venue, default)
{
  "success": true,
  "data": [
    {
      "symbol": "BTC",
      "exchange": "Binance",
      "rate": 0.0100,
      "rate8h": 0.0100,
      "predictedRate": 0.0085,
      "markPrice": 95000.50,
      "indexPrice": 94980.25,
      "fundingInterval": "8h",
      "nextFundingTime": 1709251200000,
      "type": "cex",
      "assetClass": "crypto"
    }
  ],
  "meta": { "timestamp": 1709248000, "exchanges": 24, "pairs": 6466, "mode": "per-venue" }
}
Response (aggregate=1)
{
  "success": true,
  "data": [
    {
      "symbol": "BTC",
      "venueCount": 14,
      "avgRate8h": 0.0185,
      "minRate8h": -0.0245,
      "minExchange": "Hyperliquid",
      "maxRate8h": 0.0567,
      "maxExchange": "Bybit",
      "spread8h": 0.0812
    }
  ],
  "meta": { "timestamp": 1709248000, "entries": 230, "mode": "aggregate", "assetClass": "crypto" }
}
Aggregate mode is sorted by spread8h descending, so the widest opportunities surface first. All rates are 8h-normalised, so 1h and 4h venues compare directly with the typical 8h CEX rate.

Open Interest

GET/api/v1/openinterest

Open interest across exchanges in USD. Per-venue rows by default; pass aggregate=1 to get one row per symbol (with the per-venue breakdown nested inside), orchanges=1 to include 1h / 4h / 24h % deltas computed from server-side snapshots.

ParameterTypeDefaultDescription
symbolsstringallComma-separated symbols
exchangesstringallComma-separated exchanges
aggregatenumber01 = one row per symbol with summed openInterestUsd
changesnumber01 = include {pct1h, pct4h, pct24h} on each row
Response (per-venue, default)
{
  "success": true,
  "data": [
    {
      "symbol": "BTC",
      "exchange": "Binance",
      "openInterest": 4200000000,
      "openInterestUsd": 4200000000,
      "timestamp": 1713181800000
    }
  ],
  "meta": { "timestamp": 1713181800000, "entries": 420, "exchanges": 26, "mode": "per-venue" }
}
Response (aggregate=1)
{
  "success": true,
  "data": [
    {
      "symbol": "BTC",
      "openInterestUsd": 40250000000,
      "venueCount": 14,
      "venues": [
        { "exchange": "Binance", "openInterestUsd": 7870000000 },
        { "exchange": "Bybit",   "openInterestUsd": 4280000000 }
      ],
      "timestamp": 1713181800000,
      "changes": { "pct1h": 0.42, "pct4h": -1.83, "pct24h": 5.21 }
    }
  ],
  "meta": { "timestamp": 1713181800000, "entries": 230, "mode": "aggregate", "changesAvailable": true }
}

Tickers

GET/api/v1/tickers

Real-time price and volume data across exchanges. Per-venue rows by default; pass aggregate=1 to get one row per symbol with median price, max H, min L, and cross-venue deduped 24h volume ($100B per-entry sanity cap to filter mis-reported figures).

ParameterTypeDefaultDescription
symbolsstringallComma-separated symbols (e.g. BTC,ETH)
exchangesstringallComma-separated exchanges
aggregatenumber01 = one row per symbol with summed volume
Response (per-venue, default)
{
  "success": true,
  "data": [
    {
      "symbol": "BTC",
      "exchange": "Binance",
      "lastPrice": 84250.50,
      "high24h": 85100.00,
      "low24h": 83200.00,
      "volume24h": 12500000000,
      "priceChange24hPct": 1.25
    }
  ],
  "meta": { "timestamp": 1713181800000, "entries": 380, "mode": "per-venue" }
}
Response (aggregate=1)
{
  "success": true,
  "data": [
    {
      "symbol": "BTC",
      "lastPrice": 84250.50,
      "high24h": 85100.00,
      "low24h": 83200.00,
      "volume24h": 38400000000,
      "priceChange24hPct": 1.27,
      "venueCount": 14
    }
  ],
  "meta": { "timestamp": 1713181800000, "entries": 230, "mode": "aggregate" }
}

Klines (OHLCV)

GET/api/v1/klines

OHLCV candle data backed by a multi-venue fallback chain (Binance perp → Bybit → OKX → Binance spot). A single venue outage doesn't break the response — the upstream that served the response is named in data.source.

ParameterTypeDefaultDescription
symbolstringrequiredBase symbol (USDT pair appended internally)
intervalstring1h1m | 5m | 15m | 1h | 4h | 1d | 1w
limitnumber100Max candles (1 to 500)
Response
{
  "success": true,
  "data": {
    "pair": "BTCUSDT",
    "interval": "1h",
    "source": "binance",
    "count": 100,
    "candles": [
      {
        "time": 1778493600000,
        "open": 80923.30,
        "high": 81162.40,
        "low": 80889.90,
        "close": 80900.80,
        "volume": 3424.195,
        "closeTime": 1778497199999
      }
    ]
  },
  "meta": { "timestamp": 1778493700000 }
}
Times are Unix milliseconds. Volume is denominated in the BASE asset (BTC for BTCUSDT) — multiply by close price for USD notional. Usedata.source to detect when the primary venue is down and your indicator math is sitting on a fallback's data shape.

Spreads

GET/api/v1/spreads

Cross-exchange price spreads ranked by opportunity size. Returns both gross spread and net spread (after round-trip taker fees on both legs), plus per-side maker + taker so callers can recompute under their own fill model.

ParameterTypeDefaultDescription
symbolsstringallComma-separated symbols
minSpreadnumber0Minimum GROSS spread % to include
limitnumber50Max results (1 to 200)
Response
{
  "success": true,
  "data": [
    {
      "symbol": "BTC",
      "spreadPct": 0.0312,
      "spreadUsd": 26.30,
      "netSpreadPct": -0.0688,
      "highExchange": "Bitfinex",
      "highPrice": 84276.30,
      "lowExchange": "Binance",
      "lowPrice": 84250.00,
      "exchangeCount": 18,
      "fees": {
        "roundTrip": 0.1000,
        "highExchangeTaker": 0.0000,
        "highExchangeMaker": 0.0000,
        "lowExchangeTaker":  0.0500,
        "lowExchangeMaker":  0.0200
      }
    }
  ],
  "meta": {
    "feeModel": {
      "version": "v1.0-2026-02-01",
      "updatedAt": "2026-02-01T00:00:00Z",
      "unit": "percent",
      "schedule": { /* full venue table */ }
    }
  }
}
Note: spreads can have NEGATIVE netSpreadPct when fees outweigh the price difference — that's the signal that the opportunity isn't actionable on taker liquidity. Bump-detect onmeta.feeModel.versionto know when to invalidate cached calcs.
Trading Intelligence

Arbitrage

GET/api/v1/arbitrage

Funding rate arbitrage opportunities with feasibility grades, PnL projections, and OI data. Short the high-rate exchange, long the low-rate exchange.

ParameterTypeDefaultDescription
minSpreadnumber0Minimum 8h spread % (e.g. 0.05)
minOInumber0Minimum OI in USD on the smaller side
gradestringallFilter by grade: A, B, C, D (comma-separated)
symbolsstringallComma-separated symbols
limitnumber100Max results (1 to 500)
assetClassstringcryptoAsset class filter
Response
{
  "success": true,
  "data": [
    {
      "symbol": "PONKE",
      "shortExchange": "Kraken",
      "longExchange": "Bitunix",
      "shortRate8h": 0.5032,
      "longRate8h": 0.0000,
      "grossSpread8h": 0.5032,
      "netSpread8h": 0.2832,
      "annualizedPct": 310.1,
      "dailyPnlPer10k": 8.50,
      "fees": {
        "roundTrip": 0.2200,
        "shortExchangeTaker": 0.0500,
        "shortExchangeMaker": 0.0200,
        "longExchangeTaker":  0.0600,
        "longExchangeMaker":  0.0200,
        "shortExchangeFee":   0.0500,
        "longExchangeFee":    0.0600
      },
      "oi": {
        "short": 500000,
        "long": 120000,
        "total": 620000,
        "minSide": 120000
      },
      "grade": "C",
      "stability": "volatile",
      "exchangeCount": 5,
      "allExchanges": [
        {
          "exchange": "Kraken",
          "rate8h": 0.5032,
          "type": "cex",
          "makerFee": 0.0200,
          "takerFee": 0.0500
        }
      ]
    }
  ],
  "meta": {
    "totalPairs": 657,
    "filtered": 50,
    "grades": { "A": 0, "B": 1, "C": 120, "D": 536 },
    "feeModel": {
      "version": "v1.0-2026-02-01",
      "updatedAt": "2026-02-01T00:00:00Z",
      "unit": "percent",
      "schedule": {
        "Binance":     { "maker": 0.0200, "taker": 0.0500 },
        "Hyperliquid": { "maker": 0.0150, "taker": 0.0450 }
      }
    }
  }
}
Fee model

All fee values are percent-per-trade (e.g. 0.05 means 0.05%). Maker may be negative on venues that rebate makers.

netSpread8h = grossSpread8h - roundTrip, where round-trip assumes taker fills (open + close on each side, so taker × 4).

Use meta.feeModel.version to detect schedule bumps — it changes whenever any EXCHANGE_FEES value changes. The same identifier is on the X-Fee-Model-Version response header for cheap HEAD checks.

Grade system
A  High OI, realistic spread, stable history
B  Good OI, moderate spread, mostly stable
C  Lower OI or volatile, still actionable
D  Fees exceed spread or very low OI

Long/Short Ratio

GET/api/v1/longshort

Long/short ratio data from Binance and OKX with historical values. Includes a derived longShortRatio(long ÷ short) and a regimeclassifier so callers don't have to bucket the values themselves.

ParameterTypeDefaultDescription
symbolstringBTCSymbol (e.g. BTC, ETH, SOL)
periodstring1hTime period: 5m, 15m, 30m, 1h, 4h, 1d
sourcestringglobalData source: global, topTraders, taker
Response
{
  "success": true,
  "data": {
    "symbol": "BTC",
    "period": "1h",
    "source": "global",
    "longRatio": 52.34,
    "shortRatio": 47.66,
    "longShortRatio": 1.098,
    "regime": "balanced",
    "exchange": "binance",
    "history": [
      { "longRatio": 52.1, "shortRatio": 47.9, "longShortRatio": 1.088, "timestamp": 1709244000 },
      { "longRatio": 52.34, "shortRatio": 47.66, "longShortRatio": 1.098, "timestamp": 1709247600 }
    ]
  }
}
Regime buckets
  • crowded-long — longRatio ≥ 70%
  • long-heavy — 60–70%
  • balanced — 40–60%
  • short-heavy — 30–40%
  • crowded-short — longRatio ≤ 30%

Liquidations

GET/api/v1/liquidations

Recent liquidation events from the database. Sources: Binance, OKX, HTX, gTrade, Deribit. Two modes: feed (default) returns individual events; summary returns aggregated stats (total / long / short volume + largest single hit) for a symbol over the lookback window — useful when you only want counts, not the full feed.

ParameterTypeDefaultDescription
symbolstringallFilter by symbol (required for summary mode)
exchangestringallFilter by exchange (feed only)
sidestringallFilter by side: long or short (feed only)
hoursnumber1Lookback window (1 to 24 hours)
limitnumber100Max entries (1 to 500; feed only)
summarynumber01 = aggregated stats instead of feed
Response (feed mode, default)
{
  "success": true,
  "data": [
    {
      "symbol": "ETH",
      "exchange": "binance",
      "side": "long",
      "quantity": 12.5,
      "price": 3245.80,
      "valueUsd": 40572.50,
      "timestamp": 1713181800000
    }
  ],
  "meta": { "timestamp": 1713181800000, "hours": 1, "entries": 1, "limit": 100, "mode": "feed" }
}
Response (summary=1, requires symbol)
{
  "success": true,
  "data": {
    "symbol": "BTC",
    "hours": 1,
    "totalCount": 247,
    "totalVolumeUsd": 8420000,
    "longVolumeUsd": 6210000,
    "shortVolumeUsd": 2210000,
    "longShare": 0.737,
    "largest": {
      "valueUsd": 425000,
      "price": 81250.00,
      "side": "long",
      "exchange": "binance",
      "timestamp": 1713181500000
    }
  },
  "meta": { "timestamp": 1713181800000, "mode": "summary" }
}

Options

GET/api/v1/options

Options market data across Deribit, Binance, OKX, and Bybit. Includes max pain, put/call ratio, open interest by strike, and implied volatility.

ParameterTypeDefaultDescription
currencystringBTCCurrency: BTC, ETH, or SOL
Response
{
  "success": true,
  "data": {
    "currency": "BTC",
    "underlyingPrice": 84250,
    "maxPain": 85000,
    "putCallRatio": 0.72,
    "totalCallOI": 7200000000,
    "totalPutOI": 5300000000,
    "totalOI": 12500000000,
    "instrumentCount": 4500,
    "ivAtm": 48.5,
    "exchanges": [
      { "exchange": "Deribit", "callOI": 5100000000, "putOI": 3800000000, "totalOI": 8900000000, "share": 71.2 }
    ],
    "expirations": [
      { "date": "2026-04-25", "callOI": 450000000, "putOI": 320000000, "totalOI": 770000000, "maxPain": 84000 }
    ]
  }
}
Market Context

Top Movers

GET/api/v1/top-movers

Top gaining and losing coins by 24h price change.

ParameterTypeDefaultDescription
limitnumber20Max gainers and losers each (1 to 50)
Response
{
  "success": true,
  "data": {
    "gainers": [
      { "symbol": "PEPE", "price": 0.0000089, "change24h": 24.5 }
    ],
    "losers": [
      { "symbol": "DOGE", "price": 0.162, "change24h": -8.2 }
    ]
  }
}

Global Stats

GET/api/v1/global-stats

Market-wide statistics: altcoin season index, BTC dominance, total market cap, 24h volume.

Response
{
  "success": true,
  "data": {
    "altcoinSeasonIndex": 38,
    "btcDominance": 57.2,
    "ethDominance": 8.1,
    "totalMarketCap": 2850000000000,
    "totalMarketCapChange24h": -1.2,
    "totalVolume24h": 98000000000,
    "totalDerivativesOI": 55000000000,
    "activeCryptocurrencies": 10200
  }
}

Fear & Greed

GET/api/v1/fear-greed

Crypto Fear & Greed Index with optional 30-day history.

ParameterTypeDefaultDescription
historybooleanfalseInclude 30 day historical values
Response
{
  "success": true,
  "data": {
    "value": 72,
    "label": "Greed",
    "timestamp": 1709248000,
    "history": [
      { "value": 68, "label": "Greed", "timestamp": 1709161600 }
    ]
  }
}

Funding History

GET/api/v1/funding/history

Historical funding rate snapshots from the database. 10-minute resolution. Lookback cap depends on your tier: Free 30d / Trader 180d / Pro 1y / Whale 5y.

ParameterTypeDefaultDescription
symbolsstring(required)Comma-separated symbols (max 20)
daysnumber7Lookback period (1 to your tier cap)
Response
{
  "success": true,
  "data": {
    "BTC": [
      { "day": "2026-04-13", "rate": 0.0082 },
      { "day": "2026-04-14", "rate": 0.0100 }
    ],
    "ETH": [
      { "day": "2026-04-13", "rate": 0.0045 },
      { "day": "2026-04-14", "rate": 0.0061 }
    ]
  },
  "meta": { "timestamp": 1713181800000, "symbols": 2, "days": 7 }
}
Reference

Exchanges

GET/api/v1/exchanges

Metadata for all 33 supported exchanges including fees, funding intervals, trade URL patterns, and a top-level feeModel with the schedule version + last-updated timestamp.

Response
{
  "success": true,
  "data": [
    {
      "name": "Binance",
      "type": "cex",
      "fees": { "takerPct": 0.05, "makerPct": 0.02, "roundTripPct": 0.10 },
      "fundingInterval": "8h",
      "tradeUrlPattern": "https://www.binance.com/en/futures/{SYMBOL}USDT"
    }
  ],
  "meta": {
    "total": 33, "cex": 19, "dex": 14,
    "timestamp": 1713181800000,
    "feeModel": {
      "version": "v1.1-2026-05-20",
      "updatedAt": "2026-05-20T00:00:00Z",
      "unit": "percent"
    }
  }
}
This endpoint is the canonical fee-schedule source — partners can cache by meta.feeModel.version and only refresh when it bumps. X-Fee-Model-Versionand X-Fee-Model-Updated-At response headers mirror the identifiers for cheap HEAD-request bump detection.

Status

GET/api/v1/status

API health check + fee-model identifier. No authentication required. Use this for uptime monitoring or as a cheap HEAD-request probe to detect fee-schedule bumps without parsing a body.

Response
{
  "success": true,
  "status": "operational",
  "version": "v1",
  "feeModel": {
    "version": "v1.0-2026-02-01",
    "updatedAt": "2026-02-01T00:00:00Z",
    "surfacedOn": ["/api/v1/arbitrage", "/api/v1/spreads", "/api/v1/funding-arb"]
  },
  "endpoints": [
    { "path": "/api/v1/funding", "method": "GET", "description": "Real-time funding rates across 33 exchanges" }
  ],
  "tiers": {
    "free": { "rateLimit": "100 req/min", "dailyLimit": "5,000 req/day" },
    "pro": { "rateLimit": "600 req/min", "dailyLimit": "unlimited" }
  },
  "documentation": "https://info-hub.io/developers/docs",
  "timestamp": 1713181800000
}
More Trading Intelligence

Funding Arbitrage

GET/api/v1/funding-arb

Cross-exchange funding-rate arbitrage SCANNER — returns GROSS spreads (no fees deducted). For the net version with feasibility grading + OI sanity + 7-day stability, see /arbitrage.

ParameterTypeDefaultDescription
min_venuesnumber3Only include symbols with N+ venues (2..40)
min_spreadnumber0.01Minimum 8h spread % to include
sortstringannualizedSort: annualized | spread | venues
limitnumber100Max symbols (1..500)
Response
{
  "success": true,
  "data": [
    {
      "symbol": "BTC",
      "venueCount": 14,
      "min": { "exchange": "Hyperliquid", "rate8h": -0.0245, "interval": "1h", "markPrice": 81250.0, "type": "dex" },
      "max": { "exchange": "Bybit", "rate8h": 0.0567, "interval": "8h", "markPrice": 81254.5, "type": "cex" },
      "spread8h": 0.0812,
      "annualized": 88.92,
      "venues": [/* every venue */],
      "dexOnOneSide": true
    }
  ],
  "summary": { "totalSymbols": 230, "displayed": 50, "topAnnualized": 1937, "topSymbol": "AR", "medianSpread": 0.03, "dexCrossSymbols": 18 },
  "meta": { "timestamp": 1709248000, "feeModel": { /* see Fee Model section */ }, "scope": "gross" }
}

CME Basis

GET/api/v1/basis

CME front-month futures basis vs spot for BTC + ETH. Annualized cash-and-carry rate institutions use to size basis trades. Persistent positive basis = risk-on.

Response
{
  "success": true,
  "data": [
    {
      "asset": "BTC",
      "spot": 81250.50,
      "cmeFront": 82100.00,
      "daysToExpiry": 28,
      "basisPct": 1.045,
      "annualizedPct": 13.63,
      "cmeSource": "CME",
      "spotSource": "coinbase"
    }
  ],
  "meta": { "timestamp": 1709248000, "fromCache": false }
}

Listing Radar

GET/api/v1/listing-radar

Real-time feed of Binance listing announcements + delistings. Listings historically pump 30-200% in the first 24h — this is the earliest pre-trade signal we publish.

ParameterTypeDefaultDescription
typestringallFilter: spot | perp | futures | option | delisting | other
hotnumber01 = only announcements <6h old
limitnumber50Max results (1..200)

Events Calendar

GET/api/v1/earnings-calendar

Aggregated upcoming protocol events: token unlocks, TGEs, halvings, governance votes. Source-attributed. One unified timeline of every catalyst that historically moves price.

On-chain & Yield

Whale Trades

GET/api/v1/whales

Recent on-chain DEX whale trades. Two modes:?address=0x... for one wallet (paginated newest-first), or no address for the global feed across every tracked wallet.

ParameterTypeDefaultDescription
addressstringLowercased EVM address or Solana base58 (optional)
chainstringallethereum | bsc | arbitrum | base | polygon | optimism | solana
minValueUsdnumber0Only trades >= this notional (global mode only)
limitnumber50Max entries (1..200)

Whale Liquidation Roulette

GET/api/v1/whale-liq

Hyperliquid whale positions sorted by proximity to liquidation price. Useful for cascade prediction and alpha generation — the closer a whale is to liq, the bigger the wipeout if it triggers.

ParameterTypeDefaultDescription
withinnumber0.20Distance threshold (0..1, e.g. 0.10 = within 10% of liq)
limitnumber100Max rows (1..500)

Smart Money Leaderboard

GET/api/v1/smart-money-leaderboard

Top Hyperliquid wallets ranked by 90-day realised PnL. For each wallet: pulls closing-trade analytics (win rate, biggest win/loss, top symbols, days-since-last). Heavy first call (~5-15s) — cached 30 min after.

Bridge Flows

GET/api/v1/bridge-flows

Cross-chain bridge flow tracker (Wormhole). Volume, transfers, top assets, top corridors across every Wormhole-supported chain. Strong leading indicator for chain rotation.

Restaking Yields

GET/api/v1/restaking

Restaking yield aggregator. Cross-protocol pools (EigenLayer + Symbiotic + Karak + LRTs) with APY, TVL, reward composition. Source: DeFi Llama yields.

Tools

Backtest

POST/api/v1/backtest

Run a strategy backtest on historical data. Two strategies: dca (dollar-cost average accumulation) and funding-carry (collect funding spread between cheap-and-expensive venues). Pure historical simulation — no fees, slippage, or execution lag modelled.

Request body (DCA)
{
  "strategy": "dca",
  "config": {
    "asset": "bitcoin",
    "amountUsd": 100,
    "intervalDays": 7,
    "lookbackDays": 90
  }
}
Request body (funding-carry)
{
  "strategy": "funding-carry",
  "config": {
    "notionalUsd": 10000,
    "lookbackDays": 30,
    "symbol": "BTC"
  }
}
Response returns daily portfolio-value series, max drawdown, and Sharpe-ish ratio.lookbackDays clamped to 365.

Error Codes

StatusCodeDescription
200OKRequest succeeded
400Bad RequestInvalid or missing parameters
401UnauthorizedMissing or invalid API key
429Too Many RequestsRate limit exceeded, check Retry-After header
500Internal ErrorSomething went wrong on our end
502Bad GatewayUpstream exchange returned an error
503UnavailableService temporarily down for maintenance
Error response format
{
  "success": false,
  "error": "Rate limit exceeded. Paid tiers bump this cap (Trader, Pro, Whale on /pricing) — all free during launch."
}