curl --request GET \
--url https://test.deribit.com/api/v2/public/get_combos \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 2,
"method": "public/get_combos",
"params": {
"currency": "BTC"
}
}
'import requests
url = "https://test.deribit.com/api/v2/public/get_combos"
payload = {
"jsonrpc": "2.0",
"id": 2,
"method": "public/get_combos",
"params": { "currency": "BTC" }
}
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: 2, method: 'public/get_combos', params: {currency: 'BTC'}})
};
fetch('https://test.deribit.com/api/v2/public/get_combos', 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_combos",
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' => 2,
'method' => 'public/get_combos',
'params' => [
'currency' => 'BTC'
]
]),
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_combos"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2,\n \"method\": \"public/get_combos\",\n \"params\": {\n \"currency\": \"BTC\"\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_combos")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2,\n \"method\": \"public/get_combos\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/public/get_combos")
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\": 2,\n \"method\": \"public/get_combos\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 2,
"result": [
{
"state_timestamp": 1650636265101,
"state": "active",
"legs": [
{
"instrument_name": "BTC-29APR22-39300-C",
"amount": 1
},
{
"instrument_name": "BTC-29APR22-39600-C",
"amount": -1
}
],
"id": "BTC-CS-29APR22-39300_39600",
"instrument_id": 28,
"creation_timestamp": 1650636235000
},
{
"state_timestamp": 1650620605150,
"state": "active",
"legs": [
{
"instrument_name": "BTC-PERPETUAL",
"amount": -1
},
{
"instrument_name": "BTC-29APR22",
"amount": 1
}
],
"id": "BTC-FS-29APR22_PERP",
"instrument_id": 27,
"creation_timestamp": 1650620575000
}
]
}public/get_combos
Retrieves active combos for the specified settlement currency ("any" for every currency). Inactive, closed, and archivized combos are omitted. There is no state parameter on this method.
Each result is a combo object (id, legs, state, timestamps, instrument_id), not the full instrument spec from public/get_instrument. Combo state here is the combo-book state (active), which is not the same as the instrument order-book state.
This is not the same list as public/get_instruments with kind=future_combo or kind=option_combo, which returns visible combo instruments (including locked / halted / settlement books) and omits inactive combos.
For IDs including inactive combos, use public/get_combo_ids. For one combo, use public/get_combo_details. Expired or archivized combo names are looked up with public/get_instrument, not this method.
๐ Related Article: Options Data Collection Best Practices
curl --request GET \
--url https://test.deribit.com/api/v2/public/get_combos \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 2,
"method": "public/get_combos",
"params": {
"currency": "BTC"
}
}
'import requests
url = "https://test.deribit.com/api/v2/public/get_combos"
payload = {
"jsonrpc": "2.0",
"id": 2,
"method": "public/get_combos",
"params": { "currency": "BTC" }
}
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: 2, method: 'public/get_combos', params: {currency: 'BTC'}})
};
fetch('https://test.deribit.com/api/v2/public/get_combos', 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_combos",
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' => 2,
'method' => 'public/get_combos',
'params' => [
'currency' => 'BTC'
]
]),
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_combos"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2,\n \"method\": \"public/get_combos\",\n \"params\": {\n \"currency\": \"BTC\"\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_combos")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2,\n \"method\": \"public/get_combos\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/public/get_combos")
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\": 2,\n \"method\": \"public/get_combos\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 2,
"result": [
{
"state_timestamp": 1650636265101,
"state": "active",
"legs": [
{
"instrument_name": "BTC-29APR22-39300-C",
"amount": 1
},
{
"instrument_name": "BTC-29APR22-39600-C",
"amount": -1
}
],
"id": "BTC-CS-29APR22-39300_39600",
"instrument_id": 28,
"creation_timestamp": 1650636235000
},
{
"state_timestamp": 1650620605150,
"state": "active",
"legs": [
{
"instrument_name": "BTC-PERPETUAL",
"amount": -1
},
{
"instrument_name": "BTC-29APR22",
"amount": 1
}
],
"id": "BTC-FS-29APR22_PERP",
"instrument_id": 27,
"creation_timestamp": 1650620575000
}
]
}Query Parameters
The currency symbol or "any" for all.
๐ Related Article: Using the currency Parameter
Currency name or "any" if don't care
BTC, ETH, USDC, USDT, EURR, any Response
Success response
The JSON-RPC version (2.0)
2.0 Hide child attributes
Hide child attributes
Unique combo identifier
"BTC-FS-31DEC21-PERP"
Instrument ID
Combo book state: "active" or "inactive". Distinct from the instrument order-book state (open, locked, and so on).
active, inactive Time the combo book last changed state (milliseconds since the UNIX epoch).
1536569522277
Time the combo instrument was created (milliseconds since the UNIX epoch).
1536569522277
The id that was sent in the request
Was this page helpful?