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

# Post apiv1brand kit



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/brand-kit
openapi: 3.0.3
info:
  title: SegmentFlow.ai API
  description: Unified SegmentFlow.ai API documentation
  version: 1.0.0
servers:
  - url: http://localhost:3001
    description: Local development
  - url: https://api-staging.segmentflow.ai
    description: Staging
  - url: https://api.segmentflow.ai
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: Profiles
    description: Profiles (Contacts)
  - name: Events
    description: Server-side business event tracking
  - name: Assets
    description: Assets
  - name: BackgroundJobs
    description: Background job progress
  - name: Brand-Kit
    description: Brand kits
  - name: Catalog-Products
    description: Catalog products
  - name: Templates
    description: Templates
  - name: Broadcasts
    description: Broadcasts
  - name: Segments
    description: Segments
  - name: Journeys
    description: Journeys
  - name: Emails
    description: Email sends
paths:
  /api/v1/brand-kit:
    post:
      tags:
        - Brand-Kit
      operationId: Brand-Kit_BrandKit_Create
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                slug:
                  type: string
                  minLength: 2
                  maxLength: 50
                  pattern: ^[a-z0-9][a-z0-9-]*[a-z0-9]$
                website:
                  nullable: true
                  type: string
                  format: uri
                brandKit:
                  allOf:
                    - $ref: '#/components/schemas/BrandKitInput'
              required:
                - name
        required: true
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  brandId:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    nullable: true
                  slug:
                    type: string
                    nullable: true
                  message:
                    type: string
                required:
                  - success
                  - brandId
                  - slug
                  - message
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    BrandKitInput:
      type: object
      properties:
        website:
          type: string
          nullable: true
        blogUrl:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        companyName:
          type: string
          nullable: true
        companyDescription:
          type: string
          nullable: true
        tagline:
          type: string
          nullable: true
        brandSummary:
          type: string
          nullable: true
        industry:
          type: string
          nullable: true
        landingPagePurpose:
          type: string
          nullable: true
        brandMessage:
          type: string
          nullable: true
        keyMessages:
          type: array
          items:
            type: string
          nullable: true
        languages:
          type: array
          items:
            type: string
          nullable: true
        colors:
          type: array
          items:
            type: string
          nullable: true
        colorsPalette:
          $ref: '#/components/schemas/BrandColorsInput'
        fonts:
          type: array
          items:
            type: string
          nullable: true
        typography:
          $ref: '#/components/schemas/BrandTypographyInput'
        emailFonts:
          type: object
          properties:
            primary:
              type: object
              properties:
                original:
                  type: string
                family:
                  type: string
                classification:
                  type: string
                  enum:
                    - sans-serif
                    - serif
                    - slab-serif
                    - monospace
                  nullable: true
                googleFontsUrl:
                  type: string
                  nullable: true
                fontStack:
                  type: string
                  nullable: true
                weights:
                  type: array
                  items:
                    type: number
                  nullable: true
                isSystem:
                  type: boolean
                  nullable: true
              required:
                - original
                - family
              additionalProperties:
                description: Any JSON value.
                nullable: true
                x-stainless-any: true
              nullable: true
            heading:
              type: object
              properties:
                original:
                  type: string
                family:
                  type: string
                classification:
                  type: string
                  enum:
                    - sans-serif
                    - serif
                    - slab-serif
                    - monospace
                  nullable: true
                googleFontsUrl:
                  type: string
                  nullable: true
                fontStack:
                  type: string
                  nullable: true
                weights:
                  type: array
                  items:
                    type: number
                  nullable: true
                isSystem:
                  type: boolean
                  nullable: true
              required:
                - original
                - family
              additionalProperties:
                description: Any JSON value.
                nullable: true
                x-stainless-any: true
              nullable: true
            code:
              type: object
              properties:
                original:
                  type: string
                family:
                  type: string
                classification:
                  type: string
                  enum:
                    - sans-serif
                    - serif
                    - slab-serif
                    - monospace
                  nullable: true
                googleFontsUrl:
                  type: string
                  nullable: true
                fontStack:
                  type: string
                  nullable: true
                weights:
                  type: array
                  items:
                    type: number
                  nullable: true
                isSystem:
                  type: boolean
                  nullable: true
              required:
                - original
                - family
              additionalProperties:
                description: Any JSON value.
                nullable: true
                x-stainless-any: true
              nullable: true
          additionalProperties:
            description: Any JSON value.
            nullable: true
            x-stainless-any: true
          nullable: true
        logos:
          type: array
          items:
            type: string
          nullable: true
        images:
          $ref: '#/components/schemas/BrandImagesInput'
        imageGuidelines:
          type: object
          properties:
            logoWidth:
              type: number
              nullable: true
            logoHeight:
              type: number
              nullable: true
            logoAlignment:
              type: string
              enum:
                - left
                - center
                - right
              nullable: true
            heroWidth:
              type: number
              nullable: true
            heroHeight:
              type: number
              nullable: true
            thumbnailSize:
              type: number
              nullable: true
            maxContentWidth:
              type: number
              nullable: true
          additionalProperties:
            description: Any JSON value.
            nullable: true
            x-stainless-any: true
          nullable: true
        toneOfVoice:
          type: string
          nullable: true
        personality:
          $ref: '#/components/schemas/BrandPersonalityInput'
        authors:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              role:
                type: string
                nullable: true
              bio:
                type: string
              avatarUrl:
                type: string
                nullable: true
              avatarS3Key:
                type: string
                nullable: true
              email:
                type: string
                nullable: true
              homepage:
                type: string
                nullable: true
              phone:
                type: string
                nullable: true
              tags:
                type: array
                items:
                  type: string
                nullable: true
              badges:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      nullable: true
                    label:
                      type: string
                      nullable: true
                    imageUrl:
                      type: string
                      nullable: true
                    imageS3Key:
                      type: string
                      nullable: true
                    alt:
                      type: string
                      nullable: true
                    width:
                      type: number
                      nullable: true
                    height:
                      type: number
                      nullable: true
                  additionalProperties:
                    description: Any JSON value.
                    nullable: true
                    x-stainless-any: true
                nullable: true
            required:
              - id
              - name
              - bio
            additionalProperties:
              description: Any JSON value.
              nullable: true
              x-stainless-any: true
          nullable: true
        themeMode:
          type: string
          enum:
            - light
            - dark
            - auto
          nullable: true
        components:
          $ref: '#/components/schemas/BrandComponentsInput'
        icons:
          $ref: '#/components/schemas/BrandIconsInput'
        socials:
          $ref: '#/components/schemas/BrandSocialsInput'
        socialStyle:
          $ref: '#/components/schemas/SocialStyleInput'
          nullable: true
        socialSize:
          $ref: '#/components/schemas/SocialSizeInput'
          nullable: true
        salutationFallback:
          type: string
          nullable: true
        footer:
          type: string
          nullable: true
        footerFeatures:
          type: string
          nullable: true
        disclaimers:
          type: string
          nullable: true
        copyright:
          type: string
          nullable: true
        address:
          type: string
          nullable: true
        phone:
          type: string
          nullable: true
        contactEmail:
          type: string
          nullable: true
        extractedAt:
          type: string
          nullable: true
        extractedBy:
          type: string
          nullable: true
        kitName:
          type: string
          nullable: true
        colorArray:
          type: array
          items:
            type: string
          nullable: true
        fontArray:
          type: array
          items:
            type: string
          nullable: true
        _metadata:
          type: object
          properties:
            lastUpdated:
              type: string
            source:
              type: string
              enum:
                - firecrawl
                - manual
          required:
            - lastUpdated
            - source
          additionalProperties:
            description: Any JSON value.
            nullable: true
            x-stainless-any: true
          nullable: true
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: >-
        Complete brand identity data: colors, fonts, logos, social links, UI
        components, legal copy, and extraction metadata
    ErrorResponse:
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/SegmentflowErrorCode'
          description: >-
            Stable machine-readable error code. SDKs map this to typed exception
            classes.
          example: TEMPLATE_NAME_EXISTS
        message:
          type: string
          description: >-
            Human-readable error message. May change between releases; do not
            parse.
          example: Template name 'Hello' already exists in this organization.
        details:
          description: >-
            Optional structured detail. `issues` carries per-field validation
            problems; other keys are reserved.
          type: object
          properties:
            issues:
              type: array
              items:
                $ref: '#/components/schemas/ErrorIssue'
          additionalProperties:
            description: Any JSON value.
            nullable: true
            x-stainless-any: true
      required:
        - errorCode
        - message
      additionalProperties: false
      description: 'Canonical error envelope (ADR-0008): `{ errorCode, message, details? }`.'
    BrandColorsInput:
      type: object
      properties:
        primary:
          type: array
          items:
            type: string
          nullable: true
        secondary:
          type: array
          items:
            type: string
          nullable: true
        accent:
          type: array
          items:
            type: string
          nullable: true
        background:
          type: array
          items:
            type: string
          nullable: true
        text:
          type: array
          items:
            type: string
          nullable: true
        border:
          type: array
          items:
            type: string
          nullable: true
        link:
          type: array
          items:
            type: string
          nullable: true
        success:
          type: array
          items:
            type: string
          nullable: true
        warning:
          type: array
          items:
            type: string
          nullable: true
        error:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: >-
        Categorised color palette: primary, secondary, accent, background, text,
        border, link, success, warning, error
      nullable: true
    BrandTypographyInput:
      type: object
      properties:
        baseUnit:
          type: number
          nullable: true
        borderRadius:
          type: string
          nullable: true
        fontSizes:
          type: object
          additionalProperties:
            type: string
          nullable: true
        fontWeights:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
          nullable: true
        lineHeights:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
          nullable: true
        fontStacks:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          nullable: true
        spacing:
          type: object
          properties:
            padding:
              type: object
              additionalProperties:
                type: number
              nullable: true
            margins:
              type: object
              additionalProperties:
                type: number
              nullable: true
            gridGutter:
              type: number
              nullable: true
          additionalProperties:
            description: Any JSON value.
            nullable: true
            x-stainless-any: true
          nullable: true
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: >-
        Typography specifications: font sizes, weights, line heights, stacks,
        and spacing sub-system
      nullable: true
    BrandImagesInput:
      type: object
      properties:
        logo:
          type: string
          nullable: true
        favicon:
          type: string
          nullable: true
        ogImage:
          type: string
          nullable: true
        additional:
          type: array
          items:
            type: string
          nullable: true
        logoS3Key:
          type: string
          nullable: true
        faviconS3Key:
          type: string
          nullable: true
        ogImageS3Key:
          type: string
          nullable: true
        logoSourceUrl:
          type: string
          nullable: true
        faviconSourceUrl:
          type: string
          nullable: true
        ogImageSourceUrl:
          type: string
          nullable: true
        socialLogos:
          type: object
          additionalProperties:
            type: string
          nullable: true
        logoDimensions:
          type: object
          properties:
            width:
              type: number
            height:
              type: number
          required:
            - width
            - height
          nullable: true
        logoRejection:
          type: object
          properties:
            reason:
              type: string
              enum:
                - too_small
                - too_large
                - bad_aspect_ratio
            measured:
              type: object
              properties:
                width:
                  type: number
                height:
                  type: number
              required:
                - width
                - height
            required:
              type: object
              properties:
                minWidth:
                  type: number
                minHeight:
                  type: number
                maxWidth:
                  type: number
                maxHeight:
                  type: number
                minAspectRatio:
                  type: number
                maxAspectRatio:
                  type: number
              required:
                - minWidth
                - minHeight
                - maxWidth
                - maxHeight
                - minAspectRatio
                - maxAspectRatio
          required:
            - reason
            - measured
            - required
          nullable: true
        faviconRejection:
          type: object
          properties:
            reason:
              type: string
              enum:
                - too_small
                - too_large
                - bad_aspect_ratio
            measured:
              type: object
              properties:
                width:
                  type: number
                height:
                  type: number
              required:
                - width
                - height
            required:
              type: object
              properties:
                minWidth:
                  type: number
                minHeight:
                  type: number
                maxWidth:
                  type: number
                maxHeight:
                  type: number
                minAspectRatio:
                  type: number
                maxAspectRatio:
                  type: number
              required:
                - minWidth
                - minHeight
                - maxWidth
                - maxHeight
                - minAspectRatio
                - maxAspectRatio
          required:
            - reason
            - measured
            - required
          nullable: true
        ogImageRejection:
          type: object
          properties:
            reason:
              type: string
              enum:
                - too_small
                - too_large
                - bad_aspect_ratio
            measured:
              type: object
              properties:
                width:
                  type: number
                height:
                  type: number
              required:
                - width
                - height
            required:
              type: object
              properties:
                minWidth:
                  type: number
                minHeight:
                  type: number
                maxWidth:
                  type: number
                maxHeight:
                  type: number
                minAspectRatio:
                  type: number
                maxAspectRatio:
                  type: number
              required:
                - minWidth
                - minHeight
                - maxWidth
                - maxHeight
                - minAspectRatio
                - maxAspectRatio
          required:
            - reason
            - measured
            - required
          nullable: true
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: >-
        Brand image assets: logo, favicon, ogImage, additional images, S3 keys,
        and social platform logos
      nullable: true
    BrandPersonalityInput:
      type: object
      properties:
        tone:
          type: string
          nullable: true
        traits:
          type: array
          items:
            type: string
          nullable: true
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: 'Brand personality traits: tone of voice and target audience descriptors'
      nullable: true
    BrandComponentsInput:
      type: object
      properties:
        buttonPrimary:
          $ref: '#/components/schemas/ComponentStyleInput'
        buttonSecondary:
          $ref: '#/components/schemas/ComponentStyleInput'
        input:
          $ref: '#/components/schemas/ComponentStyleInput'
        link:
          $ref: '#/components/schemas/ComponentStyleInput'
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: >-
        UI component styles for email CTAs and forms: buttonPrimary,
        buttonSecondary, input, link
      nullable: true
    BrandIconsInput:
      type: object
      properties:
        style:
          type: string
          nullable: true
        primaryColor:
          type: string
          nullable: true
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: 'Icon system information: style (outline/filled) and primary icon color'
      nullable: true
    BrandSocialsInput:
      type: object
      properties:
        twitter:
          type: string
          nullable: true
        facebook:
          type: string
          nullable: true
        linkedin:
          type: string
          nullable: true
        instagram:
          type: string
          nullable: true
        youtube:
          type: string
          nullable: true
        github:
          type: string
          nullable: true
        tiktok:
          type: string
          nullable: true
        pinterest:
          type: string
          nullable: true
        discord:
          type: string
          nullable: true
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: >-
        Social media profile URLs: twitter, facebook, linkedin, instagram,
        youtube, github, tiktok, pinterest, discord
      nullable: true
    SocialStyleInput:
      type: string
      enum:
        - brand-circle
        - mono-light
        - mono-dark
        - outline-mono
        - brand-glyph
      title: Social icon style preset
      description: >-
        Brand-wide preset that drives every social-icon footer in
        recipe-compiled emails. Compiler-only — never authored by the AI agent.
    SocialSizeInput:
      type: string
      enum:
        - sm
        - md
        - lg
      title: Social icon size preset
      description: >-
        Brand-wide size axis (sm / md / lg) that scales every social-icon footer
        in recipe-compiled emails. Compiler-only — never authored by the AI
        agent.
    SegmentflowErrorCode:
      type: string
      enum:
        - BAD_REQUEST
        - UNAUTHORIZED
        - FORBIDDEN
        - NOT_FOUND
        - CONFLICT
        - GONE
        - UNPROCESSABLE_ENTITY
        - TOO_MANY_REQUESTS
        - VALIDATION_ERROR
        - INTERNAL_ERROR
        - NOT_IMPLEMENTED
        - SERVICE_UNAVAILABLE
        - DATABASE_ERROR
        - IDEMPOTENCY_KEY_TOO_LONG
        - IDEMPOTENCY_KEY_REUSED
        - IDEMPOTENCY_IN_FLIGHT
        - JOURNEY_NOT_FOUND
        - JOURNEY_WRONG_ENTRY_NODE
        - JOURNEY_MISSING_RECIPIENT_EMAIL
        - JOURNEY_MISSING_REQUIRED_VARIABLES
        - JOURNEY_RECIPIENT_ERASED
        - JOURNEY_RUN_NOT_FOUND
        - BROADCAST_NOT_FOUND
        - BROADCAST_SCHEDULING_NOT_IMPLEMENTED
        - BROADCAST_INVALID_STATE
        - BROADCAST_SEND_NOT_ALLOWED
        - PREPARED_SEND_NOT_FOUND
        - PREPARED_SEND_EXPIRED
        - PREPARED_SEND_CROSS_USER
        - PREPARED_SEND_CORRUPT
        - PREPARED_SEND_CONCURRENT_REDEEM
        - PREPARED_SEND_VALIDATION_FAILED
        - TEMPLATE_NOT_FOUND
        - TEMPLATE_NAME_EXISTS
        - PROFILE_NOT_FOUND
        - PROFILE_SUBSCRIPTION_GROUP_NOT_FOUND
        - PROFILE_TRAITS_WRITE_UNSUPPORTED
        - MISSING_CREDENTIAL
        - INVALID_API_KEY
        - INVALID_OAUTH_TOKEN
        - AMBIGUOUS_CREDENTIAL
        - INSUFFICIENT_SCOPE
        - MULTIPLE_CREDENTIALS_PRESENT
        - BEARER_CREDENTIAL_REMOVED
        - SESSION_ROLE_INSUFFICIENT
        - API_KEY_SCOPE_INSUFFICIENT
        - BILLING_DISABLED
        - BILLING_NOT_CONFIGURED
      description: >-
        Stable machine-readable error code. SDK codegen maps these to typed
        exception classes.
    ErrorIssue:
      type: object
      properties:
        path:
          anyOf:
            - type: string
            - type: array
              items:
                anyOf:
                  - type: string
                  - type: number
          description: >-
            Where in the request the issue occurred. String for simple paths;
            array for nested paths.
          example: name
        code:
          type: string
          description: >-
            Stable, machine-readable kind of issue (e.g. 'required',
            'invalid_type').
          example: duplicate
        message:
          type: string
          description: Human-readable description of the issue.
          example: Template name already exists in this organization.
      required:
        - path
        - code
        - message
      additionalProperties: false
      description: A single validation issue inside an error response's `details.issues[]`.
    ComponentStyleInput:
      type: object
      properties:
        background:
          type: string
          nullable: true
        textColor:
          type: string
          nullable: true
        borderColor:
          type: string
          nullable: true
        focusBorderColor:
          type: string
          nullable: true
        borderRadius:
          type: string
          nullable: true
        fontWeight:
          type: string
          nullable: true
        padding:
          type: string
          nullable: true
      additionalProperties:
        description: Any JSON value.
        nullable: true
        x-stainless-any: true
      description: >-
        Styling for a single UI element (button, input, link) extracted from
        brand website
      nullable: true
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Unified API key for server-side SDK and API integrations

````