curl --request GET \
--url https://api.amberdata.com/markets/derivatives/analytics/volatility/open-interest/tradfi \
--header 'x-api-key: <api-key>'import requests
url = "https://api.amberdata.com/markets/derivatives/analytics/volatility/open-interest/tradfi"
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/open-interest/tradfi', 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/open-interest/tradfi",
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/open-interest/tradfi"
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/open-interest/tradfi")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.amberdata.com/markets/derivatives/analytics/volatility/open-interest/tradfi")
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": [
{
"currency": "IBIT",
"expirationTimestamp": "2025-05-02 00:00:00 000",
"instrument": "IBIT-02MAY25-25-C",
"instrumentNormalized": "TRADFI-IBIT-02MAY25-25-C",
"openInterest": 23713,
"putCall": "C",
"strike": 25,
"timestamp": "2025-04-30 00:00:00 000"
},
{
"currency": "IBIT",
"expirationTimestamp": "2025-05-02 00:00:00 000",
"instrument": "IBIT-02MAY25-25-P",
"instrumentNormalized": "TRADFI-IBIT-02MAY25-25-P",
"openInterest": 12580,
"putCall": "P",
"strike": 25,
"timestamp": "2025-04-30 00:00:00 000"
}
]
}
}{}Open Interest
This endpoint returns the end-of-day (EOD) open interest snapshot. Unlike the crypto landscape where open interest is continuously updated, the tradFi environment only updates open interest once per day. This is because the clearing house needs to tally up all the activity for the day, in order to publish outstanding open interest at the end-of-the-day.
curl --request GET \
--url https://api.amberdata.com/markets/derivatives/analytics/volatility/open-interest/tradfi \
--header 'x-api-key: <api-key>'import requests
url = "https://api.amberdata.com/markets/derivatives/analytics/volatility/open-interest/tradfi"
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/open-interest/tradfi', 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/open-interest/tradfi",
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/open-interest/tradfi"
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/open-interest/tradfi")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.amberdata.com/markets/derivatives/analytics/volatility/open-interest/tradfi")
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": [
{
"currency": "IBIT",
"expirationTimestamp": "2025-05-02 00:00:00 000",
"instrument": "IBIT-02MAY25-25-C",
"instrumentNormalized": "TRADFI-IBIT-02MAY25-25-C",
"openInterest": 23713,
"putCall": "C",
"strike": 25,
"timestamp": "2025-04-30 00:00:00 000"
},
{
"currency": "IBIT",
"expirationTimestamp": "2025-05-02 00:00:00 000",
"instrument": "IBIT-02MAY25-25-P",
"instrumentNormalized": "TRADFI-IBIT-02MAY25-25-P",
"openInterest": 12580,
"putCall": "P",
"strike": 25,
"timestamp": "2025-04-30 00:00:00 000"
}
]
}
}{}Authorizations
Query Parameters
[Required] The underlying currency for which there are listed option instruments.
[Examples] IBIT | COIN
[Optional] The option instrument subset with a given strike price.
[Examples] 50 | 100
[Optional] The option instrument subset with a given expiration date.
[Examples] 2027-01-15
[Optional] The option instrument subset that's either a call (C) or put (P).
[Examples] P | C
[Optional] Payload only includes data for this timestamp.
[Formats] seconds | milliseconds | iso8601
[Examples] 1578531600 | 1578531600000 | 2024-11-19
[Optional] Time format of the timestamps in the return payload.
[Defaults] milliseconds | ms* | iso | iso8601 | hr | human_readable
Was this page helpful?