Visibility

get_platform_detail

One engine in depth (platform id from get_visibility_overview): win/loss summary, sentiment and rank mix, rivals winning, and paged results.
readReads only. Annotated read-only, so a client can call it without asking.
Plan
Grow and above
Rate cost
3 units

Try asking

What are we losing on ChatGPT, and who is winning those answers?

Arguments

Passed as the tool call's arguments.

project_idstringrequired

The project to read, from list_projects.

platformstringrequired

Engine id.

Values:chatgptperplexitygeminicopilotai_overviewsclaude

pageintegerdefault 1

Page number, from 1.

statusenum<string>

Keep only won or only lost answers.

Values:wonlost

querystring

Search the prompt text, up to 200 characters.

Result

The same object as Get engine detail, returned as structured output.

statobject

The engine's numbers for the latest run.

+Show child attributes
platform_idstring

Engine id. Engines your plan doesn't run are listed with zeros.

Values:chatgptperplexitygeminicopilotai_overviewsclaude

platform_labelstring

Display name, e.g. AI Overviews.

probes_woninteger

Answers that won: the brand recommended with a quality of at least 0.5.

total_probesinteger

Answers on this engine, counting every prompt, run and sample.

geo_scorenumber

GEO score, 0–100: the average answer quality across prompts, scaled to 100.

visibilitynumber

Share of answers that mention the brand at all, 0–100.

visibility_deltanumber

Change in visibility against the previous window, in percentage points. 0 with no comparable window.

mention_qualitynumbernullable

Average quality of the answers that do mention the brand, 0–100. Null until at least 8 prompts have a mention.

citation_ratenumber

Share of answers that cite one of the brand's own domains, 0–100.

citation_rate_deltanumber

Change in citation_rate, in percentage points.

win_ratenumber

probes_won as a share of total_probes, 0–100.

ci_halfwidthnumbernullable

Half-width of the 95% confidence interval on stat.geo_score, in score points. Null with fewer than 2 prompts.

woninteger

Won answers in the latest run.

lostinteger

Lost answers in the latest run.

sentimentsobject[]

Answers per tone. Tones with no answers are left out.

+Show child attributes
labelstring

Tone.

Values:positiveneutralnegative

countinteger

How many.

positionsobject[]

Answers per brand position.

+Show child attributes
labelstring

Position, as a string: "1", "2"

countinteger

How many.

competitor_winsobject[]

Competitors that won answers the brand was absent from, most wins first.

+Show child attributes
namestring

Competitor.

winsinteger

Answers it won.

probesobject[]

This page of results, 25 per page.

+Show child attributes
idstring

Result id. Pass it to Get a reasoning card.

prompt_idstring

The tracked prompt that was asked.

prompt_refinteger

The prompt's short number, as the dashboard shows it (#12). 0 when not available.

prompt_textstring

The prompt that was asked.

platformstring

Engine id.

Values:chatgptperplexitygeminicopilotai_overviewsclaude

wonboolean

True when the answer recommended the brand with a quality of at least 0.5.

brand_positionintegernullable

Where the brand is first named among itself and the tracked competitors, from 1. Null when the answer doesn't name it.

sentimentstringnullable

Tone toward the brand. Null when it isn't mentioned.

Values:positiveneutralnegative

endorsementstringnullable

How the answer treats the brand, from named as the one to choose to advised against. Null when the brand isn't mentioned.

Values:strongrecommendedneutralreference_onlydiscouraged

qualitynumber

The answer's quality for the brand, 0–1: endorsement weighted by position. 0.5 or more is a win.

top_competitorstringnullable

The first tracked competitor the answer names.

citation_countinteger

Distinct URLs the answer cites.

competitor_countinteger

Tracked competitors the answer names.

reasoning_card_idstringnullable

The “Why?” card explaining the result. Null when there isn't one.

pageobject

Where these rows sit in the full list.

+Show child attributes
pageinteger

This page's number, from 1.

page_sizeinteger

Rows per page.

totalinteger

Rows across every page.

Errors

404 not_foundThe project or item doesn't exist in this workspace. A project from another workspace also returns 404, never 403.
422 invalid_requestA parameter or body field is missing or has the wrong type or value. The message names the field. Also returned when a write would pass the plan's prompt limit.
401 unauthorizedNo key was sent, or the key is unknown, revoked or expired, or the member who created it has left the workspace or been deactivated.
402 plan_requiredThe workspace's plan doesn't include API access. It's included on Grow, Scale and Custom.
403 workspace_not_approvedThe workspace is still waiting for approval, or wasn't approved.
429 rate_limitedToo many requests this minute. Wait for the number of seconds in the `Retry-After` header, then retry.

Every code, and what to retry, is in Errors.

Failures arrive as a tool error — isError: true with code: message as text. See Using the tools.