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

# Get Visibility Overview

> The state-of-play answer for a Site: the latest Scan’s brand and competitor metrics with per-metric change against the previous Scan. Filter by platform, region, or date.



## OpenAPI

````yaml /openapi/public-api-v1.json get /v1/sites/{siteId}/reports/overview
openapi: 3.0.0
info:
  title: Onsomble API
  description: >-
    Connect Onsomble to your reporting and operational workflows. Read
    discoverability results or start a Scan from another system.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.onsomble.ai
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: Sites
    description: Sites connected to your account.
  - name: Clients
    description: Clients managed by agency accounts.
  - name: Scans
    description: Scan history, status, and controls.
  - name: Reports
    description: AI discoverability results.
paths:
  /v1/sites/{siteId}/reports/overview:
    get:
      tags:
        - Reports
      summary: Get Visibility Overview
      description: >-
        The state-of-play answer for a Site: the latest Scan’s brand and
        competitor metrics with per-metric change against the previous Scan.
        Filter by platform, region, or date.
      operationId: getOverview
      parameters:
        - name: siteId
          required: true
          in: path
          schema:
            type: string
        - name: promptId
          required: false
          in: query
          description: Repeat to limit to these prompts (promptIds).
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: tag
          required: false
          in: query
          description: Repeat to limit to prompts with these tags.
          schema:
            example:
              - pricing
            type: array
            items:
              type: string
        - name: category
          required: false
          in: query
          description: Repeat to limit to prompts in these categories.
          schema:
            example:
              - comparison
            type: array
            items:
              type: string
        - name: product
          required: false
          in: query
          description: Repeat to limit to prompts about these products.
          schema:
            example:
              - Car Insurance
            type: array
            items:
              type: string
        - name: persona
          required: false
          in: query
          description: Repeat to limit to prompts targeting these personas.
          schema:
            example:
              - Landlords
            type: array
            items:
              type: string
        - name: stage
          required: false
          in: query
          description: Repeat to limit to prompts in these journey stages.
          schema:
            example:
              - Decision
            type: array
            items:
              type: string
        - name: brandMention
          required: false
          in: query
          description: Limit to prompts that do, or do not, mention the tracked brand.
          schema:
            type: string
            enum:
              - mentions_tracked_brand
              - does_not_mention_tracked_brand
        - name: platform
          required: false
          in: query
          description: Repeat to select AI platforms. Omit for every platform.
          schema:
            type: array
            items:
              type: string
              enum:
                - claude_api
                - chatgpt_api
                - gemini_api
                - perplexity_sonar_pro
                - chatgpt_app
                - gemini_app
                - google_ai_summaries_app
                - google_ai_mode_app
                - microsoft_copilot_app
                - perplexity_app
        - name: region
          required: false
          in: query
          description: Repeat to select region codes. Omit for all regions.
          schema:
            example:
              - NZ:auckland
            type: array
            items:
              type: string
        - name: brand
          required: false
          in: query
          description: >-
            Repeat to limit which brands are returned (brand identity ids). Does
            not change Share of Voice denominators.
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: competitorId
          required: false
          in: query
          description: >-
            Repeat to limit to these tracked competitors (competitorId from the
            competitors catalogue). Combines with brand. A discovered competitor
            is refused until it is tracked.
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: startDate
          required: false
          in: query
          description: >-
            Inclusive lower bound, as a UTC calendar day (YYYY-MM-DD). Omit for
            none.
          schema:
            example: '2026-07-01'
            type: string
        - name: endDate
          required: false
          in: query
          description: >-
            Inclusive upper bound, as a UTC calendar day (YYYY-MM-DD). Omit for
            none.
          schema:
            example: '2026-07-31'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OverviewReportResponseDto'
        '404':
          description: Site not found.
components:
  schemas:
    OverviewReportResponseDto:
      type: object
      properties:
        data:
          nullable: true
          description: Null when no completed Scans match the filters.
          type: object
          allOf:
            - $ref: '#/components/schemas/OverviewReportDataDto'
        filters:
          $ref: '#/components/schemas/AppliedReportFiltersDto'
      required:
        - data
        - filters
    OverviewReportDataDto:
      type: object
      properties:
        scanId:
          type: string
          format: uuid
          description: The latest Scan in scope.
        date:
          type: string
          example: '2026-07-31'
          description: >-
            The UTC calendar day of the Scan. Use `completedAt` for the exact
            time, to show the day in your user's time zone.
        completedAt:
          type: string
          nullable: true
          format: date-time
          example: '2026-07-31T09:42:00.000Z'
          description: >-
            When the Scan finished, as an ISO 8601 UTC timestamp. Format it in
            your user's time zone to show the day. Null when not known.
        previousScanId:
          type: string
          format: uuid
          nullable: true
          description: The Scan the deltas compare against, when one exists.
        previousDate:
          type: string
          nullable: true
          example: '2026-07-24'
          description: >-
            The UTC calendar day of the previous Scan. Use `previousCompletedAt`
            for the exact time, to show the day in your user's time zone.
        previousCompletedAt:
          type: string
          nullable: true
          format: date-time
          example: '2026-07-24T09:42:00.000Z'
          description: >-
            When the previous Scan finished, as an ISO 8601 UTC timestamp. Null
            when there is no previous Scan.
        brand:
          nullable: true
          description: >-
            The tracked brand. Null when the latest Scan produced no brand
            metrics.
          type: object
          allOf:
            - $ref: '#/components/schemas/OverviewBrandDto'
        competitors:
          description: Tracked competitors, highest visibility first.
          type: array
          items:
            $ref: '#/components/schemas/OverviewBrandDto'
      required:
        - scanId
        - date
        - previousScanId
        - previousDate
        - brand
        - competitors
    AppliedReportFiltersDto:
      type: object
      properties:
        platform:
          example:
            - chatgpt_app
            - chatgpt_api
          description: Platform IDs applied to the report. Empty means all.
          type: array
          items:
            type: string
        region:
          example:
            - NZ
            - AU
          description: Region codes applied to the report. Empty means all.
          type: array
          items:
            type: string
        startDate:
          type: string
          nullable: true
          example: '2026-07-01'
          description: UTC calendar day.
        endDate:
          type: string
          nullable: true
          example: '2026-07-31'
          description: UTC calendar day.
      required:
        - platform
        - region
        - startDate
        - endDate
    OverviewBrandDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          example: Acme
        type:
          type: string
          enum:
            - brand
            - competitor
          example: brand
        visibility:
          type: number
          example: 62.5
          description: Visibility percentage.
        shareOfVoice:
          type: number
          example: 41.2
          description: Share of Voice percentage.
        sentiment:
          type: object
          example: 62
          nullable: true
          description: >-
            Average sentiment on a 0 to 100 scale (50 = neutral; runs finalized
            before the claims cutover used -100 to 100). Null when the brand has
            no sentiment evidence.
        gap:
          type: number
          example: 37.5
          description: Remaining visibility opportunity; lower is better.
        health:
          type: number
          example: 43
          description: Composite health score.
        deltas:
          nullable: true
          description: >-
            Change versus the previous Scan in scope. Null when there is no
            previous Scan or the brand was absent from it.
          type: object
          allOf:
            - $ref: '#/components/schemas/OverviewMetricDeltasDto'
      required:
        - id
        - name
        - type
        - visibility
        - shareOfVoice
        - sentiment
        - gap
        - health
        - deltas
    OverviewMetricDeltasDto:
      type: object
      properties:
        visibility:
          type: number
          example: 4.5
          description: Visibility change in points.
        shareOfVoice:
          type: number
          example: -2.1
          description: Share of Voice change in points.
        sentiment:
          type: object
          example: 3
          nullable: true
          description: >-
            Sentiment change in points. Null when either Scan lacks sentiment
            evidence for the brand.
        gap:
          type: number
          example: -4.5
          description: Gap change in points.
        health:
          type: number
          example: 2
          description: Health change in points.
      required:
        - visibility
        - shareOfVoice
        - sentiment
        - gap
        - health
  securitySchemes:
    apiKeyAuth:
      scheme: bearer
      bearerFormat: ons_…
      type: http
      description: An API key created in Settings → Account → API Keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.