> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omnicommerce.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Brand Kit

> Create a full brand kit with optional imageSourceUrls. Requires branding:write. All brandKit fields are supported; omitted fields receive canonical defaults.

Source websites accept HTTP(S) URLs or domain/path scopes and return normalized host/path values. The kit and sources save atomically. Use public HTTP(S) URLs for logo/icons; embedded images are rejected.



## OpenAPI

````yaml /openapi.json post /api/v1/brand-kits
openapi: 3.1.0
info:
  title: OmniCommerce API
  version: 1.0.0
  license:
    name: Proprietary
    url: https://omnicommerce.sg/terms
  description: >-
    OmniCommerce API surface for agents and developer integrations. Includes
    public endpoints (merchant discovery, product search, compare, catalog, ACO
    retrieval) and authenticated endpoints (product management via API key
    Bearer tokens).
servers:
  - url: https://omnicommerce.sg
    description: Production
  - url: http://localhost:3000
    description: Local development
security: []
tags:
  - name: agentic-checkout
    description: Merchant-fulfilled agentic checkout
    x-group: Agentic Checkout
  - name: agents
    description: agents
    x-group: Agents
  - name: analytics
    description: Sales performance across marketplaces
    x-group: Analytics
  - name: aops
    description: Agent operating procedures
    x-group: AOPs
  - name: branding
    description: branding
    x-group: Branding
  - name: campaigns
    description: Campaign briefs, offer windows, and marketplace runs
    x-group: Campaigns
  - name: developer-platform
    description: Authenticated developer platform APIs
    x-group: Developer Platform
  - name: documents
    description: Knowledge base document uploads
    x-group: Knowledge Base
  - name: looks
    description: AI-styled product looks
    x-group: Looks
  - name: oauth
    description: OAuth token endpoints
    x-group: OAuth
  - name: orders
    description: Workspace and agentic orders
    x-group: Orders
  - name: organizations
    description: Organization management
    x-group: Organizations
  - name: price-books
    description: Marketplace list-price markup rules
    x-group: Price Books
  - name: products
    description: Product CRUD, bulk import, enrichment, publish, and delist
    x-group: Products
  - name: promotions
    description: Central promotions and marketplace sync
    x-group: Promotions
  - name: public-agent
    description: Public agent discovery and catalog APIs
    x-group: Public Agent
  - name: returns
    description: returns
    x-group: Returns
  - name: reviews
    description: Marketplace product reviews and seller replies
    x-group: Reviews
  - name: settlements
    description: settlements
    x-group: Settlements
  - name: ucp
    description: Universal Commerce Protocol
    x-group: UCP
paths:
  /api/v1/brand-kits:
    post:
      tags:
        - branding
      summary: Create Brand Kit
      description: >-
        Create a full brand kit with optional imageSourceUrls. Requires
        branding:write. All brandKit fields are supported; omitted fields
        receive canonical defaults.


        Source websites accept HTTP(S) URLs or domain/path scopes and return
        normalized host/path values. The kit and sources save atomically. Use
        public HTTP(S) URLs for logo/icons; embedded images are rejected.
      operationId: post_v1_brand_kits
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                organizationId:
                  type: string
                  minLength: 1
                  maxLength: 120
                name:
                  type: string
                  minLength: 1
                  maxLength: 120
                brandKit:
                  type: object
                  properties:
                    websiteUrl:
                      anyOf:
                        - type: string
                          maxLength: 2048
                          format: uri
                        - type: string
                          const: ''
                    colorScheme:
                      type: string
                      enum:
                        - light
                        - dark
                    fonts:
                      maxItems: 20
                      type: array
                      items:
                        type: object
                        properties:
                          family:
                            type: string
                            maxLength: 80
                          role:
                            type: string
                            enum:
                              - heading
                              - body
                        required:
                          - family
                          - role
                        additionalProperties: false
                    colors:
                      type: object
                      properties:
                        primary:
                          type: string
                          pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                        accent:
                          type: string
                          pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                        background:
                          type: string
                          pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                        textPrimary:
                          type: string
                          pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                        link:
                          type: string
                          pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                      additionalProperties: false
                    colorPalette:
                      maxItems: 24
                      type: array
                      items:
                        type: string
                        pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                    typography:
                      type: object
                      properties:
                        fontFamilies:
                          type: object
                          properties:
                            primary:
                              type: string
                              maxLength: 80
                            heading:
                              type: string
                              maxLength: 80
                            body:
                              type: string
                              maxLength: 80
                          additionalProperties: false
                        fontStacks:
                          type: object
                          properties:
                            heading:
                              maxItems: 8
                              type: array
                              items:
                                type: string
                                maxLength: 80
                            body:
                              maxItems: 8
                              type: array
                              items:
                                type: string
                                maxLength: 80
                            paragraph:
                              maxItems: 8
                              type: array
                              items:
                                type: string
                                maxLength: 80
                          additionalProperties: false
                        fontSizes:
                          type: object
                          properties:
                            h1:
                              type: string
                              maxLength: 40
                            h2:
                              type: string
                              maxLength: 40
                            body:
                              type: string
                              maxLength: 40
                          additionalProperties: false
                      additionalProperties: false
                    spacing:
                      type: object
                      properties:
                        baseUnit:
                          type: number
                          minimum: 2
                          maximum: 16
                        borderRadius:
                          type: string
                          maxLength: 40
                      additionalProperties: false
                    components:
                      type: object
                      properties:
                        input:
                          type: object
                          properties:
                            background:
                              type: string
                              maxLength: 120
                            textColor:
                              type: string
                              maxLength: 120
                            borderColor:
                              type: string
                              maxLength: 120
                            borderRadius:
                              type: string
                              maxLength: 40
                            borderRadiusCorners:
                              type: object
                              properties:
                                topLeft:
                                  type: string
                                  maxLength: 40
                                topRight:
                                  type: string
                                  maxLength: 40
                                bottomRight:
                                  type: string
                                  maxLength: 40
                                bottomLeft:
                                  type: string
                                  maxLength: 40
                              additionalProperties: false
                            shadow:
                              type: string
                              maxLength: 200
                          additionalProperties: false
                        buttonPrimary:
                          type: object
                          properties:
                            background:
                              type: string
                              maxLength: 120
                            textColor:
                              type: string
                              maxLength: 120
                            borderColor:
                              type: string
                              maxLength: 120
                            borderRadius:
                              type: string
                              maxLength: 40
                            borderRadiusCorners:
                              type: object
                              properties:
                                topLeft:
                                  type: string
                                  maxLength: 40
                                topRight:
                                  type: string
                                  maxLength: 40
                                bottomRight:
                                  type: string
                                  maxLength: 40
                                bottomLeft:
                                  type: string
                                  maxLength: 40
                              additionalProperties: false
                            shadow:
                              type: string
                              maxLength: 200
                          additionalProperties: false
                        buttonSecondary:
                          type: object
                          properties:
                            background:
                              type: string
                              maxLength: 120
                            textColor:
                              type: string
                              maxLength: 120
                            borderColor:
                              type: string
                              maxLength: 120
                            borderRadius:
                              type: string
                              maxLength: 40
                            borderRadiusCorners:
                              type: object
                              properties:
                                topLeft:
                                  type: string
                                  maxLength: 40
                                topRight:
                                  type: string
                                  maxLength: 40
                                bottomRight:
                                  type: string
                                  maxLength: 40
                                bottomLeft:
                                  type: string
                                  maxLength: 40
                              additionalProperties: false
                            shadow:
                              type: string
                              maxLength: 200
                          additionalProperties: false
                      additionalProperties: false
                    images:
                      type: object
                      properties:
                        logo:
                          anyOf:
                            - type: string
                              maxLength: 2048
                              format: uri
                            - type: 'null'
                        icons:
                          maxItems: 24
                          type: array
                          items:
                            type: string
                            maxLength: 2048
                            format: uri
                      additionalProperties: false
                    personality:
                      type: object
                      properties:
                        tone:
                          type: string
                          maxLength: 120
                        energy:
                          type: string
                          maxLength: 120
                        targetAudience:
                          type: string
                          maxLength: 180
                      additionalProperties: false
                    contentGuidelines:
                      type: string
                      maxLength: 6000
                    parentBrandName:
                      type: string
                      maxLength: 160
                    parentBrandKitIds:
                      maxItems: 1
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 120
                    alsoKnownAs:
                      maxItems: 20
                      type: array
                      items:
                        type: string
                        maxLength: 160
                    extractedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        - type: 'null'
                    source:
                      type: string
                      enum:
                        - manual
                        - auto
                  additionalProperties: false
                imageSourceUrls:
                  description: >-
                    Manufacturer/distributor source websites. HTTP(S) URLs and
                    domain/path scopes are accepted and normalized to host/path.
                    Empty arrays clear sources.
                  maxItems: 80
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 2048
              required:
                - name
              additionalProperties: false
      responses:
        '201':
          description: Created brand kit.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  apiVersion:
                    type: string
                    const: developer_v1
                  operationId:
                    type: string
                  status:
                    type: string
                    enum:
                      - accepted
                      - completed
                      - failed
                  jobId:
                    type: string
                  warnings:
                    type: array
                    items:
                      type: string
                  recommendations:
                    type: array
                    items:
                      type: string
                  links:
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties:
                      type: string
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      organizationId:
                        type: string
                      name:
                        type: string
                      normalizedName:
                        type: string
                      brandKit:
                        type: object
                        properties:
                          websiteUrl:
                            anyOf:
                              - type: string
                                maxLength: 2048
                                format: uri
                              - type: string
                                const: ''
                          colorScheme:
                            type: string
                            enum:
                              - light
                              - dark
                          fonts:
                            maxItems: 20
                            type: array
                            items:
                              type: object
                              properties:
                                family:
                                  type: string
                                  maxLength: 80
                                role:
                                  type: string
                                  enum:
                                    - heading
                                    - body
                              required:
                                - family
                                - role
                              additionalProperties: false
                          colors:
                            type: object
                            properties:
                              primary:
                                type: string
                                pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                              accent:
                                type: string
                                pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                              background:
                                type: string
                                pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                              textPrimary:
                                type: string
                                pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                              link:
                                type: string
                                pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                            required:
                              - primary
                              - accent
                              - background
                              - textPrimary
                              - link
                            additionalProperties: false
                          colorPalette:
                            maxItems: 24
                            type: array
                            items:
                              type: string
                              pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
                          typography:
                            type: object
                            properties:
                              fontFamilies:
                                type: object
                                properties:
                                  primary:
                                    type: string
                                    maxLength: 80
                                  heading:
                                    type: string
                                    maxLength: 80
                                  body:
                                    type: string
                                    maxLength: 80
                                required:
                                  - primary
                                  - heading
                                  - body
                                additionalProperties: false
                              fontStacks:
                                type: object
                                properties:
                                  heading:
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      maxLength: 80
                                  body:
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      maxLength: 80
                                  paragraph:
                                    maxItems: 8
                                    type: array
                                    items:
                                      type: string
                                      maxLength: 80
                                required:
                                  - heading
                                  - body
                                  - paragraph
                                additionalProperties: false
                              fontSizes:
                                type: object
                                properties:
                                  h1:
                                    type: string
                                    maxLength: 40
                                  h2:
                                    type: string
                                    maxLength: 40
                                  body:
                                    type: string
                                    maxLength: 40
                                required:
                                  - h1
                                  - h2
                                  - body
                                additionalProperties: false
                            required:
                              - fontFamilies
                              - fontStacks
                              - fontSizes
                            additionalProperties: false
                          spacing:
                            type: object
                            properties:
                              baseUnit:
                                type: number
                                minimum: 2
                                maximum: 16
                              borderRadius:
                                type: string
                                maxLength: 40
                            required:
                              - baseUnit
                              - borderRadius
                            additionalProperties: false
                          components:
                            type: object
                            properties:
                              input:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    maxLength: 120
                                  textColor:
                                    type: string
                                    maxLength: 120
                                  borderColor:
                                    type: string
                                    maxLength: 120
                                  borderRadius:
                                    type: string
                                    maxLength: 40
                                  borderRadiusCorners:
                                    type: object
                                    properties:
                                      topLeft:
                                        type: string
                                        maxLength: 40
                                      topRight:
                                        type: string
                                        maxLength: 40
                                      bottomRight:
                                        type: string
                                        maxLength: 40
                                      bottomLeft:
                                        type: string
                                        maxLength: 40
                                    required:
                                      - topLeft
                                      - topRight
                                      - bottomRight
                                      - bottomLeft
                                    additionalProperties: false
                                  shadow:
                                    type: string
                                    maxLength: 200
                                required:
                                  - background
                                  - textColor
                                  - borderColor
                                  - borderRadius
                                  - borderRadiusCorners
                                  - shadow
                                additionalProperties: false
                              buttonPrimary:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    maxLength: 120
                                  textColor:
                                    type: string
                                    maxLength: 120
                                  borderColor:
                                    type: string
                                    maxLength: 120
                                  borderRadius:
                                    type: string
                                    maxLength: 40
                                  borderRadiusCorners:
                                    type: object
                                    properties:
                                      topLeft:
                                        type: string
                                        maxLength: 40
                                      topRight:
                                        type: string
                                        maxLength: 40
                                      bottomRight:
                                        type: string
                                        maxLength: 40
                                      bottomLeft:
                                        type: string
                                        maxLength: 40
                                    required:
                                      - topLeft
                                      - topRight
                                      - bottomRight
                                      - bottomLeft
                                    additionalProperties: false
                                  shadow:
                                    type: string
                                    maxLength: 200
                                required:
                                  - background
                                  - textColor
                                  - borderColor
                                  - borderRadius
                                  - borderRadiusCorners
                                  - shadow
                                additionalProperties: false
                              buttonSecondary:
                                type: object
                                properties:
                                  background:
                                    type: string
                                    maxLength: 120
                                  textColor:
                                    type: string
                                    maxLength: 120
                                  borderColor:
                                    type: string
                                    maxLength: 120
                                  borderRadius:
                                    type: string
                                    maxLength: 40
                                  borderRadiusCorners:
                                    type: object
                                    properties:
                                      topLeft:
                                        type: string
                                        maxLength: 40
                                      topRight:
                                        type: string
                                        maxLength: 40
                                      bottomRight:
                                        type: string
                                        maxLength: 40
                                      bottomLeft:
                                        type: string
                                        maxLength: 40
                                    required:
                                      - topLeft
                                      - topRight
                                      - bottomRight
                                      - bottomLeft
                                    additionalProperties: false
                                  shadow:
                                    type: string
                                    maxLength: 200
                                required:
                                  - background
                                  - textColor
                                  - borderColor
                                  - borderRadius
                                  - borderRadiusCorners
                                  - shadow
                                additionalProperties: false
                            required:
                              - input
                              - buttonPrimary
                              - buttonSecondary
                            additionalProperties: false
                          images:
                            type: object
                            properties:
                              logo:
                                anyOf:
                                  - type: string
                                    maxLength: 2048
                                    format: uri
                                  - type: 'null'
                              icons:
                                maxItems: 24
                                type: array
                                items:
                                  type: string
                                  maxLength: 2048
                                  format: uri
                            required:
                              - logo
                              - icons
                            additionalProperties: false
                          personality:
                            type: object
                            properties:
                              tone:
                                type: string
                                maxLength: 120
                              energy:
                                type: string
                                maxLength: 120
                              targetAudience:
                                type: string
                                maxLength: 180
                            required:
                              - tone
                              - energy
                              - targetAudience
                            additionalProperties: false
                          contentGuidelines:
                            type: string
                            maxLength: 6000
                          parentBrandName:
                            type: string
                            maxLength: 160
                          parentBrandKitIds:
                            maxItems: 1
                            type: array
                            items:
                              type: string
                              minLength: 1
                              maxLength: 120
                          alsoKnownAs:
                            maxItems: 20
                            type: array
                            items:
                              type: string
                              maxLength: 160
                          extractedAt:
                            anyOf:
                              - type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                              - type: 'null'
                          source:
                            type: string
                            enum:
                              - manual
                              - auto
                        required:
                          - websiteUrl
                          - colorScheme
                          - fonts
                          - colors
                          - colorPalette
                          - typography
                          - spacing
                          - components
                          - images
                          - personality
                          - contentGuidelines
                          - parentBrandName
                          - alsoKnownAs
                          - extractedAt
                          - source
                        additionalProperties: false
                      imageSourceUrls:
                        type: array
                        items:
                          type: string
                      source:
                        type: string
                        enum:
                          - manual
                          - auto
                          - legacy
                      createdByUserId:
                        anyOf:
                          - type: string
                          - type: 'null'
                      updatedByUserId:
                        anyOf:
                          - type: string
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - organizationId
                      - name
                      - normalizedName
                      - brandKit
                      - imageSourceUrls
                      - source
                      - createdByUserId
                      - updatedByUserId
                      - createdAt
                      - updatedAt
                required:
                  - ok
                  - apiVersion
                  - operationId
                  - status
                  - warnings
                  - recommendations
                  - links
                  - data
        '400':
          description: Invalid request.
        '401':
          description: Missing credentials.
        '403':
          description: Missing OAuth scope or organization capability.
        '404':
          description: Resource not found in this organization.
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Bearer API key for server-to-server access. Session auth is also
        supported in first-party UI flows.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.