POST
/
v1
/
teams
/
{teamId}
/
brands
TypeScript client
import { OctosparkClient } from '@octospark/sdk'

const client = new OctosparkClient({
  token: process.env.OCTOSPARK_TOKEN
})

const response = await client.brands.createBrand({
  teamId: process.env.OCTOSPARK_TEAM_ID ?? "teamId",
  body: {},
})
{
  "id": "<string>",
  "teamId": "<string>",
  "organizationId": "<string>",
  "name": "<string>",
  "isPrimary": true,
  "language": "<string>",
  "website": "<string>",
  "businessDescription": "<string>",
  "idealCustomer": "<string>",
  "customerLocation": "<string>",
  "colors": {
    "primary": "<string>",
    "secondary": "<string>",
    "accent": "<string>",
    "background": "<string>",
    "text": "<string>"
  },
  "contentTopics": [
    "<string>"
  ],
  "selectedSourceIds": [
    "<string>"
  ],
  "createdAt": "<string>",
  "updatedAt": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

teamId
string
required

Team (workspace) id (UUID). Discover ids via the list teams endpoint or the agent context.

Body

application/json
name
string
required

Display name for the brand, e.g. the company or product name.

Required string length: 1 - 200
isPrimary
boolean

Make this brand the team default that /agent grounds on. The first brand is always primary; setting this on a later brand demotes the previous primary atomically.

language
string | null

Language the brand publishes in, e.g. "English" or "German". Generated content follows it.

Maximum string length: 4000
website
string | null

The brand's website URL, used as grounding context for generation.

Maximum string length: 4000
businessDescription
string | null

Free-text description of what the business does, in the brand's own words.

Maximum string length: 4000
idealCustomer
string | null

Who the brand is talking to: the audience generated content should be written for.

Maximum string length: 4000
customerLocation
string | null

Where the audience is, e.g. "UK" or "US west coast", so content can match locale and idiom.

Maximum string length: 4000
colors
object

The brand colour palette (primary, secondary, accent, background, text), applied to generated visuals.

contentTopics
string[]

Topics the brand posts about; generation stays within these themes.

Maximum array length: 50

a string at most 120 character(s) long

Required string length: 1 - 120
selectedSourceIds
string<uuid>[]

Ids of existing content sources this brand grounds on (see the sources endpoints). Empty means no source grounding.

Maximum array length: 200

a Universally Unique Identifier

Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$

Response

Success

id
string
required
teamId
string
required
organizationId
string
required
name
string
required
isPrimary
boolean
required
language
string | null
required
website
string | null
required
businessDescription
string | null
required
idealCustomer
string | null
required
customerLocation
string | null
required
colors
object
required
contentTopics
string[]
required
selectedSourceIds
string[]
required
createdAt
string
required
updatedAt
string
required