SITEMAP / DOCS / API REFERENCE

Brand Context API

Per-workspace business + voice profile. The active profile is injected as the leading block of every buddy's system prompt, so updates take effect on the next chat turn.

See the Brand & Voice guide for the concept overview and UI walkthrough.

All endpoints require auth + workspace context.

01Get

GET /v1/brand-context
Authorization: Bearer <token>

Returns { "context": <BrandContext | {}> }. Empty object for a workspace that has never configured one.

02Upsert

PUT /v1/brand-context
Authorization: Bearer <token>
Content-Type: application/json

{
  "businessName": "Acme Analytics",
  "website": "https://acme.com",
  "industry": "saas",
  "description": "Revenue intelligence platform for mid-market operators.",
  "audience": "Heads of Growth at Series-B SaaS",
  "voice": {
    "formality": 3,
    "humor": 2,
    "respect": 4,
    "energy": 4
  },
  "links": {
    "privacy": "https://acme.com/privacy",
    "terms": "https://acme.com/terms"
  }
}

Shallow-merges nested voice and links objects. Unknown fields are silently dropped. If enrichedSource is omitted it defaults to manual; passing auto-detect stamps an enrichedAt timestamp.

Returns { "context": <BrandContext> } with the merged result.

03Delete

DELETE /v1/brand-context
Authorization: Bearer <token>

Returns { "ok": true }.

04Field reference

FieldTypeConstraint
businessNamestring≤ 200 chars
websitestring≤ 300 chars
industryenumsaas · ecommerce · fintech · healthcare · education · media · marketplace · agency · devtools · consumer · hardware · nonprofit · other
industryOtherstring≤ 120 chars
descriptionstring≤ 2000 chars
audiencestring≤ 1000 chars
voice.formalityint 1–5Clamped; default 3
voice.humorint 1–5Clamped; default 3
voice.respectint 1–5Clamped; default 3
voice.energyint 1–5Clamped; default 3
links.privacy / terms / pricing / downloadURLMust start with http:// or https://; ≤ 300 chars
enrichedSourceenummanual · auto-detect
enrichedAtISO timestampAuto-set when enrichedSource = auto-detect

Persisted per-workspace in ws_{id}_brand_context.json with the same encryption policy as integration configs.