Tools for keyword research and competitive analysis. All tools require a Pro API key and use DataForSEO under the hood.
Find long-tail keywords with search volume, difficulty, and CPC. Uses relaxed filters by default to return more results.
analyze_serp to see what content actually ranks.| Parameter | Type | Default | Description |
|---|---|---|---|
topic | string | required | Seed topic or keyword |
minVolume | number | 10 | Minimum monthly search volume |
maxVolume | number | 10000 | Maximum monthly search volume |
maxDifficulty | number | 60 | Maximum keyword difficulty (0-100) |
limit | number | 20 | Max keywords to return (1-50) |
includeRelated | boolean | true | Include "searches related to" keywords |
research_keywords({
topic: 'nuxt meta tags',
maxDifficulty: 30,
limit: 10
})
Returns:
{
"topic": "nuxt meta tags",
"keywords": [
{
"keyword": "nuxt 4 meta tags",
"volume": 320,
"difficulty": 24,
"intent": "informational",
"cpc": 0.45
},
{
"keyword": "useseoMeta nuxt",
"volume": 210,
"difficulty": 18,
"intent": "informational",
"cpc": 0.32
}
],
"totalFound": 156,
"filters": {
"minVolume": 10,
"maxVolume": 10000,
"maxDifficulty": 30
}
}
| Difficulty | Meaning | Strategy |
|---|---|---|
| 0-20 | Easy | New sites can rank with quality content |
| 21-40 | Medium | Needs solid content + some authority |
| 41-60 | Hard | Requires established domain + links |
| 61-100 | Very hard | Only high-authority sites compete |
Analyze SERP competition for a keyword. Returns top results with domain rank and SERP features present.
| Parameter | Type | Default | Description |
|---|---|---|---|
keyword | string | required | Keyword to analyze |
depth | number | 10 | Number of results (1-20) |
analyze_serp({
keyword: 'nuxt schema.org',
depth: 10
})
Returns:
{
"keyword": "nuxt schema.org",
"results": [
{
"position": 1,
"url": "https://nuxtseo.com/docs/schema-org/getting-started",
"title": "Getting Started - Schema.org",
"domain": "nuxtseo.com",
"domainRank": 45
},
{
"position": 2,
"url": "https://nuxt.com/modules/schema-org",
"title": "Schema.org Module",
"domain": "nuxt.com",
"domainRank": 78
}
],
"serpFeatures": ["featured_snippet", "people_also_ask"],
"hasAiOverview": false,
"hasFeaturedSnippet": true,
"hasLocalPack": false,
"hasPeopleAlsoAsk": true
}
domainRank may be null for newer or smaller domains that lack authority data in DataForSEO's database.| Feature | What It Means |
|---|---|
ai_overview | Google AI Overview appears—harder to get clicks |
featured_snippet | Snippet opportunity—structure content for it |
people_also_ask | FAQ opportunity—answer related questions |
local_pack | Local results—need LocalBusiness schema |
video | Video results—consider video content |
images | Image pack—optimize image SEO |
Check what keywords a domain ranks for. Useful for competitor analysis and finding content gaps.
| Parameter | Type | Default | Description |
|---|---|---|---|
domain | string | required | Domain to check (without https://) |
limit | number | 50 | Max keywords to return (1-100) |
minPosition | number | 1 | Minimum ranking position |
maxPosition | number | 20 | Maximum ranking position |
check_rankings({
domain: 'competitor.com',
maxPosition: 10,
limit: 30
})
Returns:
{
"domain": "competitor.com",
"keywords": [
{
"keyword": "vue seo guide",
"position": 3,
"volume": 480,
"traffic": 156,
"url": "https://competitor.com/blog/vue-seo"
},
{
"keyword": "nuxt meta description",
"position": 7,
"volume": 320,
"traffic": 42,
"url": "https://competitor.com/blog/nuxt-meta"
}
],
"positionRange": { "min": 1, "max": 10 }
}
Compare your rankings to competitors:
check_rankings on your domaincheck_rankings on 2-3 competitorsGet URLs from a verified site's sitemap. Useful for content audits and analysis.
| Parameter | Type | Default | Description |
|---|---|---|---|
siteUrl | string | required | Site URL (must be verified in your Pro account) |
limit | number | 15 | Max URLs to return (1-50) |
get_sitemap_urls({
siteUrl: 'https://mysite.com',
limit: 10
})
Returns:
{
"siteId": "site_abc123",
"siteName": "My Site",
"urls": [
"https://mysite.com/blog/detailed-guide",
"https://mysite.com/blog/another-post",
"https://mysite.com/docs/getting-started"
],
"total": 156
}
URLs are sorted by path depth (deeper = more likely to be content pages). Skips sitemap indexes, API routes, and internal routes.
The site must be verified in your Pro account. Add sites in the Pro dashboard before using this tool.
| Tool | Cache Duration | Data Source |
|---|---|---|
research_keywords | 24 hours | DataForSEO keyword database |
analyze_serp | 12 hours | Live SERP results |
check_rankings | 24 hours | DataForSEO ranking database |
get_sitemap_urls | 1 hour | Live sitemap fetch |
Results are cached to reduce API costs and improve response time.
If research_keywords returns no keywords:
Some keywords may have null values for CPC or difficulty:
This is a DataForSEO data limitation, not a tool issue.
The domainRank field in analyze_serp results depends on DataForSEO having authority data for that domain. Newer or smaller sites may not have scores.