History
private/get_option_settlement_history
Returns option settlement (expiry) events for a single subaccount or an entire wallet (specify exactly one). Each settlement includes the reconstructed option instrument name, the settled amount and value for that expired position, and the realized settlement PnL against the position’s cost basis, with and without trading fees.
POST
/
private
/
get_option_settlement_history
private/get_option_settlement_history
curl --request POST \
--url https://api.derive.xyz/v3/private/get_option_settlement_history \
--header 'Content-Type: application/json' \
--data '
{
"subaccount_id": null,
"wallet": null
}
'import requests
url = "https://api.derive.xyz/v3/private/get_option_settlement_history"
payload = {
"subaccount_id": None,
"wallet": None
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({subaccount_id: null, wallet: null})
};
fetch('https://api.derive.xyz/v3/private/get_option_settlement_history', 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.derive.xyz/v3/private/get_option_settlement_history",
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([
'subaccount_id' => null,
'wallet' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/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.derive.xyz/v3/private/get_option_settlement_history"
payload := strings.NewReader("{\n \"subaccount_id\": null,\n \"wallet\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
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.derive.xyz/v3/private/get_option_settlement_history")
.header("Content-Type", "application/json")
.body("{\n \"subaccount_id\": null,\n \"wallet\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/private/get_option_settlement_history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"subaccount_id\": null,\n \"wallet\": null\n}"
response = http.request(request)
puts response.read_body{
"settlements": [
{
"amount": "<string>",
"expiry": 1,
"instrument_name": "<string>",
"option_settlement_pnl": "<string>",
"option_settlement_pnl_excl_fees": "<string>",
"settlement_price": "<string>",
"settlement_value": "<string>",
"subaccount_id": 1
}
]
}Body
application/json
Response
Success
Show child attributes
Show child attributes
Related topics
Migration skill for your coding agentpublic/get_option_settlement_pricesprivate/get_funding_historyprivate/get_option_settlement_history
curl --request POST \
--url https://api.derive.xyz/v3/private/get_option_settlement_history \
--header 'Content-Type: application/json' \
--data '
{
"subaccount_id": null,
"wallet": null
}
'import requests
url = "https://api.derive.xyz/v3/private/get_option_settlement_history"
payload = {
"subaccount_id": None,
"wallet": None
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({subaccount_id: null, wallet: null})
};
fetch('https://api.derive.xyz/v3/private/get_option_settlement_history', 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.derive.xyz/v3/private/get_option_settlement_history",
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([
'subaccount_id' => null,
'wallet' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/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.derive.xyz/v3/private/get_option_settlement_history"
payload := strings.NewReader("{\n \"subaccount_id\": null,\n \"wallet\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
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.derive.xyz/v3/private/get_option_settlement_history")
.header("Content-Type", "application/json")
.body("{\n \"subaccount_id\": null,\n \"wallet\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/private/get_option_settlement_history")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"subaccount_id\": null,\n \"wallet\": null\n}"
response = http.request(request)
puts response.read_body{
"settlements": [
{
"amount": "<string>",
"expiry": 1,
"instrument_name": "<string>",
"option_settlement_pnl": "<string>",
"option_settlement_pnl_excl_fees": "<string>",
"settlement_price": "<string>",
"settlement_value": "<string>",
"subaccount_id": 1
}
]
}