---
title: "Council Review"
method: POST
path: "/v3/council/review"
tags: ["council"]
---

# Council Review

`POST /v3/council/review`

## Request

- Base URL: `https://api.etymolt.com`
- URL: `https://api.etymolt.com/v3/council/review`
- Auth: none declared

Run the full deliberative council on a candidate name.

Default behavior: all 6 Tier-1 specialists, dependency-aware dispatch,
weighted synthesis, dissent surfaced, override rules applied. Optional
roster override lets callers pick a subset (e.g. just TM Counsel +
Linguist for a quick check).

## Request body

- CouncilReviewReq
  - `name` string, required
  - `brief` FounderBrief: The founder's brief — what they want the brand to do. Pulled from the Studio session or supplied via API.
    - `audience` string, nullable
    - `category` string, nullable
    - `unique_benefit` string, nullable
    - `personality` string[]
    - `target_markets` string[]
    - `target_nice_classes` integer[]
    - `must_avoid_terms` string[]
  - `roster` string[], nullable: Optional list of AgentRole values. If omitted, runs TIER_1_ROSTER.
  - `session_id` string, nullable
  - `record_outcome` boolean: Persist the decision in the outcomes corpus

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names.md) · [All operations](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names/llms.txt) · [OpenAPI document](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names/revisions/7228ffa1efa7?raw)
