---
title: "Visibility scores for the latest usable or selected run"
method: GET
path: "/visibility"
tags: ["Metrics"]
---

# Visibility scores for the latest usable or selected run

`GET /visibility`

Default returns an array of `VisibilityScore` (one per brand). Pass runId to read a specific completed run. Use `type=topics` for a per-topic summary, `type=attributes&topicId=…` for a per-attribute breakdown, or `topicId=…` alone for a single topic's scores.

## Query parameters

- `projectId` string, uuid, required
- `runId` string, uuid
- `topicId` string, uuid
- `type` 'overview' | 'topics' | 'attributes'
- `promptAttributes` string

## Response `200`

One of: array of VisibilityScore, array of TopicVisibilitySummary, TopicVisibility, or array of AttributeBreakdown depending on `type`.

- union
  - VisibilityScore[]
    - `brandId` string, uuid, required
    - `brandName` string, required
    - `isOwn` boolean, required
    - `overall` number, required — Mention rate as a percentage (0–100).
    - `byPlatform` object, required — Per-platform mention rate, keyed by platform id.
    - `avgPosition` number, required
    - `mentionCount` integer, required
    - `totalPlatformResponses` integer, required
    - `dominantSentiment` 'positive' | 'neutral' | 'negative', required
    - `sentimentBreakdown` object, required
      - `positive` integer, required
      - `neutral` integer, required
      - `negative` integer, required
  - TopicVisibilitySummary[]
    - `topicId` string, uuid, required
    - `topicName` string, required
    - `ownVisibility` number, required
    - `topCompetitor` string, required
    - `topCompetitorVisibility` number, required
  - TopicVisibility
    - `topicId` string, uuid, required
    - `topicName` string, required
    - `scores` VisibilityScore[], required
      - `brandId` string, uuid, required
      - `brandName` string, required
      - `isOwn` boolean, required
      - `overall` number, required — Mention rate as a percentage (0–100).
      - `byPlatform` object, required — Per-platform mention rate, keyed by platform id.
      - `avgPosition` number, required
      - `mentionCount` integer, required
      - `totalPlatformResponses` integer, required
      - `dominantSentiment` 'positive' | 'neutral' | 'negative', required
      - `sentimentBreakdown` object, required
        - `positive` integer, required
        - `neutral` integer, required
        - `negative` integer, required
  - AttributeBreakdown[]
    - `attributeName` string, required
    - `scores` object[], required
      - `brandId` string, uuid, required
      - `brandName` string, required
      - `isOwn` boolean, required
      - `avgSentiment` number, required
      - `byPlatform` object, required
      - `count` integer, required
      - `contexts` object[], required
        - `platform` string, required
        - `context` string, required

## Other responses

- `400` — Missing or invalid request parameter.
- `401` — Missing, malformed, or revoked API key.
- `402` — Monthly included API calls for your tier are used up (code `USAGE_LIMIT`). Body includes a `limit` object — `{ limitHit, currentTier, targetTier, feature, cap, used, resetAt }` — describing the cap and the upgrade that lifts it.
- `404` — Resource not found or not owned by your account.
- `429` — Rate limit, project cap, or daily quota hit. Body includes a `code` field.
- `500` — Server error. Retry; if persistent, contact support.

---

[API](https://skmtc.dev/openlens/apis/openlens-api.md) · [All operations](https://skmtc.dev/openlens/apis/openlens-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openlens/openlens-api/revisions/f8f03e555193/schema)
