curl --request PATCH \
--url https://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"description": "Updated description",
"metadata": {
"order_id": "6735"
},
"name": "Renamed API Key"
}
'import requests
url = "https://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id}"
payload = {
"description": "Updated description",
"metadata": { "order_id": "6735" },
"name": "Renamed API Key"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Updated description',
metadata: {order_id: '6735'},
name: 'Renamed API Key'
})
};
fetch('https://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_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://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_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([
'description' => 'Updated description',
'metadata' => [
'order_id' => '6735'
],
'name' => 'Renamed API Key'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id}"
payload := strings.NewReader("{\n \"description\": \"Updated description\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Renamed API Key\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Key", "<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://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Updated description\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Renamed API Key\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Updated description\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Renamed API Key\"\n}"
response = http.request(request)
puts response.read_body{
"created": "2025-06-15T10:30:00Z",
"description": "Main key for production environment",
"id": "d5e6f7a8-9012-3456-abcd-ef7890123456",
"is_active": true,
"last_used": "2025-06-20T08:00:00Z",
"metadata": {
"order_id": "6735"
},
"name": "Production API Key",
"role": "editor"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}Update API key
Update an API key’s name or description. Requires MANAGE_API_KEYS permission.
curl --request PATCH \
--url https://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"description": "Updated description",
"metadata": {
"order_id": "6735"
},
"name": "Renamed API Key"
}
'import requests
url = "https://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id}"
payload = {
"description": "Updated description",
"metadata": { "order_id": "6735" },
"name": "Renamed API Key"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Updated description',
metadata: {order_id: '6735'},
name: 'Renamed API Key'
})
};
fetch('https://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_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://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_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([
'description' => 'Updated description',
'metadata' => [
'order_id' => '6735'
],
'name' => 'Renamed API Key'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id}"
payload := strings.NewReader("{\n \"description\": \"Updated description\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Renamed API Key\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Key", "<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://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Updated description\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Renamed API Key\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.closient.com/account/api/v1/organizations/{organization_id}/api-keys/{key_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Updated description\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Renamed API Key\"\n}"
response = http.request(request)
puts response.read_body{
"created": "2025-06-15T10:30:00Z",
"description": "Main key for production environment",
"id": "d5e6f7a8-9012-3456-abcd-ef7890123456",
"is_active": true,
"last_used": "2025-06-20T08:00:00Z",
"metadata": {
"order_id": "6735"
},
"name": "Production API Key",
"role": "editor"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}{
"detail": "The requested resource was not found.",
"error_code": "not_found",
"retryable": false,
"status": 404,
"timestamp": "2026-03-31T12:00:00+00:00",
"title": "Not Found",
"type": "https://closient.com/docs/errors/not_found"
}Authorizations
Path Parameters
Organization ID.
UUID of the API key to update.
22^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$Body
Developer-attached key/value data. Send {} or null to clear. Empty-string values delete that key. Omitted keys are preserved.
Show child attributes
Show child attributes
New name for the API key.
255New description for the API key.
255Response
OK
URL-safe 22-character shortuuid encoding of the row's UUID primary key. Stable across the row's lifetime; suitable for sharing in URLs, log lines, and external SDK clients. Accepted on input as either the shortuuid form or the canonical UUID form (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
22^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$Key name.
Permission role for this key within the organization.
manager, editor, readonly ISO 8601 creation timestamp.
False once the key has been revoked; a revoked key is refused.
Developer-attached key/value data attached to this object. Up to 50 keys; key max 40 chars, value max 500 chars.
Show child attributes
Show child attributes
Key description.
ISO 8601 timestamp of the key's last use, if it has been used.
ISO 8601 expiry timestamp, if the key expires.