Update API Key
Updates an existing API key’s permissions and IP restrictions. The API key name and expiration date cannot be modified after creation.
curl --request PATCH \
--url https://api.example.com/api-keys/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"permissions": [],
"distribution_wallet_ids": [
"<string>"
],
"allowed_ips": "<string>"
}
'import requests
url = "https://api.example.com/api-keys/{id}"
payload = {
"permissions": [],
"distribution_wallet_ids": ["<string>"],
"allowed_ips": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
permissions: [],
distribution_wallet_ids: ['<string>'],
allowed_ips: '<string>'
})
};
fetch('https://api.example.com/api-keys/{id}', 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://api.example.com/api-keys/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'permissions' => [
],
'distribution_wallet_ids' => [
'<string>'
],
'allowed_ips' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://api.example.com/api-keys/{id}"
payload := strings.NewReader("{\n \"permissions\": [],\n \"distribution_wallet_ids\": [\n \"<string>\"\n ],\n \"allowed_ips\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.patch("https://api.example.com/api-keys/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"permissions\": [],\n \"distribution_wallet_ids\": [\n \"<string>\"\n ],\n \"allowed_ips\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api-keys/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"permissions\": [],\n \"distribution_wallet_ids\": [\n \"<string>\"\n ],\n \"allowed_ips\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"permissions": [
"<string>"
],
"allowed_ips": [
"<string>"
],
"distribution_wallet_ids": [
"<string>"
],
"expiry_date": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"updated_by": "<string>",
"last_used_at": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"extras": {}
}{
"error": "Not authorized",
"extras": {
"status": 401,
"message": "Not authorized"
}
}{
"error": "Forbidden"
}{
"error": "Not found",
"extras": {
"status": 404,
"message": "Resource not found"
}
}Authorizations
Authorization header containing an SDP JWT (ES256) or an SDP_ API key.
Path Parameters
The unique identifier of the API key to update
Body
List of permissions granted to this API key
1read:all, write:all, read:disbursements, write:disbursements, read:receivers, write:receivers, read:payments, write:payments, read:organization, write:organization, read:users, write:users, read:wallets, write:wallets, read:distribution_wallets, write:distribution_wallets, read:statistics, read:exports IDs of the distribution accounts this key may act on. Omit the field to leave the key's current accounts unchanged; providing a list replaces them. An empty array removes all account access. A key cannot be scoped to an account the caller cannot reach.
IP restrictions for the API key. If not provided, existing restrictions remain unchanged
Response
API key updated successfully
Unique identifier for the API key
Human-readable name for the API key
List of permissions granted to this API key
List of allowed IP addresses or CIDR ranges
IDs of the distribution accounts this API key may act on.
Expiration date of the API key
When the API key was created
User who created the API key
When the API key was last updated
User who last updated the API key
When the API key was last used
curl --request PATCH \
--url https://api.example.com/api-keys/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"permissions": [],
"distribution_wallet_ids": [
"<string>"
],
"allowed_ips": "<string>"
}
'import requests
url = "https://api.example.com/api-keys/{id}"
payload = {
"permissions": [],
"distribution_wallet_ids": ["<string>"],
"allowed_ips": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
permissions: [],
distribution_wallet_ids: ['<string>'],
allowed_ips: '<string>'
})
};
fetch('https://api.example.com/api-keys/{id}', 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://api.example.com/api-keys/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'permissions' => [
],
'distribution_wallet_ids' => [
'<string>'
],
'allowed_ips' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://api.example.com/api-keys/{id}"
payload := strings.NewReader("{\n \"permissions\": [],\n \"distribution_wallet_ids\": [\n \"<string>\"\n ],\n \"allowed_ips\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.patch("https://api.example.com/api-keys/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"permissions\": [],\n \"distribution_wallet_ids\": [\n \"<string>\"\n ],\n \"allowed_ips\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api-keys/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"permissions\": [],\n \"distribution_wallet_ids\": [\n \"<string>\"\n ],\n \"allowed_ips\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"permissions": [
"<string>"
],
"allowed_ips": [
"<string>"
],
"distribution_wallet_ids": [
"<string>"
],
"expiry_date": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"updated_by": "<string>",
"last_used_at": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"extras": {}
}{
"error": "Not authorized",
"extras": {
"status": 401,
"message": "Not authorized"
}
}{
"error": "Forbidden"
}{
"error": "Not found",
"extras": {
"status": 404,
"message": "Resource not found"
}
}