brandKits

API · BrandKit · Populate a brand kit (canonical schema)

Submit a canonical BrandKitDocument body to populate a brand kit. Every top-level section is optional, allowing incremental calls:

  • brand — name, description, website URL
  • social_links — array of {type, url} objects
  • style — full visual-identity JSON (colors, typography, logos, imagery, logo_lockup, on_image_copy, ai_guardrails, prose, inferred_fields)
  • Row sections, each merged by normalized name or title with omitted rows preserved: features (1–20), icps (1–5), content_pillars (1–5), usps (1–10), competitor_analysis (1–10). Each section is named by the context-document key it is read back as. These are the only write path for those documents; never write them as context documents. An unknown section name is a 400 that lists the valid ones.

The body shape is identical to the GET response (without id). Empty body {} is a valid no-op. Server-controlled fields (id, version) in the body are ignored.

Runs synchronously and returns 200 with the result. Calling this endpoint multiple times is safe — sections sent overwrite their own fields; omitted sections are left unchanged. Do NOT call getTaskResult after this — there is no async task; the operation is complete by the time the response returns.

post/api/v2/brandkits/{brand_id}/build

Request

  • Base URL
    https://api.simplified.com
  • Auth
    API key in header Authorization

Path parameters

brand_idstring uuid required

Brand kit UUID

Request body

idstring uuid

Brand kit UUID (GET only).

versioninteger

Envelope schema version. 1 = legacy kit, 2 = canonical V2. Server-stamped. Client values in POST are ignored.

extract_refstring

Handle returned by web_brand_extract (as the _extract_ref field). When set, the agent runtime fetches the cached extraction and fills missing brand (description, website — never name, which is the kit title set at create), social_links, and the mechanical parts of style: colors, typography, logos, and every assets.reference_images entry the crawler kept. Explicit fields on the request override the inflated values. The agent authors only the judgement fields of style (imagery, ai_guardrails, prose). An expired or unknown handle (extracts live 15 minutes) is a tool error — re-run web_brand_extract for a fresh one. This field is consumed by the apikit pre-hook and is never forwarded to the API itself.

onboarding_declined_atstring date-time

Set when the user declined to supply required brand facts during onboarding, so the agent stops re-asking and shows a soft reminder instead. ISO8601 UTC. A lifecycle marker on the kit, not brand data.

Response

Build complete. Operation finished synchronously.

brand_kit_idstring uuid
statusstring

ok

versioninteger

Stamped envelope version (always 2 after a V2 build)

warningsstring[]

Non-fatal warnings from sub-steps (e.g. style_guide render)

Changes

No recorded changes to this operation across all 1 revision of this API.