Discover Competitors
discover_competitors(domain: string, limit?: number)Organic competitors by overlap or seed keywords.
Lists organic competitor domains ranked by search keyword overlap, average position, and shared keywords.
Input Parameters
2 arguments| Parameter | Type | Requirement | Default / Constraints | Description |
|---|---|---|---|---|
domain | string | required | The domain to find organic search competitors for. | |
limit | number | optional | Maximum number of competitor domains to return. |
Return Envelope (OFE / 1.0)
Open Fact EnvelopeEvery response adheres to the strict ofe/1.0 envelope schema, returning verified data, typed facts, entity references, and follow-up tool suggestions:
data Payload
Lists organic competitor domains ranked by search keyword overlap, average position, and shared keywords.
coverage & Freshness
Reports returned count vs total items, observation timestamp as_of, and scope notes. Evaluated live per request.
resources (Dataset Exports)
If a query yields high row counts (e.g. >1,000 queries in Search Console), full unpaginated tables are persisted to R2 and linked as an mcpseo:// URI for follow-up retrieval via export_dataset.
next_actions
Provides suggested follow-up tool calls with pre-filled arguments so your AI agent can navigate from discovery to detailed inspection autonomously.
Emitted Facts & Entities
Knowledge GraphTyped Facts
Facts emitted in the facts[] array with provenance receipts:
| Fact Type | Claim Description | Emitted Data Fields |
|---|---|---|
seo.competitor | Competitor domain with average position and count of shared ranking keywords. | competitor_domainavg_positionshared_keyword_count |
core.data_freshness | Observation timestamp and search index crawl freshness. | observed_at |
Registered Entities
Entities registered in the entities[] array to establish subject relationships:
Target domain and each identified competitor domain.
Request & Response Examples
Live MCP PayloadsExact JSON schemas transmitted over Model Context Protocol (stdio or HTTP SSE transport):
1. Client Tool Invocation
{
"tool": "discover_competitors",
"arguments": {
"domain": "postman.com",
"limit": 10
}
}2. Server Envelope Response
{
"schema_version": "ofe/1.0",
"domain": "seo",
"data": {
"domain": "postman.com"
},
"facts": [
{
"type": "seo.competitor",
"subject": [
"urn:domain:postman.com",
"urn:domain:insomnia.rest"
],
"data": {
"competitor_domain": "insomnia.rest",
"avg_position": 8.4,
"shared_keyword_count": 4210
},
"provenance": {
"source_class": "search_index",
"method": "organic_competitors",
"confidence": 0.75,
"observed_at": "2026-09-24T00:00:00Z",
"cache_hit": false
}
},
{
"type": "seo.competitor",
"subject": [
"urn:domain:postman.com",
"urn:domain:hoppscotch.io"
],
"data": {
"competitor_domain": "hoppscotch.io",
"avg_position": 12.1,
"shared_keyword_count": 1840
},
"provenance": {
"source_class": "search_index",
"method": "organic_competitors",
"confidence": 0.75,
"observed_at": "2026-09-24T00:00:00Z",
"cache_hit": false
}
}
],
"entities": [
{
"id": "urn:domain:postman.com",
"kind": "domain",
"label": "postman.com"
},
{
"id": "urn:domain:insomnia.rest",
"kind": "domain",
"label": "insomnia.rest"
},
{
"id": "urn:domain:hoppscotch.io",
"kind": "domain",
"label": "hoppscotch.io"
}
],
"coverage": {
"returned": 2,
"total": null,
"as_of": "2026-09-24T00:00:00Z",
"scope_note": null
},
"deltas": [],
"resources": [],
"next_actions": [
{
"tool": "compare_keyword_coverage",
"args": {
"domain": "postman.com",
"competitors": [
"insomnia.rest",
"hoppscotch.io"
]
},
"use_when": "find missing keyword opportunities"
}
]
}LLM Agent Workflow
Claude & Cursor IntegrationPrompt Trigger
"Who are postman.com's primary SEO competitors?"
Agent Decision & Reasoning
The agent queries discover_competitors to extract high-overlap competitor domains, which are then passed directly into compare_keyword_coverage and compare_backlink_gap.
Recommended Follow-up Tools
Provenance Guarantees & Error Handling
ReliabilityEvery fact emitted by Vouched includes source_class, method, observed_at ISO timestamp, and a published confidence score. LLM agents can inspect these citations to distinguish first-party verified facts (e.g. Search Console) from modeled competitor estimates.
Billing & API Keys
Paid market data, on Pro and Team. A call typically costs about $0.013 per call of market data, so Pro's included $4 covers roughly 307 calls. Self-hosted, it uses your own DataForSEO key and bills you directly, with nothing added. See pricing for what each tool costs.
More SEO Tools
6 sibling toolsinspect_domain()Compact factual snapshot for one domain.
research_keywords()Expand a seed term into a ranked demand list.
compare_keyword_coverage()Keyword gap vs competitors.
inspect_search_visibility()Ranking positions across a keyword set.
inspect_keyword()Search volume, difficulty, CPC and intent for one keyword.
inspect_page()Keywords + traffic for a single URL.