---
title: "The measured AI visibility (GEO) results: share of voice, per-engine coverage, tracked questions with per-engine presence, cited sources with their outreach play, competitor gaps, trend, crawlability, plus the off-site reach signals (community mentions, threads worth answering, listings presence). discovered_at advances as a new scan lands. Full engine answer text is opt-in per question via ?prompt (tier-gated exactly as in the app)."
method: GET
path: "/api/v1/visibility"
---

# The measured AI visibility (GEO) results: share of voice, per-engine coverage, tracked questions with per-engine presence, cited sources with their outreach play, competitor gaps, trend, crawlability, plus the off-site reach signals (community mentions, threads worth answering, listings presence). discovered_at advances as a new scan lands. Full engine answer text is opt-in per question via ?prompt (tier-gated exactly as in the app).

`GET /api/v1/visibility`

## Request

- Base URL: `https://afterlaunch.io`
- URL: `https://afterlaunch.io/api/v1/visibility`
- Auth: HTTP bearer

## Query parameters

- `prompt` string

## Response `200`

The visibility payload (or, with ?prompt, the single-question drill).

- object
  - `data` object, required
    - `discovered_at` string, date-time, nullable
    - `finding_source` 'finding' | 'snapshot' | 'null', nullable: Whether this is a live scan ('finding') or the day-0 snapshot baseline ('snapshot').
    - `brand_name` string
    - `own_domain` string, nullable
    - `tier` string
    - `site_readability` string
    - `summary` object, nullable
    - `engines` object[]
    - `share_of_voice` object[]
    - `prompts` object[]
    - `competitor_gaps` object[]
    - `top_cited_sites` object[]
    - `trusted_sources` object[]
    - `crawlability` object, nullable
    - `trend` object[]
    - `movement` object, nullable
    - `scan_profile` object, nullable
    - `tracked_prompts` string[], nullable
    - `custom_prompts` string[]
    - `community_mentions` object, nullable
    - `community_threads` object[]
    - `listings_presence` object, nullable
  - `meta` object, required
    - `enrollment_id` string, uuid, required
    - `generated_at` string, date-time, required

## Other responses

- `401`: Missing, invalid or revoked API key.
- `403`: The key does not carry the scope this endpoint requires.
- `404`: No visibility data for this enrollment, an unknown prompt id, or a key bound to a superseded product run.
- `429`: Per-key rate limit exceeded. Honour Retry-After.

---

[API](https://skmtc.dev/afterlaunch/apis/afterlaunch-public-api.md) · [All operations](https://skmtc.dev/afterlaunch/apis/afterlaunch-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/afterlaunch/apis/afterlaunch-public-api/revisions/d67a599194a4?raw)
