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

# Get the latest suggestion for a campaign optimization

> 
Retrieve the latest suggestion for a specific campaign optimization.
Required permission: `read:analysis`.

The response format depends on the Accept header.
Supported formats: JSON (default), CSV (Google Ads only), XLSX (TikTok only).

**Suggestion Item Structure (Google Ads — `optimization_suggestions.asset_groups.<id>[]`)**

Each suggestion item in the array contains:
```json
{
  "keyword": "running shoes for beginners",
  "suggestion": "add",
  "keyword_en": "running shoes for beginners",
  "relevancy_score": 85,
  "strength": "very_strong",
  "currently_used_in": 2
}
```
Fields:
- `keyword` (string): The search theme text in the campaign
  language.
- `suggestion` (string): Action — `add`, `keep`, or `remove`.
- `keyword_en` (string, optional): English translation. Only
  present when `translate_to_en=true` and language is not English.
- `relevancy_score` (int, 0–100): Semantic similarity between
  the keyword and the asset group. Computed via embedding distance.
- `strength` (string): Label derived from the relevancy score —
  `very_strong` (80–100), `strong` (60–79), `average` (40–59),
  `weak` (20–39), `very_weak` (0–19).
- `currently_used_in` (int, ≥1): Number of asset groups **within
  this optimization** that include the same keyword. Represents
  overlap across the selected asset group set, not live Google
  Ads usage.

**Note:** `relevancy_score`, `strength`, and `currently_used_in`
are only present for Google Ads suggestions. TikTok suggestions
do not include these fields.




## OpenAPI

````yaml https://openapi.shareofmodel.ai/swagger.json get /v1/organizations/{organization_id}/workspaces/{workspace_id}/campaign_optimizations/{campaign_optimization_id}/suggestions
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}/campaign_optimizations/{campaign_optimization_id}/suggestions:
    get:
      tags:
        - Campaign Optimizations
      summary: Get the latest suggestion for a campaign optimization
      description: >

        Retrieve the latest suggestion for a specific campaign optimization.

        Required permission: `read:analysis`.


        The response format depends on the Accept header.

        Supported formats: JSON (default), CSV (Google Ads only), XLSX (TikTok
        only).


        **Suggestion Item Structure (Google Ads —
        `optimization_suggestions.asset_groups.<id>[]`)**


        Each suggestion item in the array contains:

        ```json

        {
          "keyword": "running shoes for beginners",
          "suggestion": "add",
          "keyword_en": "running shoes for beginners",
          "relevancy_score": 85,
          "strength": "very_strong",
          "currently_used_in": 2
        }

        ```

        Fields:

        - `keyword` (string): The search theme text in the campaign
          language.
        - `suggestion` (string): Action — `add`, `keep`, or `remove`.

        - `keyword_en` (string, optional): English translation. Only
          present when `translate_to_en=true` and language is not English.
        - `relevancy_score` (int, 0–100): Semantic similarity between
          the keyword and the asset group. Computed via embedding distance.
        - `strength` (string): Label derived from the relevancy score —
          `very_strong` (80–100), `strong` (60–79), `average` (40–59),
          `weak` (20–39), `very_weak` (0–19).
        - `currently_used_in` (int, ≥1): Number of asset groups **within
          this optimization** that include the same keyword. Represents
          overlap across the selected asset group set, not live Google
          Ads usage.

        **Note:** `relevancy_score`, `strength`, and `currently_used_in`

        are only present for Google Ads suggestions. TikTok suggestions

        do not include these fields.
      operationId: get_suggestions
      parameters:
        - in: header
          name: Accept
          schema:
            type: string
          description: >-
            Content type for the response. Possible values: 'application/json'
            (default, returns JSON with suggestion data), 'text/csv' (returns
            CSV file, Google Ads only),
            'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
            (returns XLSX file, TikTok only).
        - in: path
          name: campaign_optimization_id
          schema:
            type: string
          required: true
        - in: query
          name: format
          schema:
            type: string
            enum:
              - csv
              - json
              - xlsx
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          description: A UUID string identifying the campaign optimization.
          required: true
        - in: path
          name: organization_id
          schema:
            type: string
          required: true
        - in: query
          name: translate_to_en
          schema:
            type: boolean
            default: false
          description: >-
            If true and campaign language is not English,  translates keywords
            to English and adds keyword_en field. Only applies to JSON
            responses.
        - in: path
          name: workspace_id
          schema:
            type: string
            format: uuid
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CampaignOptimizationWithSuggestion'
            text/csv:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CampaignOptimizationWithSuggestion'
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CampaignOptimizationWithSuggestion'
          description: >-
            Details of the latest suggestion. Content type depends on Accept
            header: JSON (application/json), CSV (text/csv, Google Ads only), or
            XLSX
            (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
            TikTok only).
        '400':
          description: >-
            Bad request. Returned when: CSV is requested for TikTok platform,
            XLSX is requested for Google Ads platform, or the Accept header
            cannot be satisfied.
        '404':
          description: Campaign Optimization or suggestion not found.
      security:
        - Bearer: []
components:
  schemas:
    CampaignOptimizationWithSuggestion:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        suggestion:
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
          title: Created
        workspace_id:
          type: string
          format: uuid
        platform_integration_id:
          type: string
          format: uuid
        status:
          enum:
            - pending
            - in_progress
            - completed
            - failed
            - suggestions_applied
          type: string
          description: |-
            * `pending` - pending
            * `in_progress` - in progress
            * `completed` - completed
            * `failed` - failed
            * `suggestions_applied` - suggestions applied
          x-spec-enum-id: eae3ee0747a684c4
        platform:
          enum:
            - google_ads
            - tiktok
          type: string
          description: |-
            * `google_ads` - google ads
            * `tiktok` - tiktok
          x-spec-enum-id: 56e9e914e95b1bf9
        campaign: {}
        language:
          enum:
            - ar
            - da
            - de
            - en
            - es
            - eu
            - fi
            - fil
            - fr
            - he
            - hi
            - hu
            - id
            - it
            - ja
            - ko
            - nl
            - pl
            - pt
            - ro
            - sv
            - th
            - tr
            - ur
            - vi
            - zh
            - zh-TW
            - ''
          type: string
          description: |-
            * `ar` - ar
            * `da` - da
            * `de` - de
            * `en` - en
            * `es` - es
            * `eu` - eu
            * `fi` - fi
            * `fil` - fil
            * `fr` - fr
            * `he` - he
            * `hi` - hi
            * `hu` - hu
            * `id` - id
            * `it` - it
            * `ja` - ja
            * `ko` - ko
            * `nl` - nl
            * `pl` - pl
            * `pt` - pt
            * `ro` - ro
            * `sv` - sv
            * `th` - th
            * `tr` - tr
            * `ur` - ur
            * `vi` - vi
            * `zh` - zh
            * `zh-TW` - zh TW
          x-spec-enum-id: eb433b6ba098186f
        name:
          type: string
          maxLength: 255
        analysis:
          type: string
          format: uuid
      required:
        - analysis
        - campaign
        - created_at
        - id
        - name
        - platform
        - platform_integration_id
        - suggestion
        - workspace_id
  securitySchemes:
    Bearer:
      type: apiKey
      in: header
      name: Authorization

````