Update a brand
PATCH /api/brands/{brandId}
Updates the fields given; the others keep their values. The slug is fixed once the brand is created, except that a brand still carrying the placeholder slug new-account takes a slug derived from its name on the first rename. A key restricted to this brand may update it. Requires the brands:write scope.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The unique identifier of the brand.
Request Body required
Section titled “Request Body required ”object
Brand name, as customers know it.
The slug is fixed once the brand is created. Sending the current value is accepted; a different value returns 422. A brand still carrying the placeholder slug new-account takes a slug derived from its name on the first rename.
Sender name on email sent for this brand.
An inactive brand is paused. Defaults to ‘active’.
Https URL of the brand logo, shown at the top of emails. Upload a file with POST /api/brands/{brandId}/logo instead. null clears it.
Primary brand colour. null clears it.
Secondary brand colour. null clears it.
The assistant’s personality for this brand. null clears it.
Instructions the assistant follows in every conversation of this brand. null clears it.
Name the assistant signs with. null clears it.
Title the assistant signs with. null clears it.
Language codes this brand operates in. Workspaces of the brand choose their operating language from this set.
Default language; one of supportedLanguages.
Responses
Section titled “ Responses ”The updated brand.
A brand: how customers know the business. Workspaces sit under a brand.
object
The account the brand belongs to.
Example
Example CompanyExample
example-companyExample
Example CompanyThe assistant’s voice per language on voice channels.
object
The caller may not change brands. People need the owner or admin role. An API key needs the brands:write scope; a key restricted to a brand or workspace receives code: "key_lock" for an action its restriction does not cover.
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]No brand with this ID is within the caller’s reach.
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]Validation error, or a slug different from the brand’s current slug. code: "language_in_use" when supportedLanguages leaves out a language one of the brand’s workspaces operates in or one of its voice lines uses as its language; error names them and languagesInUse lists them. Nothing was written.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]With code: "language_in_use": each language the update would drop, with the workspaces that operate in it and the voice lines that use it.
object
Example
svobject
object
A new voice in personaVoice could not be checked because the voice list could not be read. Nothing was written; retry the request.
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]