---
title: "Update a brand"
method: PATCH
path: "/api/v1/brands/{brand}"
tags: ["brands"]
---

# Update a brand

`PATCH /api/v1/brands/{brand}`

## Request

- Base URL: `https://pineprompt.com`
- URL: `https://pineprompt.com/api/v1/brands/{brand}`
- Auth: HTTP bearer

Updates a brand's display name, aliases, domains, or ignored state. Every field is optional, so you may send only the fields you would like to change; a field that is omitted keeps its current value. A brand's kind is derived from its context and cannot be written directly: pass `ignored` to move the brand in or out of the ignored state, attach it to a segment to make it a competitor, or point the project's `brand_id` at it to make it the own brand. An ignored brand cannot sit in a segment, so ignoring one detaches it everywhere; ignoring the own brand returns a `422`.

## Path parameters

- `brand` integer, required

## Headers

- `Pineprompt-Project-Id` integer, required

## Request body

- UpdateBrand
  - `display_name` string: The name the brand is shown under. Display names are unique per project and case-insensitive, and a display name may not collide with an alias of another brand, since both would compete for the same mentions.
  - `aliases` string[]: The names Pineprompt matches against when it attributes a mention to the brand. Aliases are stored as you send them and compared while ignoring casing and punctuation. The list you send replaces the current one.
  - `domains` string[]: The domains Pineprompt matches against when it attributes a citation to the brand. The list you send replaces the current one. You may pass full URLs; each entry is reduced to a bare lowercase host before it is stored.
  - `ignored` boolean: Pass `true` to ignore the brand. An ignored brand cannot sit in a segment, so it is detached from every segment as the mark is set; ignoring the own brand returns a `422`. Pass `false` to clear the mark and return the brand to the `discovered` pool.

## Response `200`

OK

- Brand: A brand is an entity Pineprompt matches against platform answers: your own brand, a competitor you track, or a brand discovered in an answer. Matches are found through the display name, the aliases, and the domains.
  - `id` integer: The unique ID of the brand.
  - `project_id` integer: The ID of the project the brand belongs to.
  - `display_name` string: The canonical display name of the brand.
  - `aliases` string[]: Alternative names that the brand is referred to by.
  - `domains` string[]: The web domains associated with the brand.
  - `kind` 'own' | 'competitor' | 'discovered' | 'ignored': The brand's classification, derived from its context rather than stored: the brand the project's `brand_id` points at is `own`, a brand with `ignored_at` set is `ignored`, a brand attached to any segment is a `competitor`, and a brand with none of those is `discovered`. This field is read-only.
  - `color` string: A hex color used to color the brand consistently across charts. It is derived from the brand's favicon, or assigned automatically when no color can be derived. This field is read-only and is always present.
  - `ignored_at` string, date-time, nullable: When the brand was ignored, or null while it is not. Set and cleared through the `ignored` field on the update endpoint.
  - `project` Project: A project represents a single brand or site you monitor. Its `brand_id` names the own brand, the brand every core metric is computed for.
    - `id` integer: The unique ID of the project.
    - `organization_id` integer: The ID of the organization that owns the project.
    - `name` string: The display name of the project.
    - `brand_id` integer, nullable: The ID of the project's own brand, or null while none has been designated.
    - `organization` Organization: An organization is the top-level billing entity and tenant boundary in Pineprompt. Every project, member, and API key belongs to exactly one organization.
      - `id` integer: The unique ID of the organization.
      - `name` string: The display name of the organization.
      - `created_at` string, date-time: When the organization was created.
      - `updated_at` string, date-time: When the organization was last updated.
    - `created_at` string, date-time: When the project was created.
    - `updated_at` string, date-time: When the project was last updated.
  - `created_at` string, date-time: When the brand was created.
  - `updated_at` string, date-time: When the brand was last updated.

## Other responses

- `400`: Missing project header
- `401`: Unauthorized
- `403`: Missing ability
- `404`: Not found
- `422`: Validation failed

---

[API](https://skmtc.dev/pineprompt/apis/pineprompt-api.md) · [All operations](https://skmtc.dev/pineprompt/apis/pineprompt-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pineprompt/apis/pineprompt-api/revisions/05dbb5241a27?raw)
