curl --request GET \
--url https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 5482,
"method": "public/get_last_settlements_by_instrument",
"params": {
"instrument_name": "BTC-22FEB19",
"type": "settlement",
"count": 1
}
}
'import requests
url = "https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument"
payload = {
"jsonrpc": "2.0",
"id": 5482,
"method": "public/get_last_settlements_by_instrument",
"params": {
"instrument_name": "BTC-22FEB19",
"type": "settlement",
"count": 1
}
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 5482,
method: 'public/get_last_settlements_by_instrument',
params: {instrument_name: 'BTC-22FEB19', type: 'settlement', count: 1}
})
};
fetch('https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument', 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://test.deribit.com/api/v2/public/get_last_settlements_by_instrument",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 5482,
'method' => 'public/get_last_settlements_by_instrument',
'params' => [
'instrument_name' => 'BTC-22FEB19',
'type' => 'settlement',
'count' => 1
]
]),
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://test.deribit.com/api/v2/public/get_last_settlements_by_instrument"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 5482,\n \"method\": \"public/get_last_settlements_by_instrument\",\n \"params\": {\n \"instrument_name\": \"BTC-22FEB19\",\n \"type\": \"settlement\",\n \"count\": 1\n }\n}")
req, _ := http.NewRequest("GET", 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.get("https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 5482,\n \"method\": \"public/get_last_settlements_by_instrument\",\n \"params\": {\n \"instrument_name\": \"BTC-22FEB19\",\n \"type\": \"settlement\",\n \"count\": 1\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 5482,\n \"method\": \"public/get_last_settlements_by_instrument\",\n \"params\": {\n \"instrument_name\": \"BTC-22FEB19\",\n \"type\": \"settlement\",\n \"count\": 1\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 5482,
"result": {
"settlements": [
{
"type": "settlement",
"timestamp": 1550502000023,
"session_profit_loss": 0.116509752,
"profit_loss": -9.999999999886402e-10,
"position": 240,
"mark_price": 3578.16,
"instrument_name": "BTC-22FEB19",
"index_price": 3796.43
}
],
"continuation": "2Z7mdtavzYvfuyYcHkJXvPTr9ZSMsEzM3sLCH7AbYEDd1AzTXY2hnhegQDiaP1TtU4b5iSJZ4"
}
}public/get_last_settlements_by_instrument
Retrieves historical settlement, delivery, and bankruptcy events for a specific instrument. Settlements occur when futures or options contracts expire and are settled at the delivery price.
Results can be filtered by settlement type and timestamp. Use pagination parameters (count and continuation) to retrieve large settlement histories. This method is useful for tracking settlement history for a specific instrument.
Note on profit_loss and session_profit_loss: Because this is a public endpoint, these fields are platform-wide aggregates, not per-account values. profit_loss is the sum of realized P&L of all position holders at the settlement price. session_profit_loss is the sum of each holder’s total session P&L (realized + unrealized) across all participants.
curl --request GET \
--url https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 5482,
"method": "public/get_last_settlements_by_instrument",
"params": {
"instrument_name": "BTC-22FEB19",
"type": "settlement",
"count": 1
}
}
'import requests
url = "https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument"
payload = {
"jsonrpc": "2.0",
"id": 5482,
"method": "public/get_last_settlements_by_instrument",
"params": {
"instrument_name": "BTC-22FEB19",
"type": "settlement",
"count": 1
}
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 5482,
method: 'public/get_last_settlements_by_instrument',
params: {instrument_name: 'BTC-22FEB19', type: 'settlement', count: 1}
})
};
fetch('https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument', 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://test.deribit.com/api/v2/public/get_last_settlements_by_instrument",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 5482,
'method' => 'public/get_last_settlements_by_instrument',
'params' => [
'instrument_name' => 'BTC-22FEB19',
'type' => 'settlement',
'count' => 1
]
]),
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://test.deribit.com/api/v2/public/get_last_settlements_by_instrument"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 5482,\n \"method\": \"public/get_last_settlements_by_instrument\",\n \"params\": {\n \"instrument_name\": \"BTC-22FEB19\",\n \"type\": \"settlement\",\n \"count\": 1\n }\n}")
req, _ := http.NewRequest("GET", 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.get("https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 5482,\n \"method\": \"public/get_last_settlements_by_instrument\",\n \"params\": {\n \"instrument_name\": \"BTC-22FEB19\",\n \"type\": \"settlement\",\n \"count\": 1\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/public/get_last_settlements_by_instrument")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 5482,\n \"method\": \"public/get_last_settlements_by_instrument\",\n \"params\": {\n \"instrument_name\": \"BTC-22FEB19\",\n \"type\": \"settlement\",\n \"count\": 1\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 5482,
"result": {
"settlements": [
{
"type": "settlement",
"timestamp": 1550502000023,
"session_profit_loss": 0.116509752,
"profit_loss": -9.999999999886402e-10,
"position": 240,
"mark_price": 3578.16,
"instrument_name": "BTC-22FEB19",
"index_price": 3796.43
}
],
"continuation": "2Z7mdtavzYvfuyYcHkJXvPTr9ZSMsEzM3sLCH7AbYEDd1AzTXY2hnhegQDiaP1TtU4b5iSJZ4"
}
}Query Parameters
Instrument name Unique instrument identifier
"BTC-PERPETUAL"
Settlement type
The type of settlement. settlement, delivery or bankruptcy.
settlement, delivery, bankruptcy Number of requested items, default - 20, maximum - 1000
1 <= x <= 1000Continuation token for pagination
"xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT"
The latest timestamp to return result from (milliseconds since the UNIX epoch) The timestamp (milliseconds since the Unix epoch)
1536569522277
Response
Success response
The JSON-RPC version (2.0)
2.0 Hide child attributes
Hide child attributes
Continuation token for pagination.
"xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT"
Hide child attributes
Hide child attributes
funding (in base currency ; settlement for perpetual product only)
-0.000002511
underlying index price at time of event (in quote currency; settlement and delivery only)
11008.37
instrument name (settlement and delivery only)
"BTC-30MAR18"
position size (in quote currency; settlement and delivery only)
1000
Platform-wide aggregate total session profit and loss for this settlement event, in base currency. This is the sum of each position holder's session P&L (combining realized and unrealized components) across all users who held positions in the instrument — it is not a per-account value.
0.001160788
The timestamp (milliseconds since the Unix epoch)
1536569522277
The type of settlement. settlement, delivery or bankruptcy.
settlement, delivery, bankruptcy funded amount (bankruptcy only)
0
mark price for at the settlement time (in quote currency; settlement and delivery only)
11000
Platform-wide aggregate realized profit and loss for this settlement event, in base currency. This is the sum of the realized P&L of every position holder at the settlement or delivery price — it is not a per-account value. Present for settlement and delivery types only.
0
value of session bankruptcy (in base currency; bankruptcy only)
0.001160788
total amount of paid taxes/fees (in base currency; bankruptcy only)
-0.001160788
rate of paid taxes/fees (in base currency; bankruptcy only)
0.000103333
the amount of the socialized losses (in base currency; bankruptcy only)
-0.001160788
The id that was sent in the request
Was this page helpful?