This is a comprehensive wrapper around DataForSEO's entire API suite, covering everything from keyword research and SERP analysis to backlink audits and technical SEO. It handles credential management, outputs everything to CSV, and includes sensible defaults for location and language. The documentation is thorough with a clear API selection guide that maps user requests to specific functions. Worth noting that it supports both live and historical data across 11 different DataForSEO API categories, though some endpoints are async and require separate task status checks. If you're doing SEO analysis at scale or building reports, this beats wrestling with raw API calls. Just be mindful of rate limits and API costs, especially with live methods.
npx -y skills add nikhilbhansali/dataforseo-skill-claude --skill dataforseo --agent claude-codeInstalls into .claude/skills of the current project.
Universal interface to all DataForSEO APIs for comprehensive SEO data retrieval and analysis.
Before first use, set up credentials:
import sys, os
sys.path.insert(0, os.path.expanduser('~/.agents/skills/dataforseo/scripts'))
from dataforseo_client import save_credentials, verify_credentials
# Get credentials from https://app.dataforseo.com/
login = "your_email@example.com" # API login (email)
password = "your_api_password" # API password (from dashboard)
# Verify and save
if verify_credentials(login, password):
save_credentials(login, password)
print("Credentials saved!")
Credentials stored at ~/.dataforseo_config.json. To update, run setup again.
import sys, os
sys.path.insert(0, os.path.expanduser('~/.agents/skills/dataforseo/scripts'))
from dataforseo_client import *
# Example: Get search volume
response = keywords_search_volume(
keywords=["seo tools", "keyword research"],
location_name="United States"
)
results = extract_results(response)
csv_path = to_csv(results, "keyword_volumes")
print(f"Results saved to: {csv_path}")
| User Request | Function to Use |
|---|---|
| Search volume, CPC, competition | keywords_search_volume() |
| Keyword ideas/suggestions | labs_keyword_ideas() or labs_related_keywords() |
| Keywords a site ranks for | labs_ranked_keywords() |
| SERP results for keyword | serp_google_organic() |
| Local/Maps rankings | serp_google_maps() |
| YouTube rankings | serp_youtube() |
| Backlink profile | backlinks_summary() |
| List of backlinks | backlinks_list() |
| Referring domains | backlinks_referring_domains() |
| Domain authority/rank | backlinks_bulk_ranks() |
| Competing domains | labs_competitors_domain() |
| Keyword gap analysis | labs_domain_intersection() |
| Link gap analysis | backlinks_domain_intersection() |
| Technical page audit | onpage_instant_pages() |
| Lighthouse scores | lighthouse_live() |
| Technology stack | domain_technologies() |
| Brand mentions | content_search() |
| Google Trends | google_trends() |
extract_results(response)to_csv(results, "filename")import sys, os
sys.path.insert(0, os.path.expanduser('~/.agents/skills/dataforseo/scripts'))
from dataforseo_client import labs_ranked_keywords, extract_results, to_csv
response = labs_ranked_keywords(
target="competitor.com",
location_name="United States",
language_name="English",
limit=500
)
results = extract_results(response)
csv_path = to_csv(results, "ranked_keywords")
Most functions use these defaults:
location_name: "United States" (override with "India", "United Kingdom", etc.)language_name: "English"limit: 100 (increase up to 1000 for more results)device: "desktop" (or "mobile" for SERP)All results export to CSV at ~/dataforseo_outputs/. Files auto-named with timestamp if not specified.
references/api_reference.md - Complete endpoint documentationreferences/use_cases.md - Ready-to-use code recipesresponse = some_api_function(...)
if response.get("status_code") == 20000:
results = extract_results(response)
# Process results
else:
print(f"Error: {response.get('status_message')}")
get_user_data()cost fieldlimit parameter for comprehensive data (default 100, max usually 1000)keywords=["kw1", "kw2", "kw3"]juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills