---
title: "Set brand voice descriptors"
method: PUT
path: "/image-briefs/brand-voice"
tags: ["Briefs"]
---

# Set brand voice descriptors

`PUT /image-briefs/brand-voice`

## Request

- Base URL: `https://api.reacherapp.com/public/v1`
- URL: `https://api.reacherapp.com/public/v1/image-briefs/brand-voice`
- Auth: API key in header `x-api-key` and API key in header `x-shop-id`

Replace the descriptors that steer the tone of generated image briefs. This is a replace, not an append — send the full list.

Requires an existing brand profile for the shop; 404 until brand analysis has run. Affects future generations only; existing briefs keep their saved copy.

## Headers

- `Idempotency-Key` string, nullable
- `X-Dry-Run` string, nullable

## Request body

- ImageBriefBrandVoiceRequest
  - `voice_descriptors` string[]

## Response `200`

Successful Response

- BrandVoiceWriteResponse
  - `data` BrandVoiceResponse, required
    - `shop_id` integer, required
    - `voice_descriptors` string[]
    - `brand_voice` string
  - `dry_run` boolean

## Other responses

- `400`: Validation error, multi-shop key, or missing/invalid Idempotency-Key.
- `403`: API key lacks `read_write` scope (`WRITE_NOT_PERMITTED`).
- `404`: Brief or product not found in this shop.
- `409`: Idempotency conflict.
- `422`: Validation Error
- `429`: Write-tier rate limit exceeded.

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) - [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reacherapp/apis/reacher-data-api/revisions/63ce74b30b5a?raw)
