AI Model Insights

Position distribution comparison

get/reports/ai_model_insights/position_distribution

Request

  • Base URL
    https://api.llmpulse.ai/api/v1
  • URL
    https://api.llmpulse.ai/api/v1/reports/ai_model_insights/position_distribution
  • Auth
    API key in header Authorization

Query parameters

project_idinteger required

Project ID

rangeinteger

Number of days to look back (alternative to from/to)

fromstring date-time
tostring date-time

End of the window. A date-only value such as 2026-09-01 covers that whole day. Pass a full timestamp to end the window earlier.

granularity'day' | 'week' | 'month'
collection_idstring

One collection/tag ID or a comma-separated list of IDs. A query value is always a string on the wire, so it is typed as one: the previous integer-or-string union made generators emit a wrapper type they could not serialize.

country_codestring

One ISO country code or a comma-separated list (e.g. US,GB,DE)

language_codestring

One ISO language code or a comma-separated list (e.g. en,es,de)

prompt_typestring

One prompt type or a comma-separated list: informational, navigational, commercial, transactional

brand_kind'brand' | 'brand_other' | 'non_brand'

Filter by brand kind: brand (own brand/products), brand_other (competitors/other brands), non_brand (generic, no brand named). For fair 1:1 brand-vs-competitor comparisons (visibility, share of voice), use non_brand: brand-focused prompts skew results toward the brand they name. The in-app Overview page applies non_brand by default.

model'chatgpt' | 'ai_mode' | 'ai_overview' | 'perplexity' | 'gemini' | 'naver_ai' | 'baidu_ai' | 'naver_ai_tab' | 'qwen' | 'doubao'

Restrict the comparison to one AI model of AI Model Insights, whether or not that model is enabled for the API key's user. Any other value returns 422 ERR_INVALID_PARAM (invalid model).

brand1integer

Competitor ID for the first comparison brand (omit to compare project brand)

brand2integer

Response

Bucketed position totals + chart-ready series

Changes

No recorded changes to this operation across all 32 revisions of this API.