TradePortfolio
DocsSurface History

Surface History

Dev

GET /options/surface-history


Full options volatility surface history for one supported exchange — all strikes and expiries for every hour in the requested window. Returns a nested structure keyed by hour, then by option instrument. The most data-intensive options endpoint; designed for volatility surface modeling, smile fitting, and historical vol research.

Authentication

Requires Dev tier or higher. Dev: up to 30 days (range=30d). Pro and Team: full stored history. Supported pairs: BTC/ETH on Deribit, Binance, Bybit, OKX, and Derive; HYPE on Deribit/Derive; SOL/XRP on Deribit/Binance/Bybit/Derive; DOGE on Binance/Bybit; BNB on Binance; ZEC on Derive.

Parameters

Query parameters

NameTypeRequiredDescription
symbolstring–BTC, ETH, HYPE, SOL, ZEC, XRP, DOGE, or BNB. Supported venues vary by symbol. Defaults to BTC.
exchangestring✓deribit, binance, bybit, okx, or derive.
rangestring–Day lookback such as 7d, 30d, 90d, or a larger Nd window for Pro/Team. Defaults to 30d. Legacy days is accepted until July 21, 2026.

Example request

bash
curl -H "X-Api-Key: lk_live_your_key_here" \
  "https://api.loris.tools/options/surface-history?symbol=BTC&exchange=deribit&range=7d"

Example response

json
{
  "symbol": "BTC",
  "exchange": "deribit",
  "range": "7d",
  "days": 7,
  "hours": ["2026-06-01T00:00:00Z", "2026-06-01T01:00:00Z"],
  "snapshots": {
    "2026-06-01T00:00:00Z": [
      {
        "expiry": "2026-06-27T08:00:00Z",
        "strike": 65000,
        "side": "call",
        "iv": 0.742,
        "underlying_price": 69800.00,
        "open_interest": 412
      },
      {
        "expiry": "2026-06-27T08:00:00Z",
        "strike": 70000,
        "side": "call",
        "iv": 0.718,
        "underlying_price": 69800.00,
        "open_interest": 1842
      }
    ]
  }
}

Errors

  • 400 — invalid range.
  • 403 — range exceeds your tier's limit. Dev: 30d max.

For authentication errors (401) and rate limit responses (429), see Errors.

Related