curl --request GET \
--url https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant \
--header 'x-api-key: <api-key>'import requests
url = "https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant', 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.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": 200,
"title": "OK",
"description": "Successful request",
"payload": {
"data": [
{
"atm": 59.35,
"call10PercentOutOfMoneyVolatility": 61.03,
"call20PercentOutOfMoneyVolatility": 64.05,
"call30PercentOutOfMoneyVolatility": 67.42,
"call40PercentOutOfMoneyVolatility": 70.72,
"currency": "BTC",
"daysToExpiration": 180,
"exchange": "deribit",
"indexPrice": 103240.09,
"put10PercentOutOfMoneyVolatility": 60.59,
"put20PercentOutOfMoneyVolatility": 65.37,
"put30PercentOutOfMoneyVolatility": 72.77,
"put40PercentOutOfMoneyVolatility": 81.97,
"timestamp": "2025-01-23T00:25:00.000Z",
"underlyingPrice": 109432.44
},
{
"atm": 57.87,
"call10PercentOutOfMoneyVolatility": 60.18,
"call20PercentOutOfMoneyVolatility": 63.83,
"call30PercentOutOfMoneyVolatility": 67.9,
"call40PercentOutOfMoneyVolatility": 72,
"currency": "BTC",
"daysToExpiration": 30,
"exchange": "deribit",
"indexPrice": 103240.09,
"put10PercentOutOfMoneyVolatility": 58.58,
"put20PercentOutOfMoneyVolatility": 64.47,
"put30PercentOutOfMoneyVolatility": 76.7,
"put40PercentOutOfMoneyVolatility": 94.31,
"timestamp": "2025-01-23T00:25:00.000Z",
"underlyingPrice": 104203.24
},
{
"atm": 58.2,
"call10PercentOutOfMoneyVolatility": 59.59,
"call20PercentOutOfMoneyVolatility": 62.1,
"call30PercentOutOfMoneyVolatility": 65.1,
"call40PercentOutOfMoneyVolatility": 68.26,
"currency": "BTC",
"daysToExpiration": 60,
"exchange": "deribit",
"indexPrice": 103240.09,
"put10PercentOutOfMoneyVolatility": 58.9,
"put20PercentOutOfMoneyVolatility": 62.49,
"put30PercentOutOfMoneyVolatility": 69.29,
"put40PercentOutOfMoneyVolatility": 79.36,
"timestamp": "2025-01-23T00:25:00.000Z",
"underlyingPrice": 105332.44
},
{
"atm": 56.75,
"call10PercentOutOfMoneyVolatility": 63.1,
"call20PercentOutOfMoneyVolatility": 74.14,
"call30PercentOutOfMoneyVolatility": 85.49,
"call40PercentOutOfMoneyVolatility": 96.02,
"currency": "BTC",
"daysToExpiration": 7,
"exchange": "deribit",
"indexPrice": 103240.09,
"put10PercentOutOfMoneyVolatility": 64.49,
"put20PercentOutOfMoneyVolatility": 85.77,
"put30PercentOutOfMoneyVolatility": 113.03,
"put40PercentOutOfMoneyVolatility": 142.61,
"timestamp": "2025-01-23T00:25:00.000Z",
"underlyingPrice": 103491.37
}
]
}
}{}Moneyness Surfaces Constant
This endpoint returns the option implied volatility surface in the form of moneyness from the “underlying” future’s price for constant expirations. This surface is calibrated using SVI and is therefor available in hourly format (historical), real-time (on-going) for BTC and ETH on Deribit only.
curl --request GET \
--url https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant \
--header 'x-api-key: <api-key>'import requests
url = "https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant', 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.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.amberdata.com/markets/derivatives/analytics/volatility/moneyness-surfaces/constant")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": 200,
"title": "OK",
"description": "Successful request",
"payload": {
"data": [
{
"atm": 59.35,
"call10PercentOutOfMoneyVolatility": 61.03,
"call20PercentOutOfMoneyVolatility": 64.05,
"call30PercentOutOfMoneyVolatility": 67.42,
"call40PercentOutOfMoneyVolatility": 70.72,
"currency": "BTC",
"daysToExpiration": 180,
"exchange": "deribit",
"indexPrice": 103240.09,
"put10PercentOutOfMoneyVolatility": 60.59,
"put20PercentOutOfMoneyVolatility": 65.37,
"put30PercentOutOfMoneyVolatility": 72.77,
"put40PercentOutOfMoneyVolatility": 81.97,
"timestamp": "2025-01-23T00:25:00.000Z",
"underlyingPrice": 109432.44
},
{
"atm": 57.87,
"call10PercentOutOfMoneyVolatility": 60.18,
"call20PercentOutOfMoneyVolatility": 63.83,
"call30PercentOutOfMoneyVolatility": 67.9,
"call40PercentOutOfMoneyVolatility": 72,
"currency": "BTC",
"daysToExpiration": 30,
"exchange": "deribit",
"indexPrice": 103240.09,
"put10PercentOutOfMoneyVolatility": 58.58,
"put20PercentOutOfMoneyVolatility": 64.47,
"put30PercentOutOfMoneyVolatility": 76.7,
"put40PercentOutOfMoneyVolatility": 94.31,
"timestamp": "2025-01-23T00:25:00.000Z",
"underlyingPrice": 104203.24
},
{
"atm": 58.2,
"call10PercentOutOfMoneyVolatility": 59.59,
"call20PercentOutOfMoneyVolatility": 62.1,
"call30PercentOutOfMoneyVolatility": 65.1,
"call40PercentOutOfMoneyVolatility": 68.26,
"currency": "BTC",
"daysToExpiration": 60,
"exchange": "deribit",
"indexPrice": 103240.09,
"put10PercentOutOfMoneyVolatility": 58.9,
"put20PercentOutOfMoneyVolatility": 62.49,
"put30PercentOutOfMoneyVolatility": 69.29,
"put40PercentOutOfMoneyVolatility": 79.36,
"timestamp": "2025-01-23T00:25:00.000Z",
"underlyingPrice": 105332.44
},
{
"atm": 56.75,
"call10PercentOutOfMoneyVolatility": 63.1,
"call20PercentOutOfMoneyVolatility": 74.14,
"call30PercentOutOfMoneyVolatility": 85.49,
"call40PercentOutOfMoneyVolatility": 96.02,
"currency": "BTC",
"daysToExpiration": 7,
"exchange": "deribit",
"indexPrice": 103240.09,
"put10PercentOutOfMoneyVolatility": 64.49,
"put20PercentOutOfMoneyVolatility": 85.77,
"put30PercentOutOfMoneyVolatility": 113.03,
"put40PercentOutOfMoneyVolatility": 142.61,
"timestamp": "2025-01-23T00:25:00.000Z",
"underlyingPrice": 103491.37
}
]
}
}{}Authorizations
Query Parameters
[Required] The underlying currency for which there are listed option instruments.
[Examples] BTC | ETH
[Optional] Payload only includes data after this date (inclusive).
[Formats] seconds | milliseconds | iso8601
[Examples] 1578531600 | 1578531600000 | 2020-09-01T01:00:00
[Optional] Payload only includes data before this date (exclusive).
[Formats] seconds | milliseconds | iso8601
[Examples] 1578531600 | 1578531600000 | 2020-09-01T01:00:00
[Optional] Users can pass a days to expiration filter lower bound, to return only a subset of the delta surface.
[Examples] 1 | 7 | 60
[Optional] Users can pass a days to expiration filter upper bound, to return only a subset of the delta surface.
[Examples] 1 | 30 | 180
[Optional] Time format of the timestamps in the return payload.
[Defaults] milliseconds | ms* | iso | iso8601 | hr | human_readable
Was this page helpful?