Update Brand
Update a brand's name or competitor list.
Partially update a brand. Only name and competitors are mutable via this endpoint — everything else (identity, brand_context, technical_context, etc.) is populated by the enrichment endpoints.
Path parameters
brand_idstringrequiredThe brand UUID.
Request body
All fields are optional. Include only what you want to change.
namestringUpdated brand display name.
competitorsCompetitor[] | string[]Replace the full competitor list. Accepts either an array of Competitor objects ({domain, type, tier, confidence, reason_codes, source_tags, evidence}) or an array of bare domain strings. Bare strings are auto-upgraded to Competitor objects with type="business", tier="adjacent", confidence=0.0. See GET /brands/{id} for the full Competitor shape.
Response
{
"id": "ea502f67-338b-47e4-a245-5c4eea8bd8d2",
"domain": "yourdomain.com",
"name": "Your Brand",
"competitors": [
{
"domain": "competitor1.com",
"type": "business",
"tier": "direct",
"confidence": 0.0,
"reason_codes": [],
"source_tags": [],
"evidence": []
}
],
"updated_at": "2026-04-07T10:35:00Z"
}
409 Conflict is returned (with an X-Running-Run-Id header) if a pipeline-modifying run is currently active for the brand. The blocking run kinds are: full, discovery, brand_enrichment, llm_enrichment, scoring, competitor_discovery. Non-blocking kinds — technical_enrichment, brief, execution, and synthesize — do not reject PATCH. Active runs older than 15 minutes are auto-expired and do not count as active.
Errors
| Status | Meaning |
|---|---|
404 | Brand not found, or not owned by the caller. |
409 | Pipeline-modifying run in progress — see the note above. Header: X-Running-Run-Id. |
422 | brand_id is not a valid UUID, or request body failed validation. |
Example
curl -X PATCH \
https://api.boringmarketing.com/brands/$BRAND_ID \
-H "Content-Type: application/json" \
-H "X-API-Key: $BM_API_KEY" \
-d '{
"competitors": ["competitor1.com", "competitor2.com"]
}'After updating competitors, re-run scoring with POST /brands/{id}/score to refresh the action queue with the new context.