Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.appeeky.com/llms.txt

Use this file to discover all available pages before exploring further.

GET /v1/ai-visibility/:appId/overview
Returns the headline numbers for AI Visibility — the AI Visibility Score gauge, the sentiment percentage, and how many of your tracked intents you actually showed up in. One row per (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

NameTypeRequiredDescription
appIdstringYesApple App ID (numeric)

Query parameters

NameTypeDefaultDescription
countrystringusISO country code
modelstringchatgptOne of chatgpt, claude, gemini, perplexity. Each model is scored independently.

Response

{
  "data": {
    "appId": "1234567890",
    "country": "us",
    "modelSlug": "chatgpt",
    "scoredAt": "2026-05-12",
    "visibilityScore": {
      "score": 92,
      "label": "excellent"
    },
    "sentimentPct": 75,
    "intentsTotal": 8,
    "intentsCovered": 7,
    "trend": {
      "visibilityScorePrev": 88,
      "sentimentPctPrev": 71
    }
  }
}
FieldDescription
scoredAtUTC date (YYYY-MM-DD) of the most recent scan rolled up. null if the app has never been scanned for this (country, model).
visibilityScore.score0–100 composite. Weighted 70% by visibility (% of tracked prompts where your app appeared, position-weighted), 30% by sentiment when mentioned.
visibilityScore.labelOne of excellent (≥80), good (≥60), fair (≥40), poor (less than 40).
sentimentPctAverage sentiment of the assistant when it talked about your app, normalised to a 0–100% scale. null if your app wasn’t mentioned.
intentsTotalNumber of active intents tracked for this app.
intentsCoveredNumber of those intents in which your app appeared at least once in the most recent scan.
trend.visibilityScorePrevThe same visibilityScore.score from the previous scan day. null if you don’t have prior data yet.
trend.sentimentPctPrevSame idea for sentiment.
When the app has been bootstrapped but not yet scanned, the response is the same shape but 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

curl "https://api.appeeky.com/v1/ai-visibility/1234567890/overview?country=us&model=chatgpt" \
  -H "X-API-Key: YOUR_API_KEY"

Pattern: render gauges for all enabled models side-by-side

const models = ["chatgpt", "claude", "gemini", "perplexity"];
const all = await Promise.all(
  models.map((m) =>
    fetch(
      `https://api.appeeky.com/v1/ai-visibility/1234567890/overview?country=us&model=${m}`,
      { headers: { "X-API-Key": "YOUR_API_KEY" } }
    ).then((r) => r.json())
  )
);
all.forEach((res, i) =>
  console.log(`${models[i]}: ${res.data.visibilityScore.score}`)
);
You’ll typically see different scores per model — a 92 on ChatGPT and a 58 on Gemini is meaningful signal.

Credits

  • 2 credits per call.

Errors

StatusCodeWhen
400INVALID_APP_IDMissing or non-numeric app ID
401Missing or invalid API key / JWT
429Insufficient monthly credits

See also