Generate an evidence-sealed synthetic counterfactual market scenario for a portfolio
POST
/investment/portfolios/{portfolio}/generative-markets
Contract
Uses an approved FinanceGPT time-series generative model to produce multi-step market-factor paths, then deterministically derives yield, credit, volatility and FX curve views and applies terminal factor states only through verified portfolio/security sensitivities. Sample quantiles are descriptive statistics over generated counterfactuals, not probabilities, forecasts or confidence intervals. Outputs are synthetic and never execution eligible.
investment:run
Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
portfolio |
path | string | Yes | — |
Request body
application/json
·
required
{
"regime": "contraction",
"sample_count": 8,
"horizon": 6,
"seed": 42,
"base_volatility_pct": 20,
"base_rate_pct": 4,
"yield_curve_slope_bps_per_year": 20,
"base_credit_spread_bps": 150,
"credit_curve_slope_bps_per_year": 10,
"base_fx_level": 1,
"stress": {
"equity_pct": -100,
"fx_pct": -100,
"rates_bps": -10000,
"credit_bps": -10000,
"commodity_pct": -100,
"volatility_pct": -100
}
}
Code examples
curl
curl -X POST \
-H "Authorization: Bearer $FINANCEGPT_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
--data '{
"regime": "contraction",
"sample_count": 8,
"horizon": 6,
"seed": 42,
"base_volatility_pct": 20,
"base_rate_pct": 4,
"yield_curve_slope_bps_per_year": 20,
"base_credit_spread_bps": 150,
"credit_curve_slope_bps_per_year": 10,
"base_fx_level": 1,
"stress": {
"equity_pct": -100,
"fx_pct": -100,
"rates_bps": -10000,
"credit_bps": -10000,
"commodity_pct": -100,
"volatility_pct": -100
}
}' \
"https://financegpt.dev/api/v2/investment/portfolios/{portfolio}/generative-markets"
javascript
const response = await fetch("https:\/\/financegpt.dev\/api\/v2\/investment\/portfolios\/{portfolio}\/generative-markets", {
method: "POST",
headers: {
Authorization: `Bearer ${FINANCEGPT_API_KEY}`,
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"regime": "contraction",
"sample_count": 8,
"horizon": 6,
"seed": 42,
"base_volatility_pct": 20,
"base_rate_pct": 4,
"yield_curve_slope_bps_per_year": 20,
"base_credit_spread_bps": 150,
"credit_curve_slope_bps_per_year": 10,
"base_fx_level": 1,
"stress": {
"equity_pct": -100,
"fx_pct": -100,
"rates_bps": -10000,
"credit_bps": -10000,
"commodity_pct": -100,
"volatility_pct": -100
}
}),
});
const data = await response.json();
python
import json
import os
import requests
response = requests.request(
'POST',
'https://financegpt.dev/api/v2/investment/portfolios/{portfolio}/generative-markets',
headers={
'Authorization': 'Bearer ' + os.environ['FINANCEGPT_API_KEY'],
'Accept': 'application/json',
},
json=json.loads('{"regime":"contraction","sample_count":8,"horizon":6,"seed":42,"base_volatility_pct":20,"base_rate_pct":4,"yield_curve_slope_bps_per_year":20,"base_credit_spread_bps":150,"credit_curve_slope_bps_per_year":10,"base_fx_level":1,"stress":{"equity_pct":-100,"fx_pct":-100,"rates_bps":-10000,"credit_bps":-10000,"commodity_pct":-100,"volatility_pct":-100}}'),
)
response.raise_for_status()
print(response.json())
php
<?php
$ch = curl_init('https://financegpt.dev/api/v2/investment/portfolios/{portfolio}/generative-markets');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('FINANCEGPT_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(array (
'regime' => 'contraction',
'sample_count' => 8,
'horizon' => 6,
'seed' => 42,
'base_volatility_pct' => 20,
'base_rate_pct' => 4,
'yield_curve_slope_bps_per_year' => 20,
'base_credit_spread_bps' => 150,
'credit_curve_slope_bps_per_year' => 10,
'base_fx_level' => 1,
'stress' =>
array (
'equity_pct' => -100,
'fx_pct' => -100,
'rates_bps' => -10000,
'credit_bps' => -10000,
'commodity_pct' => -100,
'volatility_pct' => -100,
),
)),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Responses
| Status | Description |
|---|---|
201 |
Evidence-sealed synthetic generative market run with paths |
422 |
Invalid conditioning input |
503 |
Approved generative model |
Authority boundary
A developer credential proves application identity and permits only its scopes. It does not grant model promotion, policy override, QLM rebinding, or Financial Actions execution authority unless those separate controls are satisfied.
investment:run