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.
Settlement vs. delivery: Settlement is a daily event (at 08:00 UTC) for futures and perpetual positions that converts unrealized profit and loss into realized profit and loss. Option positions do not settle. Delivery is a one-time event that occurs when a futures or options contract expires — any remaining open position is closed at the delivery price. Delivery does not apply to perpetual or spot instruments. Both events take place at 08:00 UTC, which is why they are sometimes conflated.
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 event. settlement: daily settlement of futures and perpetual positions at 08:00 UTC, converting unrealized profit and loss into realized profit and loss (option positions do not settle). delivery: one-time expiration of a futures or options contract at 08:00 UTC, closing any remaining open position at the delivery price (does not apply to perpetual or spot instruments). 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 event. settlement: daily settlement of futures and perpetual positions at 08:00 UTC, converting unrealized profit and loss into realized profit and loss (option positions do not settle). delivery: one-time expiration of a futures or options contract at 08:00 UTC, closing any remaining open position at the delivery price (does not apply to perpetual or spot instruments). 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?