curl --request GET \
--url https://api.example.com/api/graph/v1/market/regimeimport requests
url = "https://api.example.com/api/graph/v1/market/regime"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/graph/v1/market/regime', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/graph/v1/market/regime",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/graph/v1/market/regime"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/graph/v1/market/regime")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/graph/v1/market/regime")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"regime_v5": {
"strong_trend": 123,
"mild_trend": 123,
"rotation": 123,
"vol_expand": 123,
"compressed": 123,
"transitional": 123,
"dominant": "<string>",
"confidence": 123,
"computed_at": "<string>"
},
"vix": {
"level": 1,
"regime": "low_complacent",
"term_structure": "contango",
"size_adjustment": "<string>",
"sma_50": 1,
"percentile": 50,
"can_trade": true
},
"day_classification": {
"day_type": "trending",
"trend_score": 50,
"rotation_score": 50,
"strategy_bias": "<string>",
"day_type_detail": "mixed",
"day_type_confidence": 0,
"size_modifier": 1,
"signals": [
"<string>"
]
},
"vol_regime": {
"regime": "<string>",
"regime_confidence": 123,
"term_structure": "<string>",
"atm_iv": 123,
"iv_rank_252d": 123,
"iv_percentile_252d": 123,
"realized_vol_20d": 123,
"skew_label": "<string>",
"vov_label": "<string>",
"time": "2023-11-07T05:31:56Z"
},
"gex_regime": {
"gex_regime": "<string>",
"total_gex": 123,
"gamma_flip_strike": 123,
"pin_strike": 123,
"spot_price": 123,
"time": "2023-11-07T05:31:56Z"
},
"regime_computed_at": "2023-11-07T05:31:56Z",
"vol_regime_as_of": "2023-11-07T05:31:56Z",
"gex_as_of": "2023-11-07T05:31:56Z",
"regime_direction": "<string>",
"regime_volatility": "<string>",
"regime_label": "<string>",
"regime_episode_day": 123,
"regime_shock": true,
"regime_slope_pctile": 123,
"regime_vol_pctile": 123,
"regime_slope_raw": 123,
"regime_vol_raw": 123,
"recommended_preset_trading": "<string>",
"recommended_preset_investor": "<string>",
"regime_stable_since": "<string>",
"market_conditions": [
"<string>"
],
"favored_strategies": [
"<string>"
]
}Get unified market regime context
Get unified market regime context combining V5 regime probability vector, VIX context, vol regime, and GEX regime in a single response.
The V5 regime vector is the canonical regime state, computed by RegimeScorerV5 which ingests VIX, VolRegime, GEX, day type, and breadth. This endpoint surfaces the full vector alongside its input signals for transparency.
Each source carries its own timestamp for staleness detection:
- regime_computed_at: when PD last computed the V5 vector
- vol_regime_as_of: vol regime snapshot (may be up to 30 min stale)
- gex_as_of: GEX snapshot timestamp
Partial results are returned if any source fails (with None fields).
Cached for 5 minutes.
curl --request GET \
--url https://api.example.com/api/graph/v1/market/regimeimport requests
url = "https://api.example.com/api/graph/v1/market/regime"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/graph/v1/market/regime', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/graph/v1/market/regime",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/graph/v1/market/regime"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/graph/v1/market/regime")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/graph/v1/market/regime")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"regime_v5": {
"strong_trend": 123,
"mild_trend": 123,
"rotation": 123,
"vol_expand": 123,
"compressed": 123,
"transitional": 123,
"dominant": "<string>",
"confidence": 123,
"computed_at": "<string>"
},
"vix": {
"level": 1,
"regime": "low_complacent",
"term_structure": "contango",
"size_adjustment": "<string>",
"sma_50": 1,
"percentile": 50,
"can_trade": true
},
"day_classification": {
"day_type": "trending",
"trend_score": 50,
"rotation_score": 50,
"strategy_bias": "<string>",
"day_type_detail": "mixed",
"day_type_confidence": 0,
"size_modifier": 1,
"signals": [
"<string>"
]
},
"vol_regime": {
"regime": "<string>",
"regime_confidence": 123,
"term_structure": "<string>",
"atm_iv": 123,
"iv_rank_252d": 123,
"iv_percentile_252d": 123,
"realized_vol_20d": 123,
"skew_label": "<string>",
"vov_label": "<string>",
"time": "2023-11-07T05:31:56Z"
},
"gex_regime": {
"gex_regime": "<string>",
"total_gex": 123,
"gamma_flip_strike": 123,
"pin_strike": 123,
"spot_price": 123,
"time": "2023-11-07T05:31:56Z"
},
"regime_computed_at": "2023-11-07T05:31:56Z",
"vol_regime_as_of": "2023-11-07T05:31:56Z",
"gex_as_of": "2023-11-07T05:31:56Z",
"regime_direction": "<string>",
"regime_volatility": "<string>",
"regime_label": "<string>",
"regime_episode_day": 123,
"regime_shock": true,
"regime_slope_pctile": 123,
"regime_vol_pctile": 123,
"regime_slope_raw": 123,
"regime_vol_raw": 123,
"recommended_preset_trading": "<string>",
"recommended_preset_investor": "<string>",
"regime_stable_since": "<string>",
"market_conditions": [
"<string>"
],
"favored_strategies": [
"<string>"
]
}Response
Unified regime context
Unified market regime context combining all regime signals.
The V5 regime probability vector is canonical — computed by RegimeScorerV5 in the pattern-detector, which already ingests VIX, VolRegime, GEX, day type, and breadth. This response surfaces the full vector alongside its input signals for transparency.
V5 regime probability vector from graph
Show child attributes
Show child attributes
VIX context
Show child attributes
Show child attributes
Day type classification
Show child attributes
Show child attributes
Latest vol regime snapshot
Show child attributes
Show child attributes
Latest GEX snapshot
Show child attributes
Show child attributes
When the V5 regime was last computed
Vol regime snapshot timestamp (30-min staleness possible)
GEX snapshot timestamp
Regime direction: BULL, SIDEWAYS, or BEAR
Regime volatility: HIGH or LOW
Human-readable regime label (e.g., 'Steady Uptrend')
Consecutive days in current regime
Whether a transient shock override is active
0-100 percentile of 50d OLS slope
0-100 percentile of 20d Parkinson vol
Annualized % OLS slope
Annualized % Parkinson vol
Recommended trading screener preset for current regime
Recommended investor screener preset for current regime
ISO timestamp of when current regime was computed
Active market condition flags
Strategy types favored in current conditions