Calculate Component VaR
curl --request POST \
--url https://api.fincept.in/quantlib/risk/var/component \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"returns_by_factor": {
"US_equities": [
0.012,
-0.018,
0.025,
-0.008,
0.015
],
"EU_bonds": [
0.003,
-0.002,
0.004,
-0.001,
0.002
],
"commodities": [
0.02,
-0.03,
0.015,
-0.012,
0.018
]
},
"weights": {
"US_equities": 0.5,
"EU_bonds": 0.3,
"commodities": 0.2
},
"confidence": 0.95,
"portfolio_value": 10000000
}
'import requests
url = "https://api.fincept.in/quantlib/risk/var/component"
payload = {
"returns_by_factor": {
"US_equities": [0.012, -0.018, 0.025, -0.008, 0.015],
"EU_bonds": [0.003, -0.002, 0.004, -0.001, 0.002],
"commodities": [0.02, -0.03, 0.015, -0.012, 0.018]
},
"weights": {
"US_equities": 0.5,
"EU_bonds": 0.3,
"commodities": 0.2
},
"confidence": 0.95,
"portfolio_value": 10000000
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
returns_by_factor: {
US_equities: [0.012, -0.018, 0.025, -0.008, 0.015],
EU_bonds: [0.003, -0.002, 0.004, -0.001, 0.002],
commodities: [0.02, -0.03, 0.015, -0.012, 0.018]
},
weights: {US_equities: 0.5, EU_bonds: 0.3, commodities: 0.2},
confidence: 0.95,
portfolio_value: 10000000
})
};
fetch('https://api.fincept.in/quantlib/risk/var/component', 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.fincept.in/quantlib/risk/var/component",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'returns_by_factor' => [
'US_equities' => [
0.012,
-0.018,
0.025,
-0.008,
0.015
],
'EU_bonds' => [
0.003,
-0.002,
0.004,
-0.001,
0.002
],
'commodities' => [
0.02,
-0.03,
0.015,
-0.012,
0.018
]
],
'weights' => [
'US_equities' => 0.5,
'EU_bonds' => 0.3,
'commodities' => 0.2
],
'confidence' => 0.95,
'portfolio_value' => 10000000
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/risk/var/component"
payload := strings.NewReader("{\n \"returns_by_factor\": {\n \"US_equities\": [\n 0.012,\n -0.018,\n 0.025,\n -0.008,\n 0.015\n ],\n \"EU_bonds\": [\n 0.003,\n -0.002,\n 0.004,\n -0.001,\n 0.002\n ],\n \"commodities\": [\n 0.02,\n -0.03,\n 0.015,\n -0.012,\n 0.018\n ]\n },\n \"weights\": {\n \"US_equities\": 0.5,\n \"EU_bonds\": 0.3,\n \"commodities\": 0.2\n },\n \"confidence\": 0.95,\n \"portfolio_value\": 10000000\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/risk/var/component")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"returns_by_factor\": {\n \"US_equities\": [\n 0.012,\n -0.018,\n 0.025,\n -0.008,\n 0.015\n ],\n \"EU_bonds\": [\n 0.003,\n -0.002,\n 0.004,\n -0.001,\n 0.002\n ],\n \"commodities\": [\n 0.02,\n -0.03,\n 0.015,\n -0.012,\n 0.018\n ]\n },\n \"weights\": {\n \"US_equities\": 0.5,\n \"EU_bonds\": 0.3,\n \"commodities\": 0.2\n },\n \"confidence\": 0.95,\n \"portfolio_value\": 10000000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/risk/var/component")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"returns_by_factor\": {\n \"US_equities\": [\n 0.012,\n -0.018,\n 0.025,\n -0.008,\n 0.015\n ],\n \"EU_bonds\": [\n 0.003,\n -0.002,\n 0.004,\n -0.001,\n 0.002\n ],\n \"commodities\": [\n 0.02,\n -0.03,\n 0.015,\n -0.012,\n 0.018\n ]\n },\n \"weights\": {\n \"US_equities\": 0.5,\n \"EU_bonds\": 0.3,\n \"commodities\": 0.2\n },\n \"confidence\": 0.95,\n \"portfolio_value\": 10000000\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"US_equities": 125000,
"EU_bonds": 35000,
"commodities": 78000,
"total_var": 238000
}
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient credits. This endpoint requires 5 credits."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}quantlib-risk
Calculate Component VaR
Calculates the contribution of each portfolio component (asset or risk factor) to total portfolio VaR. This decomposition helps identify which positions drive portfolio risk and enables better risk budgeting decisions. Essential for risk attribution and portfolio optimization. [Tier: PRO, Credits: 5]
POST
/
quantlib
/
risk
/
var
/
component
Calculate Component VaR
curl --request POST \
--url https://api.fincept.in/quantlib/risk/var/component \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"returns_by_factor": {
"US_equities": [
0.012,
-0.018,
0.025,
-0.008,
0.015
],
"EU_bonds": [
0.003,
-0.002,
0.004,
-0.001,
0.002
],
"commodities": [
0.02,
-0.03,
0.015,
-0.012,
0.018
]
},
"weights": {
"US_equities": 0.5,
"EU_bonds": 0.3,
"commodities": 0.2
},
"confidence": 0.95,
"portfolio_value": 10000000
}
'import requests
url = "https://api.fincept.in/quantlib/risk/var/component"
payload = {
"returns_by_factor": {
"US_equities": [0.012, -0.018, 0.025, -0.008, 0.015],
"EU_bonds": [0.003, -0.002, 0.004, -0.001, 0.002],
"commodities": [0.02, -0.03, 0.015, -0.012, 0.018]
},
"weights": {
"US_equities": 0.5,
"EU_bonds": 0.3,
"commodities": 0.2
},
"confidence": 0.95,
"portfolio_value": 10000000
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
returns_by_factor: {
US_equities: [0.012, -0.018, 0.025, -0.008, 0.015],
EU_bonds: [0.003, -0.002, 0.004, -0.001, 0.002],
commodities: [0.02, -0.03, 0.015, -0.012, 0.018]
},
weights: {US_equities: 0.5, EU_bonds: 0.3, commodities: 0.2},
confidence: 0.95,
portfolio_value: 10000000
})
};
fetch('https://api.fincept.in/quantlib/risk/var/component', 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.fincept.in/quantlib/risk/var/component",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'returns_by_factor' => [
'US_equities' => [
0.012,
-0.018,
0.025,
-0.008,
0.015
],
'EU_bonds' => [
0.003,
-0.002,
0.004,
-0.001,
0.002
],
'commodities' => [
0.02,
-0.03,
0.015,
-0.012,
0.018
]
],
'weights' => [
'US_equities' => 0.5,
'EU_bonds' => 0.3,
'commodities' => 0.2
],
'confidence' => 0.95,
'portfolio_value' => 10000000
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/risk/var/component"
payload := strings.NewReader("{\n \"returns_by_factor\": {\n \"US_equities\": [\n 0.012,\n -0.018,\n 0.025,\n -0.008,\n 0.015\n ],\n \"EU_bonds\": [\n 0.003,\n -0.002,\n 0.004,\n -0.001,\n 0.002\n ],\n \"commodities\": [\n 0.02,\n -0.03,\n 0.015,\n -0.012,\n 0.018\n ]\n },\n \"weights\": {\n \"US_equities\": 0.5,\n \"EU_bonds\": 0.3,\n \"commodities\": 0.2\n },\n \"confidence\": 0.95,\n \"portfolio_value\": 10000000\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/risk/var/component")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"returns_by_factor\": {\n \"US_equities\": [\n 0.012,\n -0.018,\n 0.025,\n -0.008,\n 0.015\n ],\n \"EU_bonds\": [\n 0.003,\n -0.002,\n 0.004,\n -0.001,\n 0.002\n ],\n \"commodities\": [\n 0.02,\n -0.03,\n 0.015,\n -0.012,\n 0.018\n ]\n },\n \"weights\": {\n \"US_equities\": 0.5,\n \"EU_bonds\": 0.3,\n \"commodities\": 0.2\n },\n \"confidence\": 0.95,\n \"portfolio_value\": 10000000\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/risk/var/component")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"returns_by_factor\": {\n \"US_equities\": [\n 0.012,\n -0.018,\n 0.025,\n -0.008,\n 0.015\n ],\n \"EU_bonds\": [\n 0.003,\n -0.002,\n 0.004,\n -0.001,\n 0.002\n ],\n \"commodities\": [\n 0.02,\n -0.03,\n 0.015,\n -0.012,\n 0.018\n ]\n },\n \"weights\": {\n \"US_equities\": 0.5,\n \"EU_bonds\": 0.3,\n \"commodities\": 0.2\n },\n \"confidence\": 0.95,\n \"portfolio_value\": 10000000\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"US_equities": 125000,
"EU_bonds": 35000,
"commodities": 78000,
"total_var": 238000
}
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient credits. This endpoint requires 5 credits."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API key for authentication. Get your key at https://api.fincept.in/auth/register
Body
application/json
Dictionary mapping factor/asset names to their historical return arrays
Show child attributes
Show child attributes
Example:
{
"equities": [0.01, -0.02, 0.015],
"bonds": [0.005, -0.003, 0.004]
}
Portfolio weights for each factor (must sum to 1.0)
Show child attributes
Show child attributes
Example:
{ "equities": 0.6, "bonds": 0.4 }
Confidence level for VaR calculation
Example:
0.99
Total portfolio value
Example:
1000000
⌘I
