Skip to main content
PATCH
/
brands
/
{brand_id}
Update Brand
curl --request PATCH \
  --url https://api.scrunchai.com/v1/brands/{brand_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "alternative_names": [
    "<string>"
  ],
  "website": "<string>",
  "alternative_websites": [
    "<string>"
  ],
  "description": "<string>",
  "competitors": [
    {
      "name": "<string>",
      "id": 123,
      "alternative_names": [],
      "websites": [],
      "case_sensitive": false
    }
  ],
  "personas": [
    {
      "name": "<string>",
      "description": "<string>",
      "id": 123
    }
  ],
  "key_topics": [
    "<string>"
  ],
  "case_sensitive": true
}
'
import requests

url = "https://api.scrunchai.com/v1/brands/{brand_id}"

payload = {
"name": "<string>",
"alternative_names": ["<string>"],
"website": "<string>",
"alternative_websites": ["<string>"],
"description": "<string>",
"competitors": [
{
"name": "<string>",
"id": 123,
"alternative_names": [],
"websites": [],
"case_sensitive": False
}
],
"personas": [
{
"name": "<string>",
"description": "<string>",
"id": 123
}
],
"key_topics": ["<string>"],
"case_sensitive": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
alternative_names: ['<string>'],
website: '<string>',
alternative_websites: ['<string>'],
description: '<string>',
competitors: [
{
name: '<string>',
id: 123,
alternative_names: [],
websites: [],
case_sensitive: false
}
],
personas: [{name: '<string>', description: '<string>', id: 123}],
key_topics: ['<string>'],
case_sensitive: true
})
};

fetch('https://api.scrunchai.com/v1/brands/{brand_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.scrunchai.com/v1/brands/{brand_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([
'name' => '<string>',
'alternative_names' => [
'<string>'
],
'website' => '<string>',
'alternative_websites' => [
'<string>'
],
'description' => '<string>',
'competitors' => [
[
'name' => '<string>',
'id' => 123,
'alternative_names' => [

],
'websites' => [

],
'case_sensitive' => false
]
],
'personas' => [
[
'name' => '<string>',
'description' => '<string>',
'id' => 123
]
],
'key_topics' => [
'<string>'
],
'case_sensitive' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.scrunchai.com/v1/brands/{brand_id}"

payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"alternative_names\": [\n \"<string>\"\n ],\n \"website\": \"<string>\",\n \"alternative_websites\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"competitors\": [\n {\n \"name\": \"<string>\",\n \"id\": 123,\n \"alternative_names\": [],\n \"websites\": [],\n \"case_sensitive\": false\n }\n ],\n \"personas\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": 123\n }\n ],\n \"key_topics\": [\n \"<string>\"\n ],\n \"case_sensitive\": true\n}")

req, _ := http.NewRequest("PATCH", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
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.scrunchai.com/v1/brands/{brand_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"alternative_names\": [\n \"<string>\"\n ],\n \"website\": \"<string>\",\n \"alternative_websites\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"competitors\": [\n {\n \"name\": \"<string>\",\n \"id\": 123,\n \"alternative_names\": [],\n \"websites\": [],\n \"case_sensitive\": false\n }\n ],\n \"personas\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": 123\n }\n ],\n \"key_topics\": [\n \"<string>\"\n ],\n \"case_sensitive\": true\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.scrunchai.com/v1/brands/{brand_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"alternative_names\": [\n \"<string>\"\n ],\n \"website\": \"<string>\",\n \"alternative_websites\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"competitors\": [\n {\n \"name\": \"<string>\",\n \"id\": 123,\n \"alternative_names\": [],\n \"websites\": [],\n \"case_sensitive\": false\n }\n ],\n \"personas\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": 123\n }\n ],\n \"key_topics\": [\n \"<string>\"\n ],\n \"case_sensitive\": true\n}"

response = http.request(request)
puts response.read_body
{
  "id": 123,
  "name": "<string>",
  "description": "<string>",
  "website": "<string>",
  "status": "<string>",
  "alternative_names": [],
  "alternative_websites": [],
  "competitors": [],
  "personas": [],
  "key_topics": [],
  "case_sensitive": false
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

brand_id
integer
required

Body

application/json

Partial update payload for a brand.

Only fields present in the request body are updated. Omitted fields are left unchanged. For competitors and personas, the provided list replaces the current state: existing records not included in the list are archived.

When you submit a persona without an id and its name matches a previously archived persona on the same brand, the archived persona is reactivated (its status returns to active and its description is updated) rather than creating a duplicate.

name
string | null

Brand display name.

alternative_names
string[] | null

Alternative names or aliases for the brand.

website
string | null

Primary website URL.

alternative_websites
string[] | null

Additional website URLs for the brand.

description
string | null

Short description of the brand.

competitors
APICompetitorPatchInput · object[] | null

Full desired list of competitors. Existing competitors not in this list are archived.

personas
APIPersonaPatchInput · object[] | null

Full desired list of personas. Existing personas not in this list are archived.

key_topics
string[] | null

Key topics associated with the brand.

status
enum<string> | null

Brand status. Allowed values: lead, customer.

Available options:
lead,
prospect,
customer
case_sensitive
boolean | null

When true, the brand name and alternative_names are matched against AI responses with exact case. When false, matching is case-insensitive.

Response

Successful Response

id
integer
required
name
string
required
description
string
required
website
string
required
status
string
required
alternative_names
string[]

Alternative names or aliases for the brand.

alternative_websites
string[]
competitors
APICompetitorListing · object[]
personas
APIPersonaListing · object[]
key_topics
string[]
case_sensitive
boolean
default:false