curl --request GET \
--url https://test.deribit.com/api/v2/private/list_custody_accounts \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 2515,
"method": "private/list_custody_accounts",
"params": {
"currency": "BTC"
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/list_custody_accounts"
payload = {
"jsonrpc": "2.0",
"id": 2515,
"method": "private/list_custody_accounts",
"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: 2515,
method: 'private/list_custody_accounts',
params: {currency: 'BTC'}
})
};
fetch('https://test.deribit.com/api/v2/private/list_custody_accounts', 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/list_custody_accounts",
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' => 2515,
'method' => 'private/list_custody_accounts',
'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/private/list_custody_accounts"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2515,\n \"method\": \"private/list_custody_accounts\",\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/private/list_custody_accounts")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2515,\n \"method\": \"private/list_custody_accounts\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/list_custody_accounts")
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\": 2515,\n \"method\": \"private/list_custody_accounts\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 2515,
"result": [
{
"name": "copper",
"currency": "BTC",
"client_id": "4KVcFrrzmXBR",
"external_id": "24f97d44-1d72-4641-8527-811268a0bdd3",
"balance": 0.5,
"withdrawals_require_security_key": false,
"pending_withdrawal_balance": 0.1,
"auto_deposit": false
}
]
}private/list_custody_accounts
Retrieves a list of all custody accounts associated with the authenticated account for a specific currency. Custody accounts are used for clients who require segregated custody of their assets.
The response includes custody account details such as account name, status, balances, and configuration settings.
๐ Related Support Article: Custody Options
curl --request GET \
--url https://test.deribit.com/api/v2/private/list_custody_accounts \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 2515,
"method": "private/list_custody_accounts",
"params": {
"currency": "BTC"
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/list_custody_accounts"
payload = {
"jsonrpc": "2.0",
"id": 2515,
"method": "private/list_custody_accounts",
"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: 2515,
method: 'private/list_custody_accounts',
params: {currency: 'BTC'}
})
};
fetch('https://test.deribit.com/api/v2/private/list_custody_accounts', 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/list_custody_accounts",
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' => 2515,
'method' => 'private/list_custody_accounts',
'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/private/list_custody_accounts"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2515,\n \"method\": \"private/list_custody_accounts\",\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/private/list_custody_accounts")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2515,\n \"method\": \"private/list_custody_accounts\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/list_custody_accounts")
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\": 2515,\n \"method\": \"private/list_custody_accounts\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 2515,
"result": [
{
"name": "copper",
"currency": "BTC",
"client_id": "4KVcFrrzmXBR",
"external_id": "24f97d44-1d72-4641-8527-811268a0bdd3",
"balance": 0.5,
"withdrawals_require_security_key": false,
"pending_withdrawal_balance": 0.1,
"auto_deposit": false
}
]
}Query Parameters
The currency symbol
Currency, i.e "BTC", "ETH", "USDC"
BTC, ETH, USDC, USDT, EURR Response
Success response
Generic error response for broken references
2.0 Hide child attributes
Hide child attributes
Currency, i.e "BTC", "ETH", "USDC"
BTC, ETH, USDC, USDT, EURR Custody name
copper, cobo Pending balance transferred from trading account to custody account
1
Balance available on custody account
1
When set to 'true' all new funds added to custody balance will be automatically transferred to trading balance
API key 'client id' used to reserve/release funds in custody platform, requires scope 'custody:read_write'
User ID in external systems
"4b4cee3d-2dfc-4402-a9ae-f8f9785fa966"
Address that is used for withdrawals
UNIX timestamp after when new withdrawal address will be used for withdrawals
New withdrawal address that will be used after 'withdrawal_address_change'
Address that can be used for deposits
Was this page helpful?