curl --request GET \
--url https://test.deribit.com/api/v2/private/change_scope_in_api_key \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 2453,
"method": "private/change_scope_in_api_key",
"params": {
"max_scope": "account:read_write wallet:read_write block_trade:read trade:read_write",
"id": 3
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/change_scope_in_api_key"
payload = {
"jsonrpc": "2.0",
"id": 2453,
"method": "private/change_scope_in_api_key",
"params": {
"max_scope": "account:read_write wallet:read_write block_trade:read trade:read_write",
"id": 3
}
}
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: 2453,
method: 'private/change_scope_in_api_key',
params: {
max_scope: 'account:read_write wallet:read_write block_trade:read trade:read_write',
id: 3
}
})
};
fetch('https://test.deribit.com/api/v2/private/change_scope_in_api_key', 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/change_scope_in_api_key",
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' => 2453,
'method' => 'private/change_scope_in_api_key',
'params' => [
'max_scope' => 'account:read_write wallet:read_write block_trade:read trade:read_write',
'id' => 3
]
]),
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/change_scope_in_api_key"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2453,\n \"method\": \"private/change_scope_in_api_key\",\n \"params\": {\n \"max_scope\": \"account:read_write wallet:read_write block_trade:read trade:read_write\",\n \"id\": 3\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/change_scope_in_api_key")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2453,\n \"method\": \"private/change_scope_in_api_key\",\n \"params\": {\n \"max_scope\": \"account:read_write wallet:read_write block_trade:read trade:read_write\",\n \"id\": 3\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/change_scope_in_api_key")
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\": 2453,\n \"method\": \"private/change_scope_in_api_key\",\n \"params\": {\n \"max_scope\": \"account:read_write wallet:read_write block_trade:read trade:read_write\",\n \"id\": 3\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 2453,
"result": {
"timestamp": 1560242482758,
"max_scope": "account:read_write block_trade:read trade:read_write wallet:read_write",
"id": 3,
"enabled": true,
"default": false,
"client_secret": "B6RsF9rrLY5ezEGBQkyLlV-UC7whyPJ34BMA-kKYpes",
"client_id": "1sXMQBhM",
"name": "NewKeyName"
}
}private/change_scope_in_api_key
Updates the scope (permissions) for an existing API key. The scope determines which operations the API key can perform (e.g., read-only, read-write, trading, etc.).
When the scope is changed, the API key immediately loses access to operations outside the new scope. Applications using this key may need to be updated to reflect the new permissions.
๐ Related Articles:
Scope: account:read_write
curl --request GET \
--url https://test.deribit.com/api/v2/private/change_scope_in_api_key \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 2453,
"method": "private/change_scope_in_api_key",
"params": {
"max_scope": "account:read_write wallet:read_write block_trade:read trade:read_write",
"id": 3
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/change_scope_in_api_key"
payload = {
"jsonrpc": "2.0",
"id": 2453,
"method": "private/change_scope_in_api_key",
"params": {
"max_scope": "account:read_write wallet:read_write block_trade:read trade:read_write",
"id": 3
}
}
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: 2453,
method: 'private/change_scope_in_api_key',
params: {
max_scope: 'account:read_write wallet:read_write block_trade:read trade:read_write',
id: 3
}
})
};
fetch('https://test.deribit.com/api/v2/private/change_scope_in_api_key', 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/change_scope_in_api_key",
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' => 2453,
'method' => 'private/change_scope_in_api_key',
'params' => [
'max_scope' => 'account:read_write wallet:read_write block_trade:read trade:read_write',
'id' => 3
]
]),
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/change_scope_in_api_key"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2453,\n \"method\": \"private/change_scope_in_api_key\",\n \"params\": {\n \"max_scope\": \"account:read_write wallet:read_write block_trade:read trade:read_write\",\n \"id\": 3\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/change_scope_in_api_key")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 2453,\n \"method\": \"private/change_scope_in_api_key\",\n \"params\": {\n \"max_scope\": \"account:read_write wallet:read_write block_trade:read trade:read_write\",\n \"id\": 3\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/change_scope_in_api_key")
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\": 2453,\n \"method\": \"private/change_scope_in_api_key\",\n \"params\": {\n \"max_scope\": \"account:read_write wallet:read_write block_trade:read trade:read_write\",\n \"id\": 3\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 2453,
"result": {
"timestamp": 1560242482758,
"max_scope": "account:read_write block_trade:read trade:read_write wallet:read_write",
"id": 3,
"enabled": true,
"default": false,
"client_secret": "B6RsF9rrLY5ezEGBQkyLlV-UC7whyPJ34BMA-kKYpes",
"client_id": "1sXMQBhM",
"name": "NewKeyName"
}
}Query Parameters
Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none.
๐ Related Article: Access Scope
[
"account:read",
"trade:read",
"block_trade:read_write",
"wallet:none"
]API key ID
1
Response
Success response
The JSON-RPC version (2.0)
2.0 Hide child attributes
Hide child attributes
Key identifier
1
The timestamp (milliseconds since the Unix epoch)
1536569522277
Client identifier used for authentication
"IY2D68DS"
Client secret or MD5 fingerprint of public key used for authentication
"P9Z_c73KaBPwpoTVfsXzehAhjhdJn5kM7Zlz_hhDhE8"
Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none.
๐ Related Article: Access Scope
[
"account:read",
"trade:read",
"block_trade:read_write",
"wallet:none"
]Informs whether this api key is default (field is deprecated and will be removed in the future)
false
PEM encoded public key (Ed25519/RSA) used for asymmetric signatures (optional)
"-----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEApajFN0CSwIaaiIRPiFbiYYvpsLQLSccSLLsKPe984sc= -----END PUBLIC KEY-----"
Informs whether api key is enabled and can be used for authentication
true
Api key name that can be displayed in transaction log
"TestName"
List of enabled advanced on-key features.
Available options:
- restricted_block_trades: Limit the block_trade read the scope of the API key to block trades that have been made using this specific API key
- block_trade_approval: Block trades created using this API key require additional user approval. Methods that use block_rfq scope are not affected by Block Trade approval feature
List of IP addresses whitelisted for a selected key
The id that was sent in the request
Was this page helpful?