Generalized Extreme Value (GEV) Distribution
curl --request POST \
--url https://api.fincept.in/quantlib/risk/evt/gev \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"data": [
-0.08,
-0.12,
-0.05,
-0.15,
-0.09,
-0.18,
-0.11
],
"fit_method": "mle",
"return_periods": [
10,
50,
100,
250
]
}
'import requests
url = "https://api.fincept.in/quantlib/risk/evt/gev"
payload = {
"data": [-0.08, -0.12, -0.05, -0.15, -0.09, -0.18, -0.11],
"fit_method": "mle",
"return_periods": [10, 50, 100, 250]
}
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({
data: [-0.08, -0.12, -0.05, -0.15, -0.09, -0.18, -0.11],
fit_method: 'mle',
return_periods: [10, 50, 100, 250]
})
};
fetch('https://api.fincept.in/quantlib/risk/evt/gev', 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/evt/gev",
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([
'data' => [
-0.08,
-0.12,
-0.05,
-0.15,
-0.09,
-0.18,
-0.11
],
'fit_method' => 'mle',
'return_periods' => [
10,
50,
100,
250
]
]),
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/evt/gev"
payload := strings.NewReader("{\n \"data\": [\n -0.08,\n -0.12,\n -0.05,\n -0.15,\n -0.09,\n -0.18,\n -0.11\n ],\n \"fit_method\": \"mle\",\n \"return_periods\": [\n 10,\n 50,\n 100,\n 250\n ]\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/evt/gev")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"data\": [\n -0.08,\n -0.12,\n -0.05,\n -0.15,\n -0.09,\n -0.18,\n -0.11\n ],\n \"fit_method\": \"mle\",\n \"return_periods\": [\n 10,\n 50,\n 100,\n 250\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/risk/evt/gev")
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 \"data\": [\n -0.08,\n -0.12,\n -0.05,\n -0.15,\n -0.09,\n -0.18,\n -0.11\n ],\n \"fit_method\": \"mle\",\n \"return_periods\": [\n 10,\n 50,\n 100,\n 250\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"mu": -0.105,
"sigma": 0.035,
"xi": 0.18,
"return_levels": {
"10": -0.185,
"50": -0.245,
"100": -0.278,
"250": -0.325
}
}
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient credits. This endpoint requires 5 credits."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}quantlib-risk
Generalized Extreme Value (GEV) Distribution
Fits a Generalized Extreme Value distribution to block maxima (e.g., maximum annual losses). GEV combines three types of extreme value distributions (Gumbel, Frechet, Weibull) and is used to model rare events like maximum flood levels, worst portfolio losses, or largest operational losses. Essential for return level estimation and long-term risk planning. [Tier: PRO, Credits: 5]
POST
/
quantlib
/
risk
/
evt
/
gev
Generalized Extreme Value (GEV) Distribution
curl --request POST \
--url https://api.fincept.in/quantlib/risk/evt/gev \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"data": [
-0.08,
-0.12,
-0.05,
-0.15,
-0.09,
-0.18,
-0.11
],
"fit_method": "mle",
"return_periods": [
10,
50,
100,
250
]
}
'import requests
url = "https://api.fincept.in/quantlib/risk/evt/gev"
payload = {
"data": [-0.08, -0.12, -0.05, -0.15, -0.09, -0.18, -0.11],
"fit_method": "mle",
"return_periods": [10, 50, 100, 250]
}
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({
data: [-0.08, -0.12, -0.05, -0.15, -0.09, -0.18, -0.11],
fit_method: 'mle',
return_periods: [10, 50, 100, 250]
})
};
fetch('https://api.fincept.in/quantlib/risk/evt/gev', 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/evt/gev",
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([
'data' => [
-0.08,
-0.12,
-0.05,
-0.15,
-0.09,
-0.18,
-0.11
],
'fit_method' => 'mle',
'return_periods' => [
10,
50,
100,
250
]
]),
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/evt/gev"
payload := strings.NewReader("{\n \"data\": [\n -0.08,\n -0.12,\n -0.05,\n -0.15,\n -0.09,\n -0.18,\n -0.11\n ],\n \"fit_method\": \"mle\",\n \"return_periods\": [\n 10,\n 50,\n 100,\n 250\n ]\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/evt/gev")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"data\": [\n -0.08,\n -0.12,\n -0.05,\n -0.15,\n -0.09,\n -0.18,\n -0.11\n ],\n \"fit_method\": \"mle\",\n \"return_periods\": [\n 10,\n 50,\n 100,\n 250\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/risk/evt/gev")
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 \"data\": [\n -0.08,\n -0.12,\n -0.05,\n -0.15,\n -0.09,\n -0.18,\n -0.11\n ],\n \"fit_method\": \"mle\",\n \"return_periods\": [\n 10,\n 50,\n 100,\n 250\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"mu": -0.105,
"sigma": 0.035,
"xi": 0.18,
"return_levels": {
"10": -0.185,
"50": -0.245,
"100": -0.278,
"250": -0.325
}
}
}{
"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
Block maxima (e.g., annual maximum losses)
Minimum array length:
20Example:
[-0.08, -0.12, -0.05, -0.15]
Fitting method
Available options:
mle, pwm Example:
"mle"
Return periods (in years) for which to calculate return levels
Example:
[10, 50, 100, 250]
⌘I
