---
title: "Get Quant Market"
method: GET
path: "/api/v1/quant/market"
tags: ["Quant"]
---

# Get Quant Market

`GET /api/v1/quant/market`

## Request

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

Whole-market regime + probability object (Pro).

HMM-filtered posterior over the 6 market regimes (strong_trend_bull/bear,
range_low_vol, choppy_high_vol, vol_spike, squeeze) with calibrated
probability buckets for direction, volatility, liquidation risk, funding,
breadth, open interest and regime transitions at the requested horizon.
The market `liquidation_risk` bucket is depth-aware — driven by live
order-book fragility (thin book + wide spread = higher forced-liquidation
odds), not just realized volatility; the source is tagged in
`explain.heads_provenance` (e.g. `depth_fragility:thin`).
Includes seeded Monte Carlo tomorrow-distribution stats on the 24h horizon
and a full `explain` block. Refreshed every 15 minutes from hourly bars.
Market-wide and per-coin regime data (/quant/coins) are both Pro.

## Query parameters

- `horizon` '4h' | '24h'

## Response `200`

Successful Response

- QuantProbabilityObject: Full probability object for one scope (market or coin) at one horizon. `probabilities` maps head name (directional, volatility, liquidation_risk, funding, breadth [market only], open_interest, regime_transitions) to its bucket->probability map; every head carries its own `confidence`. `regime`/`probabilities` are null while the scope is warming up. `regime` is the nowcast (present state), not a per-horizon forecast — it is computed once and is therefore byte-identical across `horizon` values for the same scope at the same instant. `current` is an unambiguous alias for the same object, added so callers don't have to infer that from re-reading `regime` at two horizons; the horizon-specific forecast lives in `probabilities.regime_transitions` and `tomorrow`.
  - `scope` string, required
  - `symbol` string, nullable
  - `timestamp` string, required
  - `horizon` string, required
  - `regime` QuantRegimeState
    - `label` string, required: Regime label, e.g. strong_trend_bull
    - `name` string, required: Display name, e.g. Strong Trend (Bull)
    - `id` integer, required
    - `confidence` number, required: Calibrated confidence, degraded by staleness/history
    - `confidence_raw` number, required: Raw max label posterior, pre-calibration
    - `label_raw` string, required: Argmax label before hysteresis (headline label may lag)
    - `candles_in_regime` integer, required
    - `in_regime_since` string, nullable: ISO open time of the first closed 1h bar of the current label run (= last bar − (candles_in_regime − 1) h). Null while warming.
    - `pending` object, nullable: Hysteresis challenger streak {label, count, needed}; null when no challenger is accumulating bars
    - `hysteresis` object, nullable: Switch rule constants {margin, bars, override, incumbent_floor, min_dwell_bars=0} — there is no minimum dwell
  - `current` QuantRegimeState
    - `label` string, required: Regime label, e.g. strong_trend_bull
    - `name` string, required: Display name, e.g. Strong Trend (Bull)
    - `id` integer, required
    - `confidence` number, required: Calibrated confidence, degraded by staleness/history
    - `confidence_raw` number, required: Raw max label posterior, pre-calibration
    - `label_raw` string, required: Argmax label before hysteresis (headline label may lag)
    - `candles_in_regime` integer, required
    - `in_regime_since` string, nullable: ISO open time of the first closed 1h bar of the current label run (= last bar − (candles_in_regime − 1) h). Null while warming.
    - `pending` object, nullable: Hysteresis challenger streak {label, count, needed}; null when no challenger is accumulating bars
    - `hysteresis` object, nullable: Switch rule constants {margin, bars, override, incumbent_floor, min_dwell_bars=0} — there is no minimum dwell
  - `probabilities` object, nullable
  - `tomorrow` object, nullable: Seeded Monte Carlo tomorrow stats (24h horizon only)
  - `meta` QuantMeta, required
    - `model_version` string, required
    - `model_family` string, required
    - `last_retrain` string, required
    - `data_staleness_ms` integer, nullable
    - `feature_coverage` number, nullable
    - `insufficient_history` boolean
    - `status` string, required: ok | degraded | warming_up
    - `backfilled` boolean
  - `explain` object, nullable: Feature z-scores, posteriors, hysteresis state, calibration — every adjustment inspectable

## 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)
