Keyword & SERP research via the DataForSEO API — search volume, competition, CPC, keyword ideas for naming/SEO decisions
61
77%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/dataforseo/SKILL.mdPurpose: Get real search demand (monthly volume, competition, CPC) and keyword ideas from Google Ads data via DataForSEO, so naming and content decisions are grounded in data rather than intuition.
DataForSEO uses HTTP Basic auth. Provide credentials via environment only:
export DATAFORSEO_LOGIN="you@example.com"
export DATAFORSEO_PASSWORD="…"
# or a single combined value:
export DATAFORSEO_API_KEY="login:password" # or its base64The helper reads these from the env — it never hardcodes or logs the secret,
and only ever calls api.dataforseo.com. Keep the key in a local .env that is
git-ignored; do not paste it into the repo, a URL, or chat.
The helper is dataforseo.py in this skill folder:
DFS="$(cat ~/.claude/.bootstrap-dir)/skills/dataforseo/dataforseo.py"
python3 "$DFS" whoami # auth check + balance
python3 "$DFS" volume "claude code" "coding agent" # search volume table
python3 "$DFS" ideas "coding agent" # related keyword ideas
# options: --location <code, default 2840=US> --language <code, default en>volume → each keyword's monthly search volume, competition (LOW/MEDIUM/HIGH),
and CPC. ideas → the searched long-tail around a seed.
n/a volume on every candidate is itself the answer: the names
aren't search terms, so SEO can't rank them against each other — decide on
clarity/brand and accept that discovery happens on GitHub/HN/X, not search.live endpoints bill per call (search volume / ideas ≈ $0.05–0.10 each). Batch
many keywords into ONE volume call (it accepts up to 1000) rather than looping.
Check whoami for balance before large runs.
| Need | Endpoint |
|---|---|
| Search volume | keywords_data/google_ads/search_volume/live |
| Keyword ideas | keywords_data/google_ads/keywords_for_keywords/live |
| SERP (who ranks) | serp/google/organic/live/advanced |
| Ranked keywords for a domain | dataforseo_labs/google/ranked_keywords/live |
| Competitor domains | dataforseo_labs/google/competitors_domain/live |
All take the same Basic-auth header; POST a JSON array of task objects.
alinaqi/maggy
55aabe2
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.