Get per-entity visibility scores
Returns aggregated visibility metrics per entity over the selected date range, sorted by visibility descending, suitable for a leaderboard or comparison table.
Headers
Project ID to specify the project context
Body
Start date (inclusive)
"2025-01-01"
End date (exclusive)
"2025-02-01"
Filter by country codes
Filter by language codes
Filter by AI models
Filter by query IDs
Filter by source presence: "sources" (only with sources), "no_sources" (only without), "all" (no filter). Legacy true/false values are still accepted.
all, sources, no_sources Filter by shopping presence: "shopping" (only with shopping), "no_shopping" (only without), "all" (no filter). Legacy true/false values are still accepted.
all, shopping, no_shopping Filter by query tag IDs (numeric — bigint column)
Filter by execution tag IDs
Filter by query tag group IDs — matches rows carrying any tag filed under a selected group. Combines with queryTagIds per queryTagMode.
Filter by execution tag group IDs — matches rows carrying any tag filed under a selected group. Combines with execTagIds per execTagMode.
Filter by query type. Include "untyped" to also match queries without a type. Results from since-deleted queries are excluded when this filter is set.
comparative, informative, perception, untyped Query tag matching mode: "or" matches ANY tag (default), "and" matches ALL tags.
and, or Execution tag matching mode: "or" matches ANY tag (default), "and" matches ALL tags.
and, or IANA timezone for date bucketing and filtering (e.g. "Europe/Brussels"). Defaults to UTC.
"Europe/Brussels"
Row grouping level for entity results. "none" = one row per entity, "division" = one row per division (entities not in a division get their own row), "group" = one row per top-level group (divisions roll up into their group). Defaults to "none".
none, division, group Deprecated — use groupBy instead. true is equivalent to groupBy="group".
false
Include entities that have only ever been seen in a single AI response. These are mostly one-off extraction noise and are hidden by default.
false
Filter which entity types to include in results. Accepted values: "owned", "primary", "competitor". Defaults to all types when omitted.
owned, primary, competitor Limit the returned rows to these entity IDs. This narrows which entities appear without changing the total responses used to compute visibility.
Response
Unique identifier for the entity or entity group. In per-entity mode this is the canonical entity ID; in grouped mode it is the entity group ID (or entity ID if ungrouped).
"550e8400-e29b-41d4-a716-446655440000"
Human-readable name of the entity or entity group.
"Acme Corp"
Total number of AI responses in the filtered date range (denominator for visibilityPct). Scoped by the request filters (project, date range, models, platforms, tags).
150
Number of AI responses that mention this entity/group (numerator for visibilityPct). A response mentioning multiple variants of the same canonical entity is counted once.
42
Visibility percentage — how often this entity/group appears across AI responses. Formula: (presentIn / totalResponses) × 100.
28
Weighted average position rank for this entity across all AI responses that mention it. Lower values mean the entity tends to appear higher/earlier in responses. Weighted by mention count to account for canonical entity merging.
2.5
Whether this entity is owned by the project (i.e. the project's own brand or product).
true
Whether this entity is the primary (main) entity for the project.
true
Whether this entity is a configured competitor of the project.
false
Total number of mention entries for this entity (raw count before dedup). Used to compute avgMentionsPerResult.
56
Average sentiment score for this entity across all mentions. Scale: 0 (most negative) to 100 (most positive).
72.3
Sentiment breakdown counts for this entity.
Average number of times this entity is mentioned per AI response that mentions it. Formula: mentionCount / presentIn. Values > 1 indicate repeated prominence.
1.33