Search Documentation

Search for a documentation page...

Brand Kit API

REST API endpoints for managing your store's brand kit, guidelines, and design tokens.

The Brand Kit API lets you store and retrieve structured brand information — colors, typography, logos, voice, and imagery — plus free-form markdown guidelines. This data powers the AI Builder's design decisions and can be consumed by any integration that needs your brand's source of truth.

Get Brand Kit

GET /api/v1/brand-kit

Returns the store's brand kit, guidelines, source PDF URL, and last-updated timestamp. Fields are null when no brand kit has been configured.

Response

{
"brandKit": {
"name": "Acme Store",
"tagline": "Quality goods, delivered fast",
"colors": [
{ "name": "Primary", "hex": "#1a73e8", "role": "primary" },
{ "name": "Accent", "hex": "#ff6d00", "role": "accent" }
],
"typography": {
"headingFont": "Inter",
"bodyFont": "Source Sans Pro",
"scale": "normal"
},
"logos": [
{
"variant": "primary",
"url": "https://cdn.example.com/logo.png",
"background": "light"
}
],
"voice": {
"tone": ["confident", "friendly"],
"personality": "Approachable yet professional",
"dos": ["Use active voice", "Be concise"],
"donts": ["Avoid jargon", "No all-caps"]
},
"imagery": {
"style": "Minimal lifestyle photography",
"subjects": ["product in use", "flat lay"],
"avoid": ["stock photos", "cluttered backgrounds"]
},
"borderRadius": "md"
},
"guidelines": "## Logo Usage\n\nAlways maintain 24px clearspace around the logo...",
"pdfUrl": "https://example.com/brand-guide.pdf",
"updatedAt": "2026-04-23T12:00:00.000Z"
}

When no brand kit exists, all top-level fields are null:

{
"brandKit": null,
"guidelines": null,
"pdfUrl": null,
"updatedAt": null
}

Update Brand Kit

PUT /api/v1/brand-kit

Partial update — omitted top-level fields are left unchanged. Send null to clear a field.

Request Body

FieldTypeRequiredDescription
brandKitobject | nullNoStructured brand fields (see schema below). null clears the kit.
guidelinesstring | nullNoFree-form markdown guidelines (max 50,000 characters). null clears.
pdfUrlstring | nullNoURL to the source brand PDF. null clears.

Brand Kit Object

FieldTypeDescription
namestringBrand name as it should appear
taglinestringShort tagline or positioning line
missionstringMission or value proposition
audiencestringTarget audience description
colorsColor[]Brand colors (see below)
typographyobjectTypography settings (see below)
logosLogo[]Logo variants (see below)
voiceobjectBrand voice and tone (see below)
imageryobjectImagery and photography guidelines (see below)
borderRadiusstringCorner radius preference: none, sm, md, lg, full
linksobjectSocial and website links: website, instagram, twitter, linkedin

All fields are optional. Only include what you want to set or update.

Color Object

FieldTypeRequiredDescription
namestringYesLabel (e.g. "Primary", "Accent")
hexstringYesHex color (e.g. #1a73e8)
rolestringNoSemantic role: primary, secondary, accent, background, foreground, muted, border, other
notesstringNoUsage notes (e.g. "headings only")

Typography Object

FieldTypeDescription
headingFontstringFont family for headings
bodyFontstringFont family for body text
monoFontstringFont family for monospace/code
fontUrlsstring[]Direct font CDN URLs (Google Fonts, Fontshare, etc.)
scalestringType scale density: compact, normal, spacious
notesstringAdditional typography notes

Logo Object

FieldTypeRequiredDescription
variantstringYesLogo variant: primary, wordmark, mark, light, dark, monochrome
urlstringYesPublicly accessible image URL
backgroundstringNoIntended background: light, dark, any

Voice Object

FieldTypeDescription
tonestring[]Tone descriptors (e.g. ["confident", "playful"])
personalitystring1-2 sentence personality summary
dosstring[]Phrases/behaviors to embrace
dontsstring[]Phrases/behaviors to avoid
vocabularyobject{ preferred: string[], avoid: string[] }

Imagery Object

FieldTypeDescription
stylestringPhotography/illustration style
subjectsstring[]What to depict
avoidstring[]What never to depict
referenceUrlsstring[]Moodboard reference image URLs

Example Request

curl -X PUT \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"brandKit": {
"name": "Acme Store",
"colors": [
{ "name": "Primary", "hex": "#1a73e8", "role": "primary" },
{ "name": "Accent", "hex": "#ff6d00", "role": "accent" }
],
"typography": {
"headingFont": "Inter",
"bodyFont": "Source Sans Pro"
},
"borderRadius": "md"
},
"guidelines": "Always use the primary color for CTAs."
}' \
https://your-store.yns.store/api/v1/brand-kit

Response (200)

Returns the full updated brand kit in the same shape as the GET response.

Error Response (400)

{
"error": "Invalid request data",
"details": [
{
"path": ["brandKit", "colors", 0, "hex"],
"message": "Must be a hex color like #ff00aa"
}
]
}

Delete Brand Kit

DELETE /api/v1/brand-kit

Clears the structured kit, guidelines, and source PDF reference. Returns no body.

curl -X DELETE \
-H "Authorization: Bearer your_api_key" \
https://your-store.yns.store/api/v1/brand-kit

Response

204 No Content — brand kit cleared.