Retrieve visibility
GET
/v1/brands/{brand_id}/visibilityHow visible a brand is in AI answers over a period: the score, the change against the previous period of the same length, share of voice, a time series and a breakdown per engine. The numbers match the Overview and Answer engine insights screens.
Read-onlyAll plansPath parameters
brand_idstringrequiredThe brand to report on. List brands with
GET /v1/brands.Query parameters
start_datedateoptionalFirst day,
YYYY-MM-DD. Default: 30 days ago.end_datedateoptionalLast day, inclusive. Default: today. At most 365 days after
start_date.enginescomma-separatedoptionalComma-separated engine ids. Default: every engine the brand tracks.
chatgptperplexitygeminigoogle_ai_overviewsclaudedeepseekmeta_aigranularityenumoptionalBucket size for
series. Default day.dayweekmonthtopic_idstringoptionalOnly count prompts in this topic (
top_…).include_competitorsbooleanoptionalAdd a
competitors array with the same numbers per tracked competitor. Default false.Response
A visibility object.
visibilitynumberVisibility for the period, 0 to 100: mention weight per answer × 100, weighted by position (1st 1.0, 2nd 0.8, 3rd 0.6, 4th+ 0.4).
changenumber or nullChange in points against the previous period of the same length; null without earlier data.
share_of_voicenumberYour mentions ÷ mentions of all tracked brands, 0 to 1.
answersintegerAI answers in the period.
seriesarray of objectsOne entry per bucket.
datedateStart of the bucket.
visibilitynumberVisibility in that bucket.
by_enginearray of objectsOne entry per engine.
enginestringEngine id.
visibilitynumberVisibility on that engine.
avg_positionnumber or nullAverage position when mentioned.
competitorsarray of objectsOnly with
include_competitors=true: competitor_id, name, visibility, share_of_voice.Errors
400invalid_requestDates malformed, reversed or over 365 days apart.
401unauthorizedMissing or revoked API key.
404not_foundNo brand with that id that this key can read.
429rate_limitedToo many requests; see Retry-After.