---
title: "Update Brand"
method: PATCH
path: "/brands/{brand_id}"
---

# Update Brand

`PATCH /brands/{brand_id}`

Partially update a brand. Only fields included in the request body are modified. For competitors and personas, the provided list uses **replace semantics**: the list you send represents the complete desired state. Include an `id` to update an existing record, omit `id` to create a new one. **Any existing competitors or personas not included in the list will be archived.** To leave competitors or personas unchanged, omit the field entirely from the request.

## Path parameters

- `brand_id` integer, required

## Request body

- APIBrandPatchInput — 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.
  - `name` string, nullable — Brand display name.
  - `alternative_names` string[], nullable — Alternative names or aliases for the brand.
  - `excluded_names` string[], nullable — Phrases that must never count as a mention of this brand, e.g. brand "Caliber" excluding "Caliber Auto Wash".
  - `website` string, nullable — Primary website URL.
  - `alternative_websites` string[], nullable — Additional website URLs for the brand.
  - `description` string, nullable — Short description of the brand.
  - `competitors` APICompetitorPatchInput[], nullable — Full desired list of competitors. Existing competitors not in this list are archived.
    - `id` integer, nullable — ID of an existing competitor to update. Omit to create a new competitor.
    - `name` string, required — Display name of the competitor.
    - `alternative_names` string[] — Alternative names or aliases for the competitor.
    - `excluded_names` string[] — Phrases that must never count as a mention of this competitor, e.g. a competitor 'Caliber' excluding 'Caliber Auto Wash'.
    - `websites` string[] — Website URLs associated with the competitor.
    - `case_sensitive` boolean — When true, name and alternative_names are matched against AI responses with exact case. Defaults to case-insensitive matching.
  - `personas` APIPersonaPatchInput[], nullable — Full desired list of personas. Existing personas not in this list are archived.
    - `id` integer, nullable — ID of an existing persona to update. Omit to create a new persona.
    - `name` string, required — Display name of the persona.
    - `description` string, required — Description of the persona.
  - `key_topics` string[], nullable — Key topics associated with the brand.
  - `status` 'lead' | 'prospect' | 'customer', nullable — Brand status. Allowed values: lead, customer.
  - `case_sensitive` boolean, nullable — When true, the brand name and alternative_names are matched against AI responses with exact case. When false, matching is case-insensitive.

## Response `200`

Successful Response

- APIBrandListing
  - `id` integer, required
  - `name` string, required
  - `description` string, required
  - `website` string, required
  - `status` string, required
  - `alternative_names` string[]
  - `excluded_names` string[]
  - `alternative_websites` string[]
  - `case_sensitive` boolean
  - `competitors` APICompetitorListing[]
    - `id` integer, required
    - `name` string, required
    - `alternative_names` string[]
    - `excluded_names` string[]
    - `websites` string[]
    - `case_sensitive` boolean
  - `personas` APIPersonaListing[]
    - `id` integer, required
    - `name` string, required
    - `description` string, required
  - `key_topics` string[]

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/scrunchai/apis/scrunch-data-api.md) · [All operations](https://skmtc.net/scrunchai/apis/scrunch-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/scrunchai/scrunch-data-api/revisions/c4fe20c603a3/schema)
