> ## 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.

# Search Brands

> Search brands by name, aliases, or domain patterns.

Uses MongoDB Atlas Search with fuzzy matching and autocomplete.



## OpenAPI

````yaml /openapi/merchantops-public.json get /api/brands/search
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/search:
    get:
      tags:
        - Brands
      summary: Search Brands
      description: |-
        Search brands by name, aliases, or domain patterns.

        Uses MongoDB Atlas Search with fuzzy matching and autocomplete.
      operationId: search_brands
      parameters:
        - description: Search query
          in: query
          name: q
          required: true
          schema:
            description: Search query
            minLength: 1
            title: Q
            type: string
        - description: Max results
          in: query
          name: limit
          required: false
          schema:
            default: 10
            description: Max results
            maximum: 50
            minimum: 1
            title: Limit
            type: integer
        - description: Only search verified brands
          in: query
          name: verified_only
          required: false
          schema:
            default: false
            description: Only search verified brands
            title: Verified Only
            type: boolean
        - 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
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandSearchResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
components:
  schemas:
    BrandSearchResponse:
      description: Response model for search results.
      properties:
        items:
          description: Search results
          items:
            $ref: '#/components/schemas/BrandResponse'
          title: Items
          type: array
        query:
          description: Search query
          title: Query
          type: string
        total:
          description: Number of results
          title: Total
          type: integer
      required:
        - query
        - total
        - items
      title: BrandSearchResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      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
    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
    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

````