Skip to content

Get Scores

Get visibility metrics and historical trends for a brand. This is the primary endpoint for understanding your AI visibility.

Requires authentication
60 req/min

Endpoint

GET/get-scores

Returns visibility scores, presence metrics, and historical trends for a brand. Includes per-model breakdown and comparison to previous periods.

Query Parameters

brandstringrequired

Brand ID from /get-brands (also accepts brand_id)

daysinteger

Historical period in days (7-365)

Default: 90

viewstring

Which shape to return: summary, time_series, by_model, or by_prompt

Default: summary

tag_idsstring

Comma-separated tag UUIDs to filter prompts. Scores are recalculated using only matching prompts.

prompt_idstring

Single prompt UUID to filter scores to one prompt

Rate limit: 60 requests/minute.

Understanding Scores

Trakkr tracks two key metrics:

Visibility Score (0-100)

How prominently your brand appears when mentioned. Based on position in AI recommendations.

80-100: Excellent
60-79: Good
40-59: Average
0-39: Needs work

Presence Score (0-100)

The percentage of tracked prompts where your brand appears at least once. A brand with 80% presence appears in 80% of relevant AI queries.

A high visibility score with low presence means you dominate a narrow set of queries. Low visibility with high presence means you appear broadly but not prominently.

Filtering by Tag or Prompt

Use tag_ids or prompt_id to segment visibility scores to a subset of prompts. When filters are active, scores are recalculated using only matching prompts, and the response includes afilters_applied object.

Without filters, scores reflect all tracked prompts (existing behavior). Filters are optional and fully backward-compatible.

Views

The view parameter changes the shape of the response. Leave it out and you get summary, which is what the rest of this page describes. An unrecognised value returns 400.

viewWhat you get back
summaryDefault. brand, latest_scores, trend, historical and filters_applied.
time_seriesbrand, period_days, and time_series[] with date, visibility, presence, average_rank, mentions and models_mentioned per report.
by_modelbrand, period_days, and models[] with model, visibility, presence and trend, from the latest report.
by_promptbrand, period_days, and prompts[] with prompt_id, prompt_text, visibility, presence and average_rank, from the latest report.
The three extra views return a smaller brand object, with only id and name. They also ignore tag_ids and prompt_id; filtering only applies to the summary view.

Response Fields

Top Level

brandobject

The brand this report is about: id, name, website, competitors

latest_scoresobject

The most recent scores, broken down below

trendobject

Change across the requested period

historicalarray

One point per completed report in the period, oldest first

filters_appliedobjectnullable

Echo of the tag_ids and prompt_id you sent, plus matched_prompts. Null when you send no filters.

brand Object

idstring

Brand UUID, the same one you passed in

namestring

Brand display name

websitestring

Brand website URL. Empty string if the brand has none.

competitorsstring[]

Competitor names tracked for this brand

latest_scores Object

visibilitynumber

Overall visibility score (0-100). Higher = more prominent in AI responses.

presencenumber

Overall presence score (0-100). Percentage of prompts where brand appears.

average_ranknumbernullable

Average position when mentioned (1.0-10.0). Lower is better.

mentionsinteger

Total times brand appeared in AI responses this period

models_mentionedinteger

Count of AI models that mentioned the brand

model_scoresobject

Per-model visibility and presence breakdown

datestring

ISO 8601 timestamp of this report

trend Object

visibility_changenumbernullable

Visibility now minus visibility at the start of the period. Null when there is only one report.

presence_changenumbernullable

Presence now minus presence at the start of the period. Null when there is only one report.

period_daysinteger

The days value you requested, echoed back

reports_countinteger

How many completed reports the trend is based on

historical[] Item

datestring

Report date, YYYY-MM-DD

visibilitynumber

Visibility score on that date (0-100)

presencenumber

Presence score on that date (0-100)

average_ranknumbernullable

Average position on that date. Null when filters are active, because rank is not tracked per prompt.

mentionsinteger

Mentions counted on that date

Model Scores

The model_scores object contains per-model breakdown:

Model KeyAI Model
ChatGPTOpenAI GPT-4o
ClaudeAnthropic Claude 3.5 Sonnet
GeminiGoogle Gemini 2.0 Flash
PerplexityPerplexity Sonar
GrokxAI Grok 2

Code example

Request
Code language
1curl -H 'Authorization: Bearer $TRAKKR_API_KEY' \
2 'https://api.trakkr.ai/get-scores?brand=75ffdeb9-0924-4ff9-8ded-c2470d73d224&days=30'
Response example
1{
2 "brand": {
3 "id": "75ffdeb9-0924-4ff9-8ded-c2470d73d224",
4 "name": "Notion",
5 "website": "https://www.notion.so",
6 "competitors": ["Asana", "Monday.com", "ClickUp"]
7 },
8 "latest_scores": {
9 "visibility": 42.5,
10 "presence": 58.0,
11 "average_rank": 3.2,
12 "mentions": 127,
13 "models_mentioned": 6,
14 "model_scores": {
15 "ChatGPT": { "visibility": 48.1, "presence": 62.0 },
16 "Claude": { "visibility": 39.4, "presence": 55.5 }
17 },
18 "date": "2026-07-30T06:12:04Z"
19 },
20 "trend": {
21 "visibility_change": 5.2,
22 "presence_change": 3.1,
23 "period_days": 30,
24 "reports_count": 28
25 },
26 "historical": [
27 {
28 "date": "2026-07-01",
29 "visibility": 37.3,
30 "presence": 54.9,
31 "average_rank": 3.6,
32 "mentions": 112
33 },
34 {
35 "date": "2026-07-30",
36 "visibility": 42.5,
37 "presence": 58.0,
38 "average_rank": 3.2,
39 "mentions": 127
40 }
41 ],
42 "filters_applied": null
43}
Press ? for keyboard shortcuts