Skip to content
Back to skills

Dataforseo

ASecurity

Complete DataForSEO API integration for SEO data and analysis. Use when the user asks for keyword research, search volume, SERP analysis, backlink audits, competitor analysis, rank tracking, domain authority, technical SEO audits, content monitoring, Google Trends, or any SEO-related data queries. Covers all DataForSEO APIs including SERP, Keywords Data, DataForSEO Labs, Backlinks, OnPage, Domain Analytics, Content Analysis, Business Data, Merchant, App Data, and AI Optimization APIs. Outputs...

  • 61 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 9, 2026
content-marketingpythongoapidocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add nikhilbhansali/dataforseo-skill-claude --skill dataforseo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dataforseo?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Dataforseo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nikhilbhansali-dataforseo/badge)](https://www.skillsdirectory.com/skills/nikhilbhansali-dataforseo)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: dataforseo
description: Complete DataForSEO API integration for SEO data and analysis. Use when the user asks for keyword research, search volume, SERP analysis, backlink audits, competitor analysis, rank tracking, domain authority, technical SEO audits, content monitoring, Google Trends, or any SEO-related data queries. Covers all DataForSEO APIs including SERP, Keywords Data, DataForSEO Labs, Backlinks, OnPage, Domain Analytics, Content Analysis, Business Data, Merchant, App Data, and AI Optimization APIs. Outputs CSV files.
---

# DataForSEO API Skill

Universal interface to all DataForSEO APIs for comprehensive SEO data retrieval and analysis.

## Credential Setup

Before first use, set up credentials:

```python
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.

## Quick Start

```python
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}")
```

## API Selection Guide

| 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()` |

## Core Workflow

1. **Import client**: Add skill path and import functions
2. **Call API function**: Pass required parameters
3. **Extract results**: Use `extract_results(response)`
4. **Export to CSV**: Use `to_csv(results, "filename")`

```python
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")
```

## Default Parameters

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)

## Common Location Names
- United States, United Kingdom, India, Germany, Australia, Canada
- For city-level: "New York,New York,United States", "London,England,United Kingdom"

## Output

All results export to CSV at `~/dataforseo_outputs/`. Files auto-named with timestamp if not specified.

## Reference Files

- **API Reference**: `references/api_reference.md` - Complete endpoint documentation
- **Use Cases**: `references/use_cases.md` - Ready-to-use code recipes

## Error Handling

```python
response = some_api_function(...)
if response.get("status_code") == 20000:
    results = extract_results(response)
    # Process results
else:
    print(f"Error: {response.get('status_message')}")
```

## Rate Limits & Costs

- 2000 requests/minute max
- Live methods cost more than Standard
- Check usage with `get_user_data()`
- Response includes `cost` field

## Important Notes

1. **Async endpoints**: Some APIs (merchant, app_data, business reviews) create tasks. Check task status separately.
2. **Limits**: Increase `limit` parameter for comprehensive data (default 100, max usually 1000)
3. **Multiple keywords**: Pass as list: `keywords=["kw1", "kw2", "kw3"]`

Files in this skill

  • SKILL.md4.7 KB
  • references/api_reference.md10.1 KB
  • references/use_cases.md8.4 KB
  • scripts/dataforseo_client.py23.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…