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

# Brand Ownership of Each Theme

> Shows which brands dominate each perception theme (cluster), revealing market le
                   adership in specific attributes.

For each theme, this endpoint shows what percentage each brand owns. For example,
in the 'Comfortable' cluster: Nike 30%, Puma 45%, Adidas 25%. This identifies which brands own which themes in consumers' minds. Perfect for finding category leaders in specific attributes or identifying white space opportunities.

**When to use:** User wants to find which brand leads in a specific attribute, identify competitive positioning by theme, discover market gaps in certain perceptions, or understand brand ownership of key themes.

**Common user queries:**
- "Which brand is strongest in comfort?"
- "Who owns the 'affordable' perception?"
- "Show me brand leadership by theme"
- "Which brands dominate the quality perception?"
- "Compare brand positions on style"
- "Who are the leaders in each cluster?"

**Returns:** Object with cluster names containing brand ownership percentages.
Example: {"Comfortable": {"Nike": "0.30", "Adidas": "0.25", "Puma": "0.45"}, "Sporty": {"Nike": "0.20",
"Adidas": "0.16", "Puma": "0.64"}}

Required permission: `read:analysis`.



## OpenAPI

````yaml https://openapi.shareofmodel.ai/swagger.json get /v1/organizations/{organization_id}/workspaces/{workspace_id}/analyses/{analysis_id}/metrics/brand_perception/brand_share_by_cluster
openapi: 3.0.3
info:
  title: Share Of Model API
  version: v1
  description: >-
    ## Model Context Protocol (MCP)


    In addition to this REST API, Share of Model exposes a **Model Context
    Protocol** server that lets AI assistants (Claude Desktop, Claude Code, MCP
    Inspector, custom agents…) call our endpoints directly as tools. Any
    MCP-compatible client can interact with Share of Model without writing
    custom integration code — connect once with your usual login and start
    asking the assistant to query the data for you.


    ### Connecting from Claude Desktop


    Open **Settings → Connectors**, scroll to the bottom and click **Add custom
    connector**, then paste `https://mcp.shareofmodel.ai/mcp/`. A browser window
    opens for you to log in with your Share of Model account (same login as the
    web app), and the assistant gains access to the tools.


    ### Connecting from Claude Code


    ```bash

    claude mcp add --transport http share-of-model
    https://mcp.shareofmodel.ai/mcp/

    ```


    The first time you call a tool, Claude Code opens your browser to complete
    the login.


    ### Connecting from MCP Inspector


    ```bash

    npx @modelcontextprotocol/inspector

    ```


    In the Inspector UI, pick **Streamable HTTP** as transport, paste
    `https://mcp.shareofmodel.ai/mcp/`, and click **Connect**. The first
    connection prompts you to log in.


    ### Available tools


    Only endpoints tagged `mcp` in this OpenAPI spec are exposed as MCP tools,
    and only read-only (`GET`) routes are exposed. Everything tagged `mcp` below
    is callable from any compliant MCP client.


    ### Example prompts


    Once connected, try asking your assistant things like:


    - _"List the workspaces I have access to."_

    - _"Show me the latest searches in workspace X."_

    - _"Compare the share of model between brand A and brand B over the last 30
    days."_


    For more details on the protocol itself, see the [Model Context Protocol
    specification](https://modelcontextprotocol.io/).
servers:
  - description: Production API
    url: https://api.shareofmodel.ai/
  - description: Development API
    url: https://api.dev.shareofmodel.ai/
security: []
tags:
  - name: Auth
    description: Endpoints needed for API authentication.
  - name: Organizations
    description: Endpoints related to organizations, to list all available organizations.
  - name: Workspaces
    description: Endpoints related to workspaces, to list all available workspaces.
  - name: Analyses
    description: Endpoints related to analyses and analyses management.
  - name: Asset Evaluations
    description: Endpoints related to assets and asset evaluations.
  - name: Brand Catalog
    description: Endpoints related to general brand information.
  - name: Content Briefs
    description: Endpoints related to content briefs generation and optimisation.
  - name: Metrics
    description: >+
      Endpoints related to brand metrics.


      **LEXICON**



      **Brand Awareness**: What opinion the LLMs have concerning specific
      brands, related to certain categories.



      **Brand Perception**: The general sentiment of the LLMs towards a brand,

      based on the pros and cons they mention.

paths:
  /v1/organizations/{organization_id}/workspaces/{workspace_id}/analyses/{analysis_id}/metrics/brand_perception/brand_share_by_cluster:
    get:
      tags:
        - Metrics
      summary: Brand Ownership of Each Theme
      description: >-
        Shows which brands dominate each perception theme (cluster), revealing
        market le
                           adership in specific attributes.

        For each theme, this endpoint shows what percentage each brand owns. For
        example,

        in the 'Comfortable' cluster: Nike 30%, Puma 45%, Adidas 25%. This
        identifies which brands own which themes in consumers' minds. Perfect
        for finding category leaders in specific attributes or identifying white
        space opportunities.


        **When to use:** User wants to find which brand leads in a specific
        attribute, identify competitive positioning by theme, discover market
        gaps in certain perceptions, or understand brand ownership of key
        themes.


        **Common user queries:**

        - "Which brand is strongest in comfort?"

        - "Who owns the 'affordable' perception?"

        - "Show me brand leadership by theme"

        - "Which brands dominate the quality perception?"

        - "Compare brand positions on style"

        - "Who are the leaders in each cluster?"


        **Returns:** Object with cluster names containing brand ownership
        percentages.

        Example: {"Comfortable": {"Nike": "0.30", "Adidas": "0.25", "Puma":
        "0.45"}, "Sporty": {"Nike": "0.20",

        "Adidas": "0.16", "Puma": "0.64"}}


        Required permission: `read:analysis`.
      operationId: brand_share_by_cluster
      parameters:
        - in: path
          name: analysis_id
          schema:
            type: string
            format: uuid
          description: A UUID string identifying the analysis.
          required: true
        - in: query
          name: cluster_group
          schema:
            type: string
            enum:
              - all_cons
              - all_pros
          description: Filter by one specific cluster group.
          required: true
        - in: query
          name: collection_date
          schema:
            type: string
            format: date
          description: >-
            Filter by a collection date being equal to the specified date.
            YYYY-MM-DD format
        - in: query
          name: collection_date__gt
          schema:
            type: string
            format: date
          description: >-
            Filter by a collection date being greater than the specified date.
            YYYY-MM-DD format
        - in: query
          name: collection_date__gte
          schema:
            type: string
            format: date
          description: >-
            Filter by a collection date being greater than or equal the
            specified date. YYYY-MM-DD format
        - in: query
          name: collection_date__lt
          schema:
            type: string
            format: date
          description: >-
            Filter by a collection date being less than the specified date.
            YYYY-MM-DD format
        - in: query
          name: collection_date__lte
          schema:
            type: string
            format: date
          description: >-
            Filter by a collection date being less than or equal the specified
            date. YYYY-MM-DD format
        - in: query
          name: country
          schema:
            type: string
          description: Filter by one specific country.
        - in: query
          name: country__in
          schema:
            type: string
          description: >-
            Filter by a list of countries. Values should be comma separated,
            without brackets or spaces
        - in: query
          name: format
          schema:
            type: string
            enum:
              - csv
              - json
        - in: path
          name: organization_id
          schema:
            type: string
            format: uuid
          description: A UUID string identifying the organization.
          required: true
        - in: query
          name: persona
          schema:
            type: string
          description: Filter by one specific persona.
        - in: query
          name: persona__in
          schema:
            type: string
          description: >-
            Filter by a list of personas. Values should be comma separated,
            without brackets or spaces
        - in: query
          name: source
          schema:
            type: string
            enum:
              - claude-3-5-sonnet
              - claude-4-5-sonnet
              - claude-4-6-sonnet
              - claude-4-sonnet
              - deepseek-chat
              - deepseek-reasoner
              - deepseek-v3.2-maas
              - gemini-1.5-pro
              - gemini-2.0-flash
              - gemini-2.5-flash
              - gemini-2.5-flash-grounded
              - gemini-2.5-flash-lite
              - gemini-3-flash-preview
              - google-ai-mode
              - gpt-3.5-turbo
              - gpt-4-turbo
              - gpt-4o
              - gpt-4o-mini-search
              - gpt-5
              - gpt-5.2
              - gpt-5.4-mini
              - meta-llama-3.1-70B-instruct-turbo
              - meta-llama-3.2-70B-instruct-turbo
              - meta-llama-3.3-70B-instruct-turbo
              - meta-llama-4-maverick
              - mistral-7B-instruct
              - perplexity-sonar
              - rufus
          description: Filter by one specific source.
        - in: query
          name: source__in
          schema:
            type: string
            enum:
              - claude-3-5-sonnet
              - claude-4-5-sonnet
              - claude-4-6-sonnet
              - claude-4-sonnet
              - deepseek-chat
              - deepseek-reasoner
              - deepseek-v3.2-maas
              - gemini-1.5-pro
              - gemini-2.0-flash
              - gemini-2.5-flash
              - gemini-2.5-flash-grounded
              - gemini-2.5-flash-lite
              - gemini-3-flash-preview
              - google-ai-mode
              - gpt-3.5-turbo
              - gpt-4-turbo
              - gpt-4o
              - gpt-4o-mini-search
              - gpt-5
              - gpt-5.2
              - gpt-5.4-mini
              - meta-llama-3.1-70B-instruct-turbo
              - meta-llama-3.2-70B-instruct-turbo
              - meta-llama-3.3-70B-instruct-turbo
              - meta-llama-4-maverick
              - mistral-7B-instruct
              - perplexity-sonar
              - rufus
          description: >-
            Filter by a list of sources. Values should be comma separated,
            without brackets or spaces
        - in: query
          name: translate_to_en
          schema:
            type: boolean
          description: >-
            If true, translates clusters and attributes to English. Defaults to
            false.
        - in: path
          name: workspace_id
          schema:
            type: string
            format: uuid
          description: A UUID string identifying the workspace.
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                description: Cluster name
                additionalProperties:
                  type: object
                  description: Brand name
                  additionalProperties:
                    type: string
                    format: decimal
                    description: Share of the brand for the cluster
              examples:
                ResponseExample:
                  value:
                    Comfortable:
                      Nike: '0.30'
                      Adidas: '0.2500'
                      Puma: '0.4500'
                    Sporty:
                      Nike: '0.20'
                      Adidas: '0.1550'
                      Puma: '0.6450'
                  summary: Response example
            text/csv:
              schema:
                type: object
                description: Cluster name
                additionalProperties:
                  type: object
                  description: Brand name
                  additionalProperties:
                    type: string
                    format: decimal
                    description: Share of the brand for the cluster
              examples:
                ResponseExample:
                  value:
                    Comfortable:
                      Nike: '0.30'
                      Adidas: '0.2500'
                      Puma: '0.4500'
                    Sporty:
                      Nike: '0.20'
                      Adidas: '0.1550'
                      Puma: '0.6450'
                  summary: Response example
          description: ''
      security:
        - Bearer: []
components:
  securitySchemes:
    Bearer:
      type: apiKey
      in: header
      name: Authorization

````