---
title: "Update brand profile"
method: PATCH
path: "/api/mcp/projects/{projectId}/brand-profile"
tags: ["Brand"]
---

# Update brand profile

`PATCH /api/mcp/projects/{projectId}/brand-profile`

## Request

- Base URL: `https://app.searchable.com`
- URL: `https://app.searchable.com/api/mcp/projects/{projectId}/brand-profile`
- Auth: HTTP bearer

Update a subset of the project's knowledge-base brand fields (name, headline, description, positioning, category, influence, language, websiteUrl, caseSensitive, brandNameDisambiguation, topics) and its Tone / Writing Style and Memory documents (`tone`, `memory`, each replaced whole). Does not touch connectedEntities, eeatData, or the project's default location. Requires the `knowledge:manage` capability. A pitch project that is not currently active refuses with 409 `INACTIVE_PITCH_PROMPT_MUTATION`.

## Path parameters

- `projectId` string, uuid, required

## Request body

- UpdateBrandProfileRequest: A subset of knowledge-base brand fields, and the Tone / Writing Style and Memory documents, to update. Every field is optional; only supplied fields are changed. Does not touch connectedEntities, eeatData, or the project's default location.
  - `name` string
  - `headline` string
  - `description` string: A longer factual description. The app doesn't show it; topic assignment and some other analyses read it.
  - `positioning` string: What the brand does: the app's Brand Context box, read by prompt generation and most analyses.
  - `category` string
  - `influence` 'global' | 'national-global' | 'nationwide' | 'regional' | 'local': Where the brand sells (the app's Geographic reach). Does not change the default location.
  - `language` string: A language code the app offers, e.g. en-GB.
  - `websiteUrl` string
  - `caseSensitive` boolean: The app's Exact match only: count only mentions with the brand name's exact spelling and capitalization.
  - `brandNameDisambiguation` string
  - `topics` string[]
  - `tone` string: The Knowledge Base's Tone / Writing Style document: free-form markdown on the brand's voice, adjectives, phrases to avoid and language to include, which the app's agents follow when they write. Replaces the whole document; an empty string clears it.
  - `memory` string: The Knowledge Base's Memory document: free-form markdown facts and preferences the app's agents keep in mind. Replaces the whole document; an empty string clears it.

## Response `200`

Brand profile updated.

- UpdateBrandProfileResponse
  - `success` boolean, required
  - `action` 'created' | 'updated' | 'unchanged', required: Whether the knowledge-base row was created, updated, or left unchanged (no field in the request differed from the stored value). The tone and memory documents are not part of that row; see updatedDocuments.
  - `updatedDocuments` string[], required: The writing documents this request replaced; empty when it sent neither.

## Other responses

- `400`: Error response. `code` is the machine-readable reason — see the [error reference](/api/errors) for the full catalog and remediation per code.
- `401`: Error response. `code` is the machine-readable reason — see the [error reference](/api/errors) for the full catalog and remediation per code.
- `403`: Error response. `code` is the machine-readable reason — see the [error reference](/api/errors) for the full catalog and remediation per code.
- `404`: Error response. `code` is the machine-readable reason — see the [error reference](/api/errors) for the full catalog and remediation per code.
- `409`: Error response. `code` is the machine-readable reason — see the [error reference](/api/errors) for the full catalog and remediation per code.
- `429`: Rate limited. Usually the per-API-key REST limit (600 requests/minute); on Google-backed endpoints it can also relay an upstream Google rate limit. `Retry-After` (seconds) is present when the limit was applied by Searchable's own rate limiter; it may be absent when an upstream provider rate-limits.

## Changes

- **2026-11-03** `28a5e2a65cd3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/searchable/apis/searchable-rest-api/changes/api/mcp/projects/:projectId/brand-profile/patch.md)

---

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