---
title: "Get Volatility Regime"
method: GET
path: "/api/v1/volatility/regime"
tags: ["Volatility Regime"]
---

# Get Volatility Regime

`GET /api/v1/volatility/regime`

## Request

- Base URL: `https://cryptodataapi.com`
- URL: `https://cryptodataapi.com/api/v1/volatility/regime`
- Auth: API key in header `X-API-Key`

Per-asset realized-volatility regime across the SIGNUM_RGG universe.

Each asset is classified into one of ``vol_shock``, ``expanding``,
``compressed``, ``mean_reverting``, or ``normal`` from realized vol (close-to-
close, Parkinson, Garman-Klass) on daily klines. Each entry carries 7d/30d
vol, the 90d vol percentile, term structure (7d/30d), and a vol-target
position-size multiplier (``target_vol / current_vol``, capped).

**Backfillable** — replayable from daily klines (unlike the intraday-only
liquidity regime). The ``vol.rv_1h`` field is live-only and lands null on
historically backfilled days.

**``vol_target_multiplier`` is ABSOLUTE**: ``60 / rv_gk_30`` (close-to-close
fallback) clamped to ``[0.25, 3.0]`` — not a percentile of the coin's own
history. A coin with 30d vol >= 240% pins at 0.25 for as long as that holds
(``vol.multiplier_at_floor``, ``vol.multiplier_floor_days``). For a
**shock gate use ``vol.rv_z_7 >= 2``** (7d vol two sigmas above its own
trailing 90d) or ``vol_pctile_7``; ``vol_shock`` itself is relative (7d GK
at/above the 90th percentile of the coin's own 90d).

A coin needs ``MIN_BARS`` = 40 daily bars to be classified. Rows whose
candle fetch failed this cycle are carried over from the previous build
(``stale_cycles`` > 0, max 8 cycles) rather than vanishing.

Example screens: `?regime=compressed&sort=days_compressed` (longest dry
tinder), `?regime=vol_shock` (acute spikes), `?sort=vol_target_multiplier&
order=desc` (assets a vol-targeter would size up).

**Tiers:** Free is scoped to BTC only; Pro / Pro Plus return the full universe.

## Query parameters

- `source` 'binance_spot' | 'hyperliquid_perp', nullable
- `regime` 'vol_shock' | 'expanding' | 'compressed' | 'mean_reverting' | 'normal', nullable: Filter by volatility regime
- `sort` 'symbol' | 'rv_gk_30' | 'rv_gk_7' | 'vol_pctile_30' | 'term_structure_ratio' | 'vol_target_multiplier' | 'days_compressed'
- `order` 'asc' | 'desc'
- `limit` integer

## Response `200`

Successful Response

- VolatilityRegimeResponse
  - `items` VolatilityRegimeItem[], required
    - `symbol` string, required
    - `source` 'binance_spot' | 'hyperliquid_perp', required
    - `price` number, required
    - `regime` 'vol_shock' | 'expanding' | 'compressed' | 'mean_reverting' | 'normal', required
    - `is_stable` boolean
    - `vol` VolMetricsModel, required
      - `rv_cc_7` number, nullable
      - `rv_cc_30` number, nullable
      - `rv_parkinson_30` number, nullable
      - `rv_gk_7` number, nullable
      - `rv_gk_30` number, nullable
      - `rv_1h` number, nullable
      - `vol_pctile_30` number, nullable
      - `vol_pctile_7` number, nullable
      - `rv_z_30` number, nullable
      - `rv_z_7` number, nullable
      - `term_structure_ratio` number, nullable
      - `vol_target_multiplier` number, nullable
      - `days_compressed` integer
      - `days_shock` integer
      - `days_in_regime` integer
      - `prev_regime` 'vol_shock' | 'expanding' | 'compressed' | 'mean_reverting' | 'normal', nullable
      - `regime_changed` boolean
      - `notional_30` number, nullable
      - `multiplier_at_floor` boolean: True when vol_target_multiplier is pinned at its 0.25 floor (30d realized vol >= 240%). The multiplier is absolute (60 / rv), not a percentile.
      - `multiplier_floor_days` integer: Consecutive latest daily bars the multiplier has sat at the floor (0 when not at the floor)
    - `stale_cycles` integer: Consecutive 30-min rebuild cycles this row was carried over from the previous build because its candle fetch failed (0 = computed this cycle)
  - `count` integer, required
  - `universe_size` integer, required
  - `timestamp` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/cryptodataapi/apis/crypto-data-api.md) · [All operations](https://skmtc.dev/cryptodataapi/apis/crypto-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cryptodataapi/apis/crypto-data-api/revisions/8628b754ca81?raw)
