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

# Create Brand

> Create a new brand manually.

The brand key will be auto-generated from the name.



## OpenAPI

````yaml /openapi/merchantops-public.json post /api/brands/
openapi: 3.1.0
info:
  description: >-
    Public API for the MerchantOps product catalog, pricing, and publishing
    surface.
  title: MerchantOps API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.merchantops.ai
security: []
paths:
  /api/brands/:
    post:
      tags:
        - Brands
      summary: Create Brand
      description: |-
        Create a new brand manually.

        The brand key will be auto-generated from the name.
      operationId: create_brand
      parameters:
        - in: header
          name: authorization
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
        - in: header
          name: X-Organization-ID
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Organization-Id
        - in: cookie
          name: stytch_session
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Stytch Session
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
components:
  schemas:
    BrandCreateRequest:
      description: Request model for creating a Brand.
      properties:
        aliases:
          description: Alternative names
          items:
            type: string
          title: Aliases
          type: array
        domain_patterns:
          description: Domain patterns
          items:
            type: string
          title: Domain Patterns
          type: array
        logo_url:
          anyOf:
            - type: string
            - type: 'null'
          description: Brand logo URL
          title: Logo Url
        name:
          description: Official brand name
          title: Name
          type: string
        source:
          anyOf:
            - type: string
            - type: 'null'
          description: Source (e.g., 'manual', 'import')
          title: Source
        urls:
          description: Country-specific URLs
          items:
            additionalProperties:
              type: string
            type: object
          title: Urls
          type: array
      required:
        - name
      title: BrandCreateRequest
      type: object
    BrandResponse:
      description: Response model for a single Brand.
      properties:
        aliases:
          description: Alternative names
          items:
            type: string
          title: Aliases
          type: array
        createdAt:
          anyOf:
            - type: string
            - type: 'null'
          description: Creation timestamp
          title: Createdat
        createdBy:
          anyOf:
            - type: string
            - type: 'null'
          description: User who created this
          title: Createdby
        domain_patterns:
          description: Domain patterns for matching
          items:
            type: string
          title: Domain Patterns
          type: array
        id:
          description: MongoDB ObjectId as string
          title: Id
          type: string
        is_verified:
          default: false
          description: Whether brand is verified
          title: Is Verified
          type: boolean
        key:
          description: Normalized brand key
          title: Key
          type: string
        lastModifiedAt:
          anyOf:
            - type: string
            - type: 'null'
          description: Last modification timestamp
          title: Lastmodifiedat
        lastModifiedBy:
          anyOf:
            - type: string
            - type: 'null'
          description: User who last modified this
          title: Lastmodifiedby
        llm_inferred_url:
          anyOf:
            - type: string
            - type: 'null'
          description: URL from LLM inference
          title: Llm Inferred Url
        logo_url:
          anyOf:
            - type: string
            - type: 'null'
          description: Brand logo URL
          title: Logo Url
        name:
          description: Official brand name
          title: Name
          type: string
        scrape_consecutive_failures:
          default: 0
          description: Failures since last success
          title: Scrape Consecutive Failures
          type: integer
        scrape_disabled_until:
          anyOf:
            - type: string
            - type: 'null'
          description: Cooldown end when mode=disabled
          title: Scrape Disabled Until
        scrape_last_failure_at:
          anyOf:
            - type: string
            - type: 'null'
          description: Most recent failure timestamp
          title: Scrape Last Failure At
        scrape_last_failure_reason:
          anyOf:
            - type: string
            - type: 'null'
          description: Reason for most recent failure
          title: Scrape Last Failure Reason
        scrape_mode:
          default: auto
          description: auto | enhanced | disabled
          title: Scrape Mode
          type: string
        scrape_mode_set_at:
          anyOf:
            - type: string
            - type: 'null'
          description: When scrape_mode last changed
          title: Scrape Mode Set At
        scrape_mode_set_by:
          anyOf:
            - type: string
            - type: 'null'
          description: Who last changed scrape_mode
          title: Scrape Mode Set By
        source:
          anyOf:
            - type: string
            - type: 'null'
          description: How brand was added
          title: Source
        url_needs_review:
          default: false
          description: Whether URLs need review
          title: Url Needs Review
          type: boolean
        urls:
          description: Country-specific URLs
          items:
            $ref: '#/components/schemas/BrandURLResponse'
          title: Urls
          type: array
        web_search_url:
          anyOf:
            - type: string
            - type: 'null'
          description: URL from web search
          title: Web Search Url
      required:
        - id
        - key
        - name
      title: BrandResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    BrandURLResponse:
      description: Response model for a brand URL.
      properties:
        country:
          description: ISO 2-letter country code
          title: Country
          type: string
        url:
          description: Brand website URL
          title: Url
          type: string
      required:
        - country
        - url
      title: BrandURLResponse
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object

````