curl --request GET \
--url https://test.deribit.com/api/v2/private/get_leg_prices \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "private/get_leg_prices",
"params": {
"price": 0.6,
"legs": [
{
"instrument_name": "BTC-1NOV24-67000-C",
"direction": "buy",
"amount": 2
},
{
"instrument_name": "BTC-1NOV24-66000-C",
"direction": "sell",
"amount": 2
}
]
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/get_leg_prices"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "private/get_leg_prices",
"params": {
"price": 0.6,
"legs": [
{
"instrument_name": "BTC-1NOV24-67000-C",
"direction": "buy",
"amount": 2
},
{
"instrument_name": "BTC-1NOV24-66000-C",
"direction": "sell",
"amount": 2
}
]
}
}
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: 1,
method: 'private/get_leg_prices',
params: {
price: 0.6,
legs: [
{instrument_name: 'BTC-1NOV24-67000-C', direction: 'buy', amount: 2},
{instrument_name: 'BTC-1NOV24-66000-C', direction: 'sell', amount: 2}
]
}
})
};
fetch('https://test.deribit.com/api/v2/private/get_leg_prices', 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/private/get_leg_prices",
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' => 1,
'method' => 'private/get_leg_prices',
'params' => [
'price' => 0.6,
'legs' => [
[
'instrument_name' => 'BTC-1NOV24-67000-C',
'direction' => 'buy',
'amount' => 2
],
[
'instrument_name' => 'BTC-1NOV24-66000-C',
'direction' => 'sell',
'amount' => 2
]
]
]
]),
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/private/get_leg_prices"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/get_leg_prices\",\n \"params\": {\n \"price\": 0.6,\n \"legs\": [\n {\n \"instrument_name\": \"BTC-1NOV24-67000-C\",\n \"direction\": \"buy\",\n \"amount\": 2\n },\n {\n \"instrument_name\": \"BTC-1NOV24-66000-C\",\n \"direction\": \"sell\",\n \"amount\": 2\n }\n ]\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/private/get_leg_prices")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/get_leg_prices\",\n \"params\": {\n \"price\": 0.6,\n \"legs\": [\n {\n \"instrument_name\": \"BTC-1NOV24-67000-C\",\n \"direction\": \"buy\",\n \"amount\": 2\n },\n {\n \"instrument_name\": \"BTC-1NOV24-66000-C\",\n \"direction\": \"sell\",\n \"amount\": 2\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/get_leg_prices")
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\": 1,\n \"method\": \"private/get_leg_prices\",\n \"params\": {\n \"price\": 0.6,\n \"legs\": [\n {\n \"instrument_name\": \"BTC-1NOV24-67000-C\",\n \"direction\": \"buy\",\n \"amount\": 2\n },\n {\n \"instrument_name\": \"BTC-1NOV24-66000-C\",\n \"direction\": \"sell\",\n \"amount\": 2\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": {
"legs": [
{
"ratio": 1,
"instrument_name": "BTC-1NOV24-67000-C",
"price": 0.6001,
"direction": "buy"
},
{
"ratio": 1,
"instrument_name": "BTC-1NOV24-66000-C",
"price": 0.0001,
"direction": "sell"
}
],
"amount": 2
}
}private/get_leg_prices
Returns individual leg prices for a given combo structure based on an aggregated price of the strategy and the mark prices of the individual legs.
Note: Leg prices change dynamically with mark price fluctuations, and the algorithm is calibrated only for conventional option structures and future spreads. This method supports both inverse strategies and known linear structures within a single currency pair.
curl --request GET \
--url https://test.deribit.com/api/v2/private/get_leg_prices \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "private/get_leg_prices",
"params": {
"price": 0.6,
"legs": [
{
"instrument_name": "BTC-1NOV24-67000-C",
"direction": "buy",
"amount": 2
},
{
"instrument_name": "BTC-1NOV24-66000-C",
"direction": "sell",
"amount": 2
}
]
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/get_leg_prices"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "private/get_leg_prices",
"params": {
"price": 0.6,
"legs": [
{
"instrument_name": "BTC-1NOV24-67000-C",
"direction": "buy",
"amount": 2
},
{
"instrument_name": "BTC-1NOV24-66000-C",
"direction": "sell",
"amount": 2
}
]
}
}
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: 1,
method: 'private/get_leg_prices',
params: {
price: 0.6,
legs: [
{instrument_name: 'BTC-1NOV24-67000-C', direction: 'buy', amount: 2},
{instrument_name: 'BTC-1NOV24-66000-C', direction: 'sell', amount: 2}
]
}
})
};
fetch('https://test.deribit.com/api/v2/private/get_leg_prices', 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/private/get_leg_prices",
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' => 1,
'method' => 'private/get_leg_prices',
'params' => [
'price' => 0.6,
'legs' => [
[
'instrument_name' => 'BTC-1NOV24-67000-C',
'direction' => 'buy',
'amount' => 2
],
[
'instrument_name' => 'BTC-1NOV24-66000-C',
'direction' => 'sell',
'amount' => 2
]
]
]
]),
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/private/get_leg_prices"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/get_leg_prices\",\n \"params\": {\n \"price\": 0.6,\n \"legs\": [\n {\n \"instrument_name\": \"BTC-1NOV24-67000-C\",\n \"direction\": \"buy\",\n \"amount\": 2\n },\n {\n \"instrument_name\": \"BTC-1NOV24-66000-C\",\n \"direction\": \"sell\",\n \"amount\": 2\n }\n ]\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/private/get_leg_prices")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/get_leg_prices\",\n \"params\": {\n \"price\": 0.6,\n \"legs\": [\n {\n \"instrument_name\": \"BTC-1NOV24-67000-C\",\n \"direction\": \"buy\",\n \"amount\": 2\n },\n {\n \"instrument_name\": \"BTC-1NOV24-66000-C\",\n \"direction\": \"sell\",\n \"amount\": 2\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/get_leg_prices")
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\": 1,\n \"method\": \"private/get_leg_prices\",\n \"params\": {\n \"price\": 0.6,\n \"legs\": [\n {\n \"instrument_name\": \"BTC-1NOV24-67000-C\",\n \"direction\": \"buy\",\n \"amount\": 2\n },\n {\n \"instrument_name\": \"BTC-1NOV24-66000-C\",\n \"direction\": \"sell\",\n \"amount\": 2\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": {
"legs": [
{
"ratio": 1,
"instrument_name": "BTC-1NOV24-67000-C",
"price": 0.6001,
"direction": "buy"
},
{
"ratio": 1,
"instrument_name": "BTC-1NOV24-66000-C",
"price": 0.0001,
"direction": "sell"
}
],
"amount": 2
}
}Query Parameters
List of legs for which the prices will be calculated
Hide child attributes
Hide child attributes
Instrument name
"BTC-PERPETUAL"
It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
Direction of selected leg
buy, sell Price for the whole leg structure
Response
Success response
The JSON-RPC version (2.0)
2.0 Hide child attributes
Hide child attributes
This value multiplied by the ratio of a leg gives trade size on that leg.
The id that was sent in the request
Was this page helpful?