---
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 represents the full desired state: include an `id` to update an existing record, omit `id` to create a new one, and any existing records not in the list are archived.

If 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) instead of creating a duplicate. This avoids unique-name conflicts when reusing a name that was previously archived.

## 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. 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, nullable — Brand display name.
  - `alternative_names` string[], nullable — Alternative names or aliases for the brand.
  - `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.
    - `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[] — Alternative names or aliases for the brand.
  - `alternative_websites` string[]
  - `competitors` APICompetitorListing[]
    - `id` integer, required
    - `name` string, required
    - `alternative_names` string[]
    - `websites` string[]
    - `case_sensitive` boolean
  - `personas` APIPersonaListing[]
    - `id` integer, required
    - `name` string, required
    - `description` string, required
  - `key_topics` string[]
  - `case_sensitive` boolean

## Other responses

- `422` — Validation Error

---

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