SEO DataForSEO
SEO keyword research using the DataForSEO API. Perform keyword analysis, YouTube keyword research, competitor analysis, SERP analysis, and trend tracking. Use when the user asks to: research keywords,
SEO keyword research using the DataForSEO API. Perform keyword analysis, YouTube keyword research, competitor analysis, SERP analysis, and trend tracking. Use when the user asks to: research keywords,
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Install dependencies:
pip install -r scripts/requirements.txt
Configure credentials by creating a
.env file in the project root:
DATAFORSEO_LOGIN=your_email@example.com DATAFORSEO_PASSWORD=your_api_password
Get credentials from: https://app.dataforseo.com/api-access
| User says | Function to call |
|---|---|
| "Research keywords for [topic]" | |
| "YouTube keyword data for [idea]" | |
| "Analyze competitor [domain.com]" | |
| "What's trending?" | |
| "Keyword analysis for [list]" | |
| "Landing page keywords for [topic]" | |
Execute functions by importing from
scripts/main.py:
import sys from pathlib import Path sys.path.insert(0, str(Path("scripts"))) from main import *result = keyword_research("AI website builders")
Every research task follows three phases:
Run API functions. Each function call hits the DataForSEO API and returns structured data.
All results automatically save as timestamped JSON files to
results/{category}/. File naming pattern: YYYYMMDD_HHMMSS__operation__keyword__extra_info.json
After research, read the saved JSON files and create a markdown summary in
results/summary/ with data tables, ranked opportunities, and strategic recommendations.
These are the primary functions in
scripts/main.py. Each orchestrates multiple API calls for a complete research workflow.
| Function | Purpose | What it gathers |
|---|---|---|
| Single keyword deep-dive | Overview, suggestions, related keywords, difficulty |
| YouTube content research | Overview, suggestions, YouTube SERP rankings, YouTube trends |
| Landing page SEO | Overview, intent, difficulty, SERP analysis, competitor keywords |
| Strategic content planning | Overview, difficulty, intent, keyword ideas, historical volume, Google Trends |
| Competitor intelligence | Domain keywords, Google Ads keywords, competitor domains |
| Current trends | Currently trending searches |
All functions accept an optional
location_name parameter (default: "United States"). Most functions also have boolean flags to skip specific sub-analyses (e.g., include_suggestions=False).
For granular control, import specific functions from the API modules. See references/api-reference.md for the complete list of 25 API functions with parameters, limits, and examples.
Results auto-save to
results/ with this structure:
results/ ├── keywords_data/ # Search volume, CPC, competition ├── labs/ # Suggestions, difficulty, intent ├── serp/ # Google/YouTube rankings ├── trends/ # Google Trends data └── summary/ # Human-readable markdown summaries
from core.storage import list_results, load_result, get_latest_resultList recent results
files = list_results(category="labs", limit=10)
Load a specific result
data = load_result(files[0])
Get most recent result for an operation
latest = get_latest_result(category="labs", operation="keyword_suggestions")
from main import get_recent_results, load_latestList recent files across all categories
files = get_recent_results(limit=10)
Load latest result for a category
data = load_latest("labs", "keyword_suggestions")
After running research, create a markdown summary document in
results/summary/. Include:
Name the summary file descriptively (e.g.,
results/summary/ai-tools-keyword-research.md).
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.