curl --request POST \
--url https://api.riskportal.activeviam.com/api/MarketData/UploadVolSurfaceSpotModelDefinitions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json-patch+json' \
--data '
{
"$type": "Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core",
"market_data_environment_name": "Example market data",
"provider_id": "<string>",
"vol_surface_spot_model_definitions": [
{
"$type": "Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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": {
"$type": "Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core",
"code": "<string>",
"market_identification_code": "<string>"
},
"reference_date": "2023-11-07T05:31:56Z",
"model_id": "<string>",
"tenors": [
"<string>"
],
"betas_up": [
123
],
"betas_dn": [
123
]
}
]
}
'import requests
url = "https://api.riskportal.activeviam.com/api/MarketData/UploadVolSurfaceSpotModelDefinitions"
payload = {
"$type": "Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core",
"market_data_environment_name": "Example market data",
"provider_id": "<string>",
"vol_surface_spot_model_definitions": [
{
"$type": "Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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": {
"$type": "Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core",
"code": "<string>",
"market_identification_code": "<string>"
},
"reference_date": "2023-11-07T05:31:56Z",
"model_id": "<string>",
"tenors": ["<string>"],
"betas_up": [123],
"betas_dn": [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.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core',
market_data_environment_name: 'Example market data',
provider_id: '<string>',
vol_surface_spot_model_definitions: [
{
$type: 'Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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: {
$type: 'Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core',
code: '<string>',
market_identification_code: '<string>'
},
reference_date: '2023-11-07T05:31:56Z',
model_id: '<string>',
tenors: ['<string>'],
betas_up: [123],
betas_dn: [123]
}
]
})
};
fetch('https://api.riskportal.activeviam.com/api/MarketData/UploadVolSurfaceSpotModelDefinitions', 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/UploadVolSurfaceSpotModelDefinitions",
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.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core',
'market_data_environment_name' => 'Example market data',
'provider_id' => '<string>',
'vol_surface_spot_model_definitions' => [
[
'$type' => 'Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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' => [
'$type' => 'Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core',
'code' => '<string>',
'market_identification_code' => '<string>'
],
'reference_date' => '2023-11-07T05:31:56Z',
'model_id' => '<string>',
'tenors' => [
'<string>'
],
'betas_up' => [
123
],
'betas_dn' => [
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/UploadVolSurfaceSpotModelDefinitions"
payload := strings.NewReader("{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surface_spot_model_definitions\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"model_id\": \"<string>\",\n \"tenors\": [\n \"<string>\"\n ],\n \"betas_up\": [\n 123\n ],\n \"betas_dn\": [\n 123\n ]\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/UploadVolSurfaceSpotModelDefinitions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surface_spot_model_definitions\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"model_id\": \"<string>\",\n \"tenors\": [\n \"<string>\"\n ],\n \"betas_up\": [\n 123\n ],\n \"betas_dn\": [\n 123\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.riskportal.activeviam.com/api/MarketData/UploadVolSurfaceSpotModelDefinitions")
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.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surface_spot_model_definitions\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"model_id\": \"<string>\",\n \"tenors\": [\n \"<string>\"\n ],\n \"betas_up\": [\n 123\n ],\n \"betas_dn\": [\n 123\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"$type": "Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsResponse, Derivitec.Web.Core",
"is_success": true,
"error_messages": [
"<string>"
]
}Upload a batch of equity volatility-index surface spot model definitions.
Requires edit or owner access to a non-default market-data provider. The asset identifier is resolved to an internal volatility-index ID. Only BetaAdjustedATMF is supported; the model type is not an input. Tenors must resolve to positive, strictly increasing maturities from the reference date, with one finite up and down beta per tenor. Betas multiply the signed relative equity spot shock to produce an absolute decimal ATMF volatility change. A successful upload replaces the same asset/model/date/provider record before returning, stamps the authenticated uploader and upload time, and clears the rolled flag. Subsequent rolling preserves these user-uploaded contributions. All rows use the request’s authorized provider, overriding row ProviderId and provenance. Invalid rows, unresolved identifiers and duplicate resolved asset/model/date identities reject the batch before saving. Persistence is not transactional.
curl --request POST \
--url https://api.riskportal.activeviam.com/api/MarketData/UploadVolSurfaceSpotModelDefinitions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json-patch+json' \
--data '
{
"$type": "Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core",
"market_data_environment_name": "Example market data",
"provider_id": "<string>",
"vol_surface_spot_model_definitions": [
{
"$type": "Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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": {
"$type": "Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core",
"code": "<string>",
"market_identification_code": "<string>"
},
"reference_date": "2023-11-07T05:31:56Z",
"model_id": "<string>",
"tenors": [
"<string>"
],
"betas_up": [
123
],
"betas_dn": [
123
]
}
]
}
'import requests
url = "https://api.riskportal.activeviam.com/api/MarketData/UploadVolSurfaceSpotModelDefinitions"
payload = {
"$type": "Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core",
"market_data_environment_name": "Example market data",
"provider_id": "<string>",
"vol_surface_spot_model_definitions": [
{
"$type": "Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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": {
"$type": "Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core",
"code": "<string>",
"market_identification_code": "<string>"
},
"reference_date": "2023-11-07T05:31:56Z",
"model_id": "<string>",
"tenors": ["<string>"],
"betas_up": [123],
"betas_dn": [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.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core',
market_data_environment_name: 'Example market data',
provider_id: '<string>',
vol_surface_spot_model_definitions: [
{
$type: 'Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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: {
$type: 'Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core',
code: '<string>',
market_identification_code: '<string>'
},
reference_date: '2023-11-07T05:31:56Z',
model_id: '<string>',
tenors: ['<string>'],
betas_up: [123],
betas_dn: [123]
}
]
})
};
fetch('https://api.riskportal.activeviam.com/api/MarketData/UploadVolSurfaceSpotModelDefinitions', 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/UploadVolSurfaceSpotModelDefinitions",
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.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core',
'market_data_environment_name' => 'Example market data',
'provider_id' => '<string>',
'vol_surface_spot_model_definitions' => [
[
'$type' => 'Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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' => [
'$type' => 'Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core',
'code' => '<string>',
'market_identification_code' => '<string>'
],
'reference_date' => '2023-11-07T05:31:56Z',
'model_id' => '<string>',
'tenors' => [
'<string>'
],
'betas_up' => [
123
],
'betas_dn' => [
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/UploadVolSurfaceSpotModelDefinitions"
payload := strings.NewReader("{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surface_spot_model_definitions\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"model_id\": \"<string>\",\n \"tenors\": [\n \"<string>\"\n ],\n \"betas_up\": [\n 123\n ],\n \"betas_dn\": [\n 123\n ]\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/UploadVolSurfaceSpotModelDefinitions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"$type\": \"Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surface_spot_model_definitions\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"model_id\": \"<string>\",\n \"tenors\": [\n \"<string>\"\n ],\n \"betas_up\": [\n 123\n ],\n \"betas_dn\": [\n 123\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.riskportal.activeviam.com/api/MarketData/UploadVolSurfaceSpotModelDefinitions")
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.ApiUploadVolSurfaceSpotModelDefinitionsRequest, Derivitec.Web.Core\",\n \"market_data_environment_name\": \"Example market data\",\n \"provider_id\": \"<string>\",\n \"vol_surface_spot_model_definitions\": [\n {\n \"$type\": \"Derivitec.Web.Core.MarketData.VolSurfaceSpotModelDefinition, 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\": {\n \"$type\": \"Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core\",\n \"code\": \"<string>\",\n \"market_identification_code\": \"<string>\"\n },\n \"reference_date\": \"2023-11-07T05:31:56Z\",\n \"model_id\": \"<string>\",\n \"tenors\": [\n \"<string>\"\n ],\n \"betas_up\": [\n 123\n ],\n \"betas_dn\": [\n 123\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"$type": "Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsResponse, Derivitec.Web.Core",
"is_success": true,
"error_messages": [
"<string>"
]
}Authorizations
OAuth2 access-token requested from AWS Cognito and provided as a Auth Bearer header
Body
A nonempty list of definitions with asset identifiers, reference dates, model IDs, tenors and beta lists. Supply either ProviderId or MarketDataEnvironmentName, not both; omitting both selects the caller's organisation scope.
Uploads a batch of beta-adjusted ATMF spot model definitions to one writable provider.
Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsRequest, 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.
Required nonempty list of definitions. Null rows and duplicate resolved asset/model/date identities are rejected. All rows use the request's authorized provider; row provenance is replaced by server-managed upload metadata.
Show child attributes
Show child attributes
Response
Returns the upload outcome and any validation, provider, identifier or persistence errors.
Reports the batch upload outcome and any validation, identifier, provider or persistence errors.
Derivitec.Web.Core.MarketData.ApiUploadVolSurfaceSpotModelDefinitionsResponse, 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?