← Developer Hub
Investment Analytics
Portfolio Scenario Lab
Run deterministic price and verified-sensitivity factor shocks against a governed portfolio.
Version: v2
Stability: stable
Sandbox: Available
Production: Entitlement required
Target latency: ≤ 850 ms
POST
/api/v2/investment/portfolios/{portfolio}/scenariosMissing factor sensitivities are reported as coverage gaps rather than inferred.
Required scope:
investment:runTry it in the FinanceGPT sandbox
The playground uses deterministic isolated sandbox fixtures. It never queries production workspace data and does not require you to paste an API secret into the browser.
Sign in to runExample response
{
"data": {
"status": "completed",
"change_pct": -8.4000000000000003552713678800500929355621337890625,
"coverage_gaps": []
}
}Code examples
curl
curl -X POST \
https://financegpt.dev/api/v2/investment/portfolios/1/scenarios \
-H "Authorization: Bearer $FINANCEGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"global_price_pct":-10,"factors":{"rates_bps":150}}'python
import os, requests
url = "https://financegpt.dev/api/v2/investment/portfolios/1/scenarios"
headers = {"Authorization": f"Bearer {os.environ['FINANCEGPT_API_KEY']}"}
payload = {
"global_price_pct": -10,
"factors": {
"rates_bps": 150
}
}
response = requests.request("POST", url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())javascript
const response = await fetch('https://financegpt.dev/api/v2/investment/portfolios/1/scenarios', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.FINANCEGPT_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"global_price_pct":-10,"factors":{"rates_bps":150}})
});
if (!response.ok) throw new Error(`FinanceGPT ${response.status}`);
console.log(await response.json());php
<?php
$ch = curl_init('https://financegpt.dev/api/v2/investment/portfolios/1/scenarios');
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_HTTPHEADER => ['Authorization: Bearer '.getenv('FINANCEGPT_API_KEY'), 'Content-Type: application/json'], CURLOPT_POSTFIELDS => '{\"global_price_pct\":-10,\"factors\":{\"rates_bps\":150}}']);
$response = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) >= 400) throw new RuntimeException($response);
echo $response;Versions & changelog
v2 published
M27 publication of this governed FinanceGPT API operation.
Ready to build?
Explorer gives immediate isolated sandbox access. Production plans require a commercial entitlement.
Create account