Skip to content

GET /v1/multi-asset

GET https://api.hypquant.com/v1/multi-asset

Returns the same field across multiple symbols in wide format — one column per symbol. Ideal for correlation matrices, portfolio analytics, and cross-asset strategies. Requires an API key.


Parameters

Name Type Required Description
symbols string yes Comma-separated pairs, e.g. BTC-USDC,ETH-USDC,SOL-USDC
exchange string yes hyperliquid or binance
timeframe string yes 1m, 5m, 15m, 1h, 4h, 1d
field string yes open, high, low, close, volume, funding_rate, or any feature name
start string yes Start time — ISO8601 or Unix milliseconds
end string no End time. Defaults to now

Tier restrictions

  • Free: max 5 symbols per request; 1h+ only; ≤ 365-day window.
  • Pro: max 30 symbols per request.
  • Scale: unlimited symbols.

Response

{
  "symbols": ["BTC-USDC", "ETH-USDC", "SOL-USDC"],
  "exchange": "hyperliquid",
  "timeframe": "1h",
  "field": "close",
  "count": 2,
  "data": [
    {
      "time": "2024-01-01T00:00:00+00:00",
      "BTC-USDC": "42289.000000",
      "ETH-USDC": "2285.500000",
      "SOL-USDC": "101.200000"
    },
    {
      "time": "2024-01-01T01:00:00+00:00",
      "BTC-USDC": "42450.000000",
      "ETH-USDC": "2302.000000",
      "SOL-USDC": "103.500000"
    }
  ]
}

Timestamps are aligned across symbols. If a symbol is missing a candle (gap), its cell is absent for that row.


Examples

from hypquant import MarketData
import polars as pl

with MarketData(api_key="qp_...") as md:
    # Closing prices for correlation analysis
    df = md.multi_asset(
        symbols=["BTC-USDC", "ETH-USDC", "SOL-USDC", "ARB-USDC"],
        exchange="hyperliquid",
        timeframe="1h",
        field="close",
        start="2024-01-01",
        end="2024-06-01",
    )

    # Compute correlation matrix
    corr = df.select(pl.exclude("time")).to_pandas().corr()
    print(corr)
curl -H "X-API-Key: qp_..." \
  "https://api.hypquant.com/v1/multi-asset?symbols=BTC-USDC,ETH-USDC,SOL-USDC&exchange=hyperliquid&timeframe=1h&field=close&start=2024-01-01T00:00:00Z"
# RSI-14 for 3 assets in one call
df = md.multi_asset(
    symbols=["BTC-USDC", "ETH-USDC", "SOL-USDC"],
    exchange="hyperliquid",
    timeframe="1h",
    field="rsi_14",
    start="2024-01-01",
)

Error responses

HTTP error code Cause
400 MISSING_SYMBOLS symbols parameter is empty
400 INVALID_TIMEFRAME Timeframe not in allowed set
400 INVALID_TIMESTAMP start or end could not be parsed
400 INVALID_TIME_RANGE start is after end
401 UNAUTHORIZED Missing or invalid API key
403 TIER_LIMIT_EXCEEDED Symbol count, timeframe, or history window exceeds tier
429 RATE_LIMIT_EXCEEDED Daily or per-minute request quota reached