curl --request PATCH \
--url https://www.closient.com/brands/api/v1/brands/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"instagram": "https://instagram.com/brand",
"metadata": {
"order_id": "6735"
},
"name": "Updated Brand Name",
"website": "https://updated.com"
}
'import requests
url = "https://www.closient.com/brands/api/v1/brands/{id}"
payload = {
"instagram": "https://instagram.com/brand",
"metadata": { "order_id": "6735" },
"name": "Updated Brand Name",
"website": "https://updated.com"
}
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({
instagram: 'https://instagram.com/brand',
metadata: {order_id: '6735'},
name: 'Updated Brand Name',
website: 'https://updated.com'
})
};
fetch('https://www.closient.com/brands/api/v1/brands/{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/brands/api/v1/brands/{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([
'instagram' => 'https://instagram.com/brand',
'metadata' => [
'order_id' => '6735'
],
'name' => 'Updated Brand Name',
'website' => 'https://updated.com'
]),
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/brands/api/v1/brands/{id}"
payload := strings.NewReader("{\n \"instagram\": \"https://instagram.com/brand\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Updated Brand Name\",\n \"website\": \"https://updated.com\"\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/brands/api/v1/brands/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"instagram\": \"https://instagram.com/brand\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Updated Brand Name\",\n \"website\": \"https://updated.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.closient.com/brands/api/v1/brands/{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 \"instagram\": \"https://instagram.com/brand\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Updated Brand Name\",\n \"website\": \"https://updated.com\"\n}"
response = http.request(request)
puts response.read_body{
"created": "2025-06-15T10:30:00Z",
"description": "Premium trail mix and snack foods.",
"has_social_links": true,
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"logo_url": "https://cdn.closient.com/brands/acme-snacks/logo.png",
"metadata": {
"order_id": "6735"
},
"name": "Acme Snacks",
"website": "https://acmesnacks.com"
}{
"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 brand
Update brand profile fields: the same fields as the dashboard’s Brand Settings page, plus metadata. Send only the fields you are changing. Requires the Owner, Manager or Editor role on the organization that owns the brand; a read-only key is refused with 403.
curl --request PATCH \
--url https://www.closient.com/brands/api/v1/brands/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"instagram": "https://instagram.com/brand",
"metadata": {
"order_id": "6735"
},
"name": "Updated Brand Name",
"website": "https://updated.com"
}
'import requests
url = "https://www.closient.com/brands/api/v1/brands/{id}"
payload = {
"instagram": "https://instagram.com/brand",
"metadata": { "order_id": "6735" },
"name": "Updated Brand Name",
"website": "https://updated.com"
}
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({
instagram: 'https://instagram.com/brand',
metadata: {order_id: '6735'},
name: 'Updated Brand Name',
website: 'https://updated.com'
})
};
fetch('https://www.closient.com/brands/api/v1/brands/{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/brands/api/v1/brands/{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([
'instagram' => 'https://instagram.com/brand',
'metadata' => [
'order_id' => '6735'
],
'name' => 'Updated Brand Name',
'website' => 'https://updated.com'
]),
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/brands/api/v1/brands/{id}"
payload := strings.NewReader("{\n \"instagram\": \"https://instagram.com/brand\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Updated Brand Name\",\n \"website\": \"https://updated.com\"\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/brands/api/v1/brands/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"instagram\": \"https://instagram.com/brand\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Updated Brand Name\",\n \"website\": \"https://updated.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.closient.com/brands/api/v1/brands/{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 \"instagram\": \"https://instagram.com/brand\",\n \"metadata\": {\n \"order_id\": \"6735\"\n },\n \"name\": \"Updated Brand Name\",\n \"website\": \"https://updated.com\"\n}"
response = http.request(request)
puts response.read_body{
"created": "2025-06-15T10:30:00Z",
"description": "Premium trail mix and snack foods.",
"has_social_links": true,
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"logo_url": "https://cdn.closient.com/brands/acme-snacks/logo.png",
"metadata": {
"order_id": "6735"
},
"name": "Acme Snacks",
"website": "https://acmesnacks.com"
}{
"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"
}Path Parameters
Body
Brand website. Must start with http:// or https://; any other scheme (javascript:, data:, ftp:, ...) is refused with a 422. Send an empty string or null to clear it.
255^([Hh][Tt][Tt][Pp][Ss]?://[^\x00-\x20\x7f/?#][^\x00-\x20\x7f]{0,246})?$Response
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}$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}$