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

# Update a brand

`PATCH /brands/{brandId}`

## Request

- Base URL: `https://www.app.ocoya.com/api/_public/v1`
- URL: `https://www.app.ocoya.com/api/_public/v1/brands/{brandId}`
- Auth: API key in header `X-API-Key`

Changes the brand profile: description, website, tone of voice, writing guidelines, SEO keywords, hashtags and colors. Values are checked and normalised the same way as on the Brand page. Returns the updated profile.

## Path parameters

- `brandId` string, required

## Request body

- object: Only the fields you send change. Send at least one.
  - `description` string: What the brand does.
  - `url` string, nullable: Website. Normalised as the app does (`ocoya.com` becomes `https://ocoya.com`); an empty string or `null` clears it.
  - `tone` string[]: Up to 3 tones, replacing the current ones.
  - `guidelines` string, nullable: Extra writing guidelines, up to 2000 characters.
  - `keywords` string[]: SEO keywords, replacing the current ones: up to 20, lowercased and de-duplicated. Search volumes are kept for keywords that stay.
  - `hashtags` string[]: Hashtags, replacing the current ones: up to 200, stored lowercase without `#` (`#Small Business` becomes `smallbusiness`).
  - `colors` string[]: Brand colors as hex values, replacing the current ones: up to 8.

## Response `200`

Success. The updated profile.

- object
  - `id` string, required: Brand ID.
  - `name` string, nullable, required: Brand name.
  - `image` string, nullable, required: Brand avatar URL.
  - `timezone` string, nullable, required: Brand timezone.
  - `weekStart` integer, nullable, required: First day of the week in the calendar (0 is Sunday).
  - `description` string, required: What the brand does, as AI writing reads it.
  - `url` string, required: Website, or an empty string.
  - `logos` string[], required: Logo image URLs.
  - `colors` string[], required: Brand colors as hex values.
  - `fonts` object, required: Heading and body fonts used for designs.
  - `socials` object, required: Social profile links, by network.
  - `tone` string[], required: Tone of voice: up to 3 of `Friendly`, `Professional`, `Playful`, `Warm`, `Bold`, `Witty`, `Inspiring`, `Calm`, `Expert`, `Casual`.
  - `guidelines` string, required: Extra writing guidelines every AI prompt follows.
  - `keywords` object[], required: SEO keywords the brand wants to be found for, up to 20.
    - `keyword` string, required
    - `monthlySearches` integer, nullable, required: Monthly searches, where keyword detection found a number; `null` for a keyword typed in.
  - `hashtags` string[], required: Hashtags the brand's posts use, lowercase and without the `#`, up to 200. AI campaigns use them.
  - `channelCount` integer, required: Connected channels and stores, as the score counts them.
  - `score` object, required
    - `score` integer, required: How complete the brand profile is, out of 100: the same score the app shows on the Brand page.
    - `nextStep` object, nullable, required: The step worth the most points, or `null` at 100.
      - `section` 'channels' | 'website' | 'details' | 'voice' | 'logos' | 'colors' | 'keywords' | 'hashtags', required: Brand page section to work on.
      - `sectionLabel` string, required: That section's name in the app.
      - `label` string, required: The suggested next step, as the app words it.
      - `points` integer, required: Points the step can still add.

## Other responses

- `400`: A field is invalid: an unknown tone, too many keywords or hashtags, guidelines too long, an invalid website or color, or nothing to update.
- `401`: Missing or invalid API key.
- `403`: Invalid brand id, or the API key's user does not own this brand.
- `429`: Rate limit exceeded: 60 requests per minute per API key.
- `500`: Unknown error

## Changes

- **2026-11-04** `ef9bd3530850`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ocoya/apis/ocoya-api/changes/brands/:brandId/patch.md)

---

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