Skip to main content
A Brand is the identity (Acme Corp). A BrandKit is a versioned snapshot of that identity — colors, fonts, logos, lock rules. Each render pins to a specific BrandKit version, so re-running a render six months later still produces on-brand output even if the brand has since evolved.

Step 1 — create a brand

You’ll usually do this once via the dashboard at Brands. Programmatically:

Step 2 — create a BrandKit version

The response includes a version like 2026-05-24.1. Save it.

Step 3 — render with the brand

Fetch the saved brand and embed its kit in the generate request’s intent.brand_kit. The engine enforces the kit — fonts, colors, logos, policies — on every render:
Pin the kit you render with: the brand kit is embedded in the request, so the render can never drift from what you sent — that’s the determinism contract doing brand governance.

Step 4 — what gets locked

A locked: true rule in your BrandKit is enforced at compile time. Briefs that violate it are rejected with STYLE_LOCK_VIOLATION:
See details and fix_patch for automatic recovery.

When to bump the version

Create a new BrandKit version (not edit the old) whenever you change anything users render against — colors, fonts, lock rules. Past renders keep pointing at the old version, so they stay reproducible. To make a new version the default for new renders that omit brandkit_version: