Options

Per-contract volume vs rolling baseline (unusual options activity)

Changed on

Derived endpoint that flags contracts whose current per-contract volume materially exceeds the contract's own rolling average across the last baseline_window_days dated snapshots. Walks the latest options snapshot's per-contract volumes; for each contract (both calls and puts) computes baseline_avg = mean(volume across days the contract appeared with positive volume) and flags rows where current_volume / baseline_avg > threshold. Per-row output carries OSI contract symbol + strike + expiry + current volume + baseline + ratio + supplementary Greeks (delta + IV). Sorted by ratio DESC; truncated to limit. Use case: bullish skew detection in concert with Form 4 insider purchases.

get/api/v1/options/{symbol}/unusual-volume

Request

  • Base URL
    https://sugra.ai
  • Auth
    API key in header x-api-key

Path parameters

symbolstring required

Underlier ticker.

Example:AAPL

Query parameters

thresholdnumber

Volume-ratio threshold for the unusual flag (1.5..50). Default 3.0 = 3x the contract's rolling average.

limitinteger

Maximum flagged contracts returned (1..200).

baseline_window_daysinteger

Rolling baseline window in calendar days (5..90). Defaults to 30. Bounded by 90-day retention.

min_volumeinteger

Minimum current-snapshot volume for a contract to be evaluated (filters illiquid deep-OTM strikes).

min_baseline_daysinteger

Minimum baseline coverage (days the contract appeared with positive volume) required for a contract to qualify. Contracts below this floor land in contracts_excluded_no_baseline.

Response

Unusual options activity payload.

Example response

{
  "data": {
    "symbol": "AAPL",
    "snapshot_date": "2026-05-19",
    "underlier_price": 187.45,
    "threshold": 3,
    "baseline_window_days": 30,
    "baseline_snapshots_loaded": 28,
    "min_volume": 100,
    "min_baseline_days": 5,
    "contracts_evaluated": 487,
    "contracts_excluded_no_baseline": 42,
    "unusual_count": 12,
    "unusual_contracts": [
      {
        "contract_symbol": "AAPL260606C00200000",
        "option_type": "C",
        "strike": 200,
        "expiry": "2026-06-06",
        "current_volume": 15000,
        "baseline_avg_volume": 1200.5,
        "baseline_days_count": 25,
        "volume_ratio": 12.49,
        "open_interest": 8000,
        "implied_volatility": 0.42,
        "delta": 0.35
      }
    ],
    "data_source": "cboe_options_direct",
    "as_of": "2026-05-23T22:50:34Z"
  },
  "meta": {
    "endpoint": "/api/v1/fred/us/cpi",
    "data_time": "2026-04-16T14:30:00Z",
    "response_time": "2026-04-16T14:30:12Z",
    "provider": "Sugra API v1.0.1",
    "data_age_days": 8.532,
    "source": "sugra_crypto",
    "attribution": "Short interest and Reg SHO daily short volume data is owned by and sourced from FINRA (Financial Industry Regulatory Authority).",
    "source_url": "https://fred.stlouisfed.org/series/UNRATE",
    "citation": "Federal Reserve Bank of St. Louis (FRED) - Unemployment Rate (UNRATE) - https://fred.stlouisfed.org/series/UNRATE - retrieved 2026-11-02",
    "fallback_chain": [
      "sugra_crypto",
      "sugra_finance"
    ],
    "stale_since": "2026-09-08T12:00:00Z",
    "period": "2026-Q1",
    "notes": "the UKMTO report behind these counts is dated 2026-08-21 and is 11 days old"
  }
}

Changes

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • breaking

      added subschema #1 to the response body oneOf list for the response status

    • breaking

      the response's body type changed from object to no type for status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    This list may be incomplete.