---
title: "Brand Guideline Specify Route"
method: POST
path: "/brand/guideline/specify"
---

# Brand Guideline Specify Route

`POST /brand/guideline/specify`

## Request

- Base URL: `https://api.colourmemory.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.colourmemory.com/brand/guideline/specify`
- Auth: none declared

Colour Memory Brand Standard: brand_guideline_specify per
brand-guideline-generator-spec.md §4. A genuinely new, compute-heavy
generation call (three archive-grounded candidate palettes, evidence
scoring, collision/accessibility checks) -- metered like
brand_collision_check, unlike project_export's free reuse of
already-generated content.

## Headers

- `x-api-key` string, nullable
- `origin` string, nullable

## Request body

- BrandGuidelineSpecifyRequest
  - `brand_name` string, required
  - `continue_project_id` string, nullable
  - `brand_brief` BrandBrief
    - `category` string
    - `positioning` string
    - `audience` string
    - `personality` string[]
    - `values` string[]
    - `channels` string[]
    - `markets` string[]
    - `competitors` CompetitorInput[]
      - `name` string
      - `colours` string[]
  - `palette_input` PaletteInput, required
    - `mode` string, required
    - `colours` string[]
    - `locked_colours` string[]
    - `concept` string
    - `archive` string
    - `image_id` string
  - `preferences` Preferences
    - `palette_size` integer
    - `accessibility_target` string
    - `minimum_claim_strength` string
    - `strict_semantic_colour` boolean
    - `allow_unsourced_original_colours` boolean
  - `identity_assets` IdentityAssets
    - `logo_image_id` string
    - `wordmark_image_id` string
    - `logo_base64` string
    - `wordmark_base64` string
  - `output_preferences` OutputPreferences
    - `language` string
    - `tone` string
  - `constraints` BrandConstraints: Bug 2 fix (2026-08-06): confirmed live, the MCP schema had no field for structured negative constraints at all -- a brief that says "not a generic pink pet salon" in prose had no way to make that a real, testable exclusion; the closest the system could do was infer sentiment from prose (fixed separately, see _RELEVANCE_NEGATION_CUES), which is inherently weaker than a structured field a caller can rely on. avoid_concepts are checked as case-insensitive substring matches against each retrieved archive entry's own name/colour_notes/ archive_source text during concept-mode retrieval (resolve_palette_ colours) -- structured constraints, not inferred sentiment, and they take precedence: an avoid_concepts match is excluded outright, regardless of what the brief's prose might otherwise suggest. preferred_families is a soft ranking boost, not a hard filter -- matching entries are preferred, not the only ones allowed.
    - `avoid_concepts` string[]
    - `preferred_families` string[]

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/colourmemory/apis/colour-memory-api.md) · [All operations](https://skmtc.dev/colourmemory/apis/colour-memory-api/llms.txt) · [OpenAPI document](https://skmtc.dev/colourmemory/apis/colour-memory-api/revisions/4ba028f64042?raw)
