Compare Keyword Coverage
compare_keyword_coverage(domain: string, competitors: string[])Keyword gap vs competitors.
Keywords each competitor ranks for in the top 20 that your domain doesn't, highest search volume first, with search intent. Navigational searches (usually the competitor's own brand) are listed last, not removed.
Input Parameters
2 arguments| Parameter | Type | Requirement | Default / Constraints | Description |
|---|---|---|---|---|
domain | string | required | Your primary domain to evaluate. | |
competitors | string[] | required | Competitor domains to find keyword gaps against. |
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
Keywords each competitor ranks for in the top 20 that your domain doesn't, highest search volume first, with search intent. Navigational searches (usually the competitor's own brand) are listed last, not removed.
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.keyword_opportunity | A keyword a competitor ranks for that your domain doesn't, with its demand and the competitor's position. | keywordsearch_volumekeyword_difficultysearch_intentcompetitor_domaincompetitor_positioncompetitor_url |
Registered Entities
Entities registered in the entities[] array to establish subject relationships:
Your domain and each competitor domain.
Discovered gap keywords.
Request & Response Examples
Live MCP PayloadsExact JSON schemas transmitted over Model Context Protocol (stdio or HTTP SSE transport):
1. Client Tool Invocation
{
"tool": "compare_keyword_coverage",
"arguments": {
"domain": "vouchedhq.com",
"competitors": [
"semrush.com"
]
}
}2. Server Envelope Response
{
"schema_version": "ofe/1.0",
"domain": "seo",
"data": {
"domain": "vouchedhq.com",
"competitors": [
"semrush.com"
]
},
"facts": [
{
"type": "seo.keyword_opportunity",
"subject": [
"urn:domain:vouchedhq.com",
"urn:domain:semrush.com",
"urn:keyword:open+source+semrush"
],
"data": {
"keyword": "open source semrush",
"search_volume": 880,
"keyword_difficulty": 22,
"search_intent": "commercial",
"competitor_domain": "semrush.com",
"competitor_position": 4,
"competitor_url": "https://www.semrush.com/"
},
"provenance": {
"source_class": "search_index",
"method": "keyword_gap",
"confidence": 0.75,
"observed_at": "2026-09-24T00:00:00Z",
"cache_hit": false
}
}
],
"entities": [
{
"id": "urn:domain:vouchedhq.com",
"kind": "domain",
"label": "vouchedhq.com"
},
{
"id": "urn:domain:semrush.com",
"kind": "domain",
"label": "semrush.com"
},
{
"id": "urn:keyword:open+source+semrush",
"kind": "keyword",
"label": "open source semrush"
}
],
"coverage": {
"returned": 1,
"total": null,
"as_of": "2026-09-24T00:00:00Z",
"scope_note": null
},
"deltas": [],
"resources": [],
"next_actions": []
}LLM Agent Workflow
Claude & Cursor IntegrationPrompt Trigger
"Which keywords does semrush.com rank for that vouchedhq.com is missing?"
Agent Decision & Reasoning
The agent uses compare_keyword_coverage to find immediate content and landing page expansion opportunities by analyzing competitor ranking gaps.
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.024 per competitor of market data, so Pro's included $4 covers roughly 166 calls with one competitor. 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.
discover_competitors()Organic competitors by overlap or seed keywords.
research_keywords()Expand a seed term into a ranked demand list.
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.