curl --request POST \
--url https://api.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json-patch+json' \
--data '
{
"$type": "Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core",
"market_data_environment_name": "Example market data",
"provider_id": "<string>",
"vol_surfaces": [
{
"$type": "Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core",
"provider_id": "<string>",
"derivitec_created": "<string>",
"derivitec_modified": "<string>",
"uploaded_date_time": "<string>",
"derivitec_modified_by": "<string>",
"uploaded_by": "<string>",
"rolled": false,
"asset_name": {
"$type": "Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core",
"code": "<string>",
"market_identification_code": "<string>"
},
"benchmark_fwd_factors": [
123
],
"benchmark_maturities": [
123
],
"reference_date": "2023-11-07T05:31:56Z",
"spot_ref": 123
}
]
}
'import requests
url = "https://api.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces"
payload = {
"$type": "Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core",
"market_data_environment_name": "Example market data",
"provider_id": "<string>",
"vol_surfaces": [
{
"$type": "Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core",
"provider_id": "<string>",
"derivitec_created": "<string>",
"derivitec_modified": "<string>",
"uploaded_date_time": "<string>",
"derivitec_modified_by": "<string>",
"uploaded_by": "<string>",
"rolled": False,
"asset_name": {
"$type": "Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core",
"code": "<string>",
"market_identification_code": "<string>"
},
"benchmark_fwd_factors": [123],
"benchmark_maturities": [123],
"reference_date": "2023-11-07T05:31:56Z",
"spot_ref": 123
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({
$type: 'Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core',
market_data_environment_name: 'Example market data',
provider_id: '<string>',
vol_surfaces: [
{
$type: 'Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core',
provider_id: '<string>',
derivitec_created: '<string>',
derivitec_modified: '<string>',
uploaded_date_time: '<string>',
derivitec_modified_by: '<string>',
uploaded_by: '<string>',
rolled: false,
asset_name: {
$type: 'Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core',
code: '<string>',
market_identification_code: '<string>'
},
benchmark_fwd_factors: [123],
benchmark_maturities: [123],
reference_date: '2023-11-07T05:31:56Z',
spot_ref: 123
}
]
})
};
fetch('https://api.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces', 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.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces",
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([
'$type' => 'Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core',
'market_data_environment_name' => 'Example market data',
'provider_id' => '<string>',
'vol_surfaces' => [
[
'$type' => 'Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core',
'provider_id' => '<string>',
'derivitec_created' => '<string>',
'derivitec_modified' => '<string>',
'uploaded_date_time' => '<string>',
'derivitec_modified_by' => '<string>',
'uploaded_by' => '<string>',
'rolled' => false,
'asset_name' => [
'$type' => 'Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core',
'code' => '<string>',
'market_identification_code' => '<string>'
],
'benchmark_fwd_factors' => [
123
],
'benchmark_maturities' => [
123
],
'reference_date' => '2023-11-07T05:31:56Z',
'spot_ref' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json-patch+json"
],
]);
$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.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces"
payload := strings.NewReader("{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surfaces\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core\",\n \"provider_id\": \"<string>\",\n \"derivitec_created\": \"<string>\",\n \"derivitec_modified\": \"<string>\",\n \"uploaded_date_time\": \"<string>\",\n \"derivitec_modified_by\": \"<string>\",\n \"uploaded_by\": \"<string>\",\n \"rolled\": false,\n \"asset_name\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"benchmark_fwd_factors\": [\n 123\n ],\n \"benchmark_maturities\": [\n 123\n ],\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"spot_ref\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json-patch+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.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surfaces\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core\",\n \"provider_id\": \"<string>\",\n \"derivitec_created\": \"<string>\",\n \"derivitec_modified\": \"<string>\",\n \"uploaded_date_time\": \"<string>\",\n \"derivitec_modified_by\": \"<string>\",\n \"uploaded_by\": \"<string>\",\n \"rolled\": false,\n \"asset_name\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"benchmark_fwd_factors\": [\n 123\n ],\n \"benchmark_maturities\": [\n 123\n ],\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"spot_ref\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surfaces\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core\",\n \"provider_id\": \"<string>\",\n \"derivitec_created\": \"<string>\",\n \"derivitec_modified\": \"<string>\",\n \"uploaded_date_time\": \"<string>\",\n \"derivitec_modified_by\": \"<string>\",\n \"uploaded_by\": \"<string>\",\n \"rolled\": false,\n \"asset_name\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"benchmark_fwd_factors\": [\n 123\n ],\n \"benchmark_maturities\": [\n 123\n ],\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"spot_ref\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"$type": "Derivitec.Web.Core.ApiBaseResponse, Derivitec.Web.Core",
"is_success": true,
"error_messages": []
}Store parameterised volatility surfaces for equities.
Use this operation to publish SVI or spline equity volatility surfaces to a non-default provider that the
caller may edit. Each surface requires a supported equity, date-only reference date, distinct benchmark
maturities in days, and one forward factor per maturity. SVI Vols are decimal volatility values
(0.20 means 20%). Spline VarGrid entries are total variances (decimal volatility squared times
year fraction), not percentage volatility values. SVI parameter vectors, or spline strike and variance grids,
must align with those maturities. Unsupported or invalid surfaces are reported and skipped; identical
duplicates are collapsed, while conflicting surfaces for the same equity and date stop the upload. Accepted
surfaces replace the same provider, equity, and reference-date contributions before the response returns.
curl --request POST \
--url https://api.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json-patch+json' \
--data '
{
"$type": "Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core",
"market_data_environment_name": "Example market data",
"provider_id": "<string>",
"vol_surfaces": [
{
"$type": "Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core",
"provider_id": "<string>",
"derivitec_created": "<string>",
"derivitec_modified": "<string>",
"uploaded_date_time": "<string>",
"derivitec_modified_by": "<string>",
"uploaded_by": "<string>",
"rolled": false,
"asset_name": {
"$type": "Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core",
"code": "<string>",
"market_identification_code": "<string>"
},
"benchmark_fwd_factors": [
123
],
"benchmark_maturities": [
123
],
"reference_date": "2023-11-07T05:31:56Z",
"spot_ref": 123
}
]
}
'import requests
url = "https://api.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces"
payload = {
"$type": "Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core",
"market_data_environment_name": "Example market data",
"provider_id": "<string>",
"vol_surfaces": [
{
"$type": "Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core",
"provider_id": "<string>",
"derivitec_created": "<string>",
"derivitec_modified": "<string>",
"uploaded_date_time": "<string>",
"derivitec_modified_by": "<string>",
"uploaded_by": "<string>",
"rolled": False,
"asset_name": {
"$type": "Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core",
"code": "<string>",
"market_identification_code": "<string>"
},
"benchmark_fwd_factors": [123],
"benchmark_maturities": [123],
"reference_date": "2023-11-07T05:31:56Z",
"spot_ref": 123
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({
$type: 'Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core',
market_data_environment_name: 'Example market data',
provider_id: '<string>',
vol_surfaces: [
{
$type: 'Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core',
provider_id: '<string>',
derivitec_created: '<string>',
derivitec_modified: '<string>',
uploaded_date_time: '<string>',
derivitec_modified_by: '<string>',
uploaded_by: '<string>',
rolled: false,
asset_name: {
$type: 'Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core',
code: '<string>',
market_identification_code: '<string>'
},
benchmark_fwd_factors: [123],
benchmark_maturities: [123],
reference_date: '2023-11-07T05:31:56Z',
spot_ref: 123
}
]
})
};
fetch('https://api.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces', 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.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces",
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([
'$type' => 'Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core',
'market_data_environment_name' => 'Example market data',
'provider_id' => '<string>',
'vol_surfaces' => [
[
'$type' => 'Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core',
'provider_id' => '<string>',
'derivitec_created' => '<string>',
'derivitec_modified' => '<string>',
'uploaded_date_time' => '<string>',
'derivitec_modified_by' => '<string>',
'uploaded_by' => '<string>',
'rolled' => false,
'asset_name' => [
'$type' => 'Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core',
'code' => '<string>',
'market_identification_code' => '<string>'
],
'benchmark_fwd_factors' => [
123
],
'benchmark_maturities' => [
123
],
'reference_date' => '2023-11-07T05:31:56Z',
'spot_ref' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json-patch+json"
],
]);
$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.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces"
payload := strings.NewReader("{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surfaces\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core\",\n \"provider_id\": \"<string>\",\n \"derivitec_created\": \"<string>\",\n \"derivitec_modified\": \"<string>\",\n \"uploaded_date_time\": \"<string>\",\n \"derivitec_modified_by\": \"<string>\",\n \"uploaded_by\": \"<string>\",\n \"rolled\": false,\n \"asset_name\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"benchmark_fwd_factors\": [\n 123\n ],\n \"benchmark_maturities\": [\n 123\n ],\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"spot_ref\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json-patch+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.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surfaces\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core\",\n \"provider_id\": \"<string>\",\n \"derivitec_created\": \"<string>\",\n \"derivitec_modified\": \"<string>\",\n \"uploaded_date_time\": \"<string>\",\n \"derivitec_modified_by\": \"<string>\",\n \"uploaded_by\": \"<string>\",\n \"rolled\": false,\n \"asset_name\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"benchmark_fwd_factors\": [\n 123\n ],\n \"benchmark_maturities\": [\n 123\n ],\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"spot_ref\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.riskportal.activeviam.com/api/MarketData/UploadEquityVolSurfaces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surfaces\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core\",\n \"provider_id\": \"<string>\",\n \"derivitec_created\": \"<string>\",\n \"derivitec_modified\": \"<string>\",\n \"uploaded_date_time\": \"<string>\",\n \"derivitec_modified_by\": \"<string>\",\n \"uploaded_by\": \"<string>\",\n \"rolled\": false,\n \"asset_name\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"benchmark_fwd_factors\": [\n 123\n ],\n \"benchmark_maturities\": [\n 123\n ],\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"spot_ref\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"$type": "Derivitec.Web.Core.ApiBaseResponse, Derivitec.Web.Core",
"is_success": true,
"error_messages": []
}Authorizations
OAuth2 access-token requested from AWS Cognito and provided as a Auth Bearer header
Body
The upload payload. Provide either ProviderId or MarketDataEnvironmentName, not both; omitting both selects the caller's organisation scope. VolSurfaces must be non-empty and contain supported SVI or spline surface objects with the required aligned vectors and spot reference; SVI Vols use decimal volatility units and spline VarGrid uses total variance.
Submits equity volatility surfaces.
Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest, Derivitec.Web.Core Name of the market-data environment to use. Supply either this name or provider_id, not both.
"Example market data"
Opaque identifier of the market-data provider to use. Supply either this identifier or market_data_environment_name, not both.
Equity volatility surfaces to upload.
Equity volatility surface with benchmark coordinates and a spot reference.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Response
Returns whether any surfaces were stored and errors for invalid providers, identifiers, vector shapes, parameters, or conflicting duplicates.
Common operation outcome containing a success indicator and any error messages.
Derivitec.Web.Core.ApiBaseResponse, Derivitec.Web.Core Whether the operation completed successfully. The default is true; error outcomes set it to false.
true
Messages explaining operation-level failures. The collection is empty by default.
Was this page helpful?