---
title: "Upsert brand positioning"
method: PATCH
path: "/v1/brandPositioning/upsert"
tags: ["brandPositioning"]
---

# Upsert brand positioning

`PATCH /v1/brandPositioning/upsert`

## Request

- Base URL: `https://api.zevari.ai`
- URL: `https://api.zevari.ai/v1/brandPositioning/upsert`
- Auth: HTTP bearer

Transport: call this endpoint with HTTP PATCH and a JSON request body. Create or update the active workspace's Brand Positioning asset in Library.

## Request body

- object
  - `brand_profile` object: Structured brand profile: company, offer, audience, positioningSummary
  - `differentiators` string[]: Meaningful differences AI should reinforce
  - `content_pillars` string[]: 3-5 recurring topics or angles AI should reinforce
  - `cta_strategy` object: CTA defaults: goal, resourceUrl, notes
  - `key_phrases` string[]: Preferred phrases, claims, and wording patterns
  - `testimonials` object[]: Proof points, testimonials, or customer quotes
  - `status` 'active' | 'draft' | 'disabled'
  - `version_bump` 'patch' | 'minor' | 'major'
  - `change_reason` string

## Response `200`

Successful Zevari API response.

- ZevariResponseEnvelope
  - `ok` boolean, required: False when the underlying tool reports an error or a partial failure.
  - `method` string, required: Public API method name.
  - `data` unknown, required
  - `request_id` string, required: Request correlation ID. Also returned in X-Zevari-Request-Id.

## Other responses

- `400`: Invalid arguments or method execution error.
- `401`: Missing, invalid, expired, revoked, or unauthorized API key.
- `404`: Unknown or non-public Zevari API method.
- `429`: API key rate limit exceeded.
- `500`: Unhandled server error.

---

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