(app, country, model) for the most recent scan, plus the previous-period values for trend arrows.
Use this endpoint to populate the top of a dashboard. For per-intent breakdown, see GET /intents.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| appId | string | Yes | Apple App ID (numeric) |
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
| country | string | us | ISO country code |
| model | string | chatgpt | One of chatgpt, claude, gemini, perplexity. Each model is scored independently. |
Response
| Field | Description |
|---|---|
scoredAt | UTC date (YYYY-MM-DD) of the most recent scan rolled up. null if the app has never been scanned for this (country, model). |
visibilityScore.score | 0–100 composite. Weighted 70% by visibility (% of tracked prompts where your app appeared, position-weighted), 30% by sentiment when mentioned. |
visibilityScore.label | One of excellent (≥80), good (≥60), fair (≥40), poor (less than 40). |
sentimentPct | Average sentiment of the assistant when it talked about your app, normalised to a 0–100% scale. null if your app wasn’t mentioned. |
intentsTotal | Number of active intents tracked for this app. |
intentsCovered | Number of those intents in which your app appeared at least once in the most recent scan. |
trend.visibilityScorePrev | The same visibilityScore.score from the previous scan day. null if you don’t have prior data yet. |
trend.sentimentPctPrev | Same idea for sentiment. |
scoredAt: null, score: 0, label: "poor", sentimentPct: null, intentsCovered: 0.
Reading the score
The score is a single composite gauge. If you want to interpret it:- 80–100 (excellent): AI assistants reliably recommend your app for the intents you care about, near the top of their lists, with positive framing.
- 60–79 (good): You’re a top-of-mind option but not always the first one mentioned. Look at per-intent visibility to find where you’re weak.
- 40–59 (fair): You appear sometimes, often near the end of lists or with neutral language. Significant ASO + content opportunities.
- 0–39 (poor): AI assistants rarely surface you for these intents. Consider whether your intents accurately reflect what you do, and whether your app’s discoverability outside the App Store (web presence, reviews, mentions in content the assistants train on) is enough.
Code examples
Pattern: render gauges for all enabled models side-by-side
Credits
- 2 credits per call.
Errors
| Status | Code | When |
|---|---|---|
| 400 | INVALID_APP_ID | Missing or non-numeric app ID |
| 401 | — | Missing or invalid API key / JWT |
| 429 | — | Insufficient monthly credits |
See also
- Bootstrap — required before this endpoint returns scored data
- Intents endpoint — per-intent breakdown that drives the score
- Competitors — apps appearing alongside or instead of you
- AI Visibility overview — concept page

