curl --request GET \
--url https://test.deribit.com/api/v2/public/get_combo_ids \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "public/get_combo_ids",
"params": {
"currency": "BTC",
"state": "active"
}
}
'import requests
url = "https://test.deribit.com/api/v2/public/get_combo_ids"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "public/get_combo_ids",
"params": {
"currency": "BTC",
"state": "active"
}
}
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: 'public/get_combo_ids',
params: {currency: 'BTC', state: 'active'}
})
};
fetch('https://test.deribit.com/api/v2/public/get_combo_ids', 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_combo_ids",
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' => 'public/get_combo_ids',
'params' => [
'currency' => 'BTC',
'state' => 'active'
]
]),
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_combo_ids"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"public/get_combo_ids\",\n \"params\": {\n \"currency\": \"BTC\",\n \"state\": \"active\"\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_combo_ids")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"public/get_combo_ids\",\n \"params\": {\n \"currency\": \"BTC\",\n \"state\": \"active\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/public/get_combo_ids")
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\": \"public/get_combo_ids\",\n \"params\": {\n \"currency\": \"BTC\",\n \"state\": \"active\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
"BTC-CS-29APR22-39300_39600",
"BTC-FS-29APR22_PERP"
]
}public/get_combo_ids
Retrieves combo IDs for a required settlement currency. "any" is not accepted here โ use public/get_combos with currency=any for active combos across currencies.
state defaults to "any", which returns active and inactive IDs and excludes closed. Pass "active" or "inactive" to filter. Public clients cannot select closed or archivized.
Use public/get_combo_details for legs and timestamps of a live combo. Archivized combos are not in this list; look them up with public/get_instrument.
๐ Related Article: Options Data Collection Best Practices
curl --request GET \
--url https://test.deribit.com/api/v2/public/get_combo_ids \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "public/get_combo_ids",
"params": {
"currency": "BTC",
"state": "active"
}
}
'import requests
url = "https://test.deribit.com/api/v2/public/get_combo_ids"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "public/get_combo_ids",
"params": {
"currency": "BTC",
"state": "active"
}
}
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: 'public/get_combo_ids',
params: {currency: 'BTC', state: 'active'}
})
};
fetch('https://test.deribit.com/api/v2/public/get_combo_ids', 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_combo_ids",
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' => 'public/get_combo_ids',
'params' => [
'currency' => 'BTC',
'state' => 'active'
]
]),
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_combo_ids"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"public/get_combo_ids\",\n \"params\": {\n \"currency\": \"BTC\",\n \"state\": \"active\"\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_combo_ids")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"public/get_combo_ids\",\n \"params\": {\n \"currency\": \"BTC\",\n \"state\": \"active\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/public/get_combo_ids")
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\": \"public/get_combo_ids\",\n \"params\": {\n \"currency\": \"BTC\",\n \"state\": \"active\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
"BTC-CS-29APR22-39300_39600",
"BTC-FS-29APR22_PERP"
]
}Query Parameters
The currency symbol.
๐ Related Article: Using the currency Parameter
Currency, i.e "BTC", "ETH", "USDC"
BTC, ETH, USDC, USDT, EURR Combo state filter. If omitted, "any" (active and inactive, excluding closed).
Combo state filter for public/get_combo_ids: "active", "inactive", or "any" (default) for active and inactive IDs. "any" excludes closed. Public clients cannot select closed or archivized.
active, inactive, any Was this page helpful?