Competitors
get_competitor_analysis
- Plan
- Grow and above
- Rate cost
- 3 units
Try asking
“Break our questions down into winning, losing and open races.”
Competitors
Try asking
“Break our questions down into winning, losing and open races.”
Passed as the tool call's arguments.
project_idstringrequiredThe project to read, from list_projects.
The same object as Get competitor analysis, returned as structured output.
coverageobjectHow many prompts have enough evidence to classify.
analyzableintegerPrompts with enough evidence.
totalintegerPrompts classified.
analyzable_pctnumberanalyzable as a share of total, 0–100.
statesobject[]Prompts per state. States with no prompts are left out.
labelstringState.
Values:winninglosingopen_racemodel_contestedvolatileuncontestedinvisibleinsufficient_evidence
countintegerHow many.
citationobjectWhose pages the contested answers cite.
customernumberShare citing the brand's domains, 0–100.
competitornumberShare citing competitors' domains, 0–100.
third_partynumberShare citing anyone else, 0–100.
total_citationsintegerCitations counted.
confidencestringhigh from 20 citations, medium from 8.
Values:highmediumlow
model_splitobject[]Head-to-head win rate per engine.
enginestringEngine name.
Values:ChatGPTPerplexityGeminiCopilotAI OverviewsClaude
win_ratenumberShare of shared answers naming the brand first, 0–100.
promptsobject[]Every classified prompt.
prompt_idstringPrompt id.
prompt_refintegerThe prompt's short number.
prompt_textstringThe prompt.
statestringwinning / losing: named first in at least 60% of shared answers, or beaten that often. open_race: no one reaches 60%. model_contested: engines disagree. volatile: the winner keeps changing. uncontested: no rival appears often enough. invisible: the brand is never named. insufficient_evidence: fewer than 5 answers.
Values:winninglosingopen_racemodel_contestedvolatileuncontestedinvisibleinsufficient_evidence
prioritystringhigh for buying questions (best, vs, pricing, alternatives), low for navigational ones.
Values:highmediumlow
top_rivalstringnullableThe competitor beating the brand here, if any.
confidencestringhigh from 20 answers, medium from 8.
Values:highmediumlow
trendobject[]Prompts per state over time, oldest first.
datestringDay, as YYYY-MM-DD.
statesobject[]Every state and its count, zeros included.
labelstringState.
Values:winninglosingopen_racemodel_contestedvolatileuncontestedinvisibleinsufficient_evidence
countintegerHow many.
| 404 not_found | The project or item doesn't exist in this workspace. A project from another workspace also returns 404, never 403. |
| 403 forbidden | The workspace or the member the key acts as can't do this in the dashboard either — for example a project with competitive analysis switched off. |
| 401 unauthorized | No 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_required | The workspace's plan doesn't include API access. It's included on Grow, Scale and Custom. |
| 403 workspace_not_approved | The workspace is still waiting for approval, or wasn't approved. |
| 429 rate_limited | Too 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.