home / skills / openclaw / skills / similarweb-analytics
This skill analyzes domains with SimilarWeb data to deliver traffic, engagement, rankings, sources, and geographic insights for thorough website research.
npx playbooks add skill openclaw/skills --skill similarweb-analyticsReview the files below or copy the command above to add this skill to your agents.
---
name: similarweb-analytics
description: "Analyze websites and domains using SimilarWeb traffic data. Get traffic metrics, engagement stats, global rankings, traffic sources, and geographic distribution for comprehensive website research."
version: 1.0.0
metadata:
openclaw:
emoji: "📊"
---
# SimilarWeb Analytics
Comprehensive website and domain analysis using SimilarWeb traffic data.
## Core Capabilities
- **Traffic Analysis**: Total visits, unique visitors, traffic trends
- **Engagement Metrics**: Bounce rate, pages per visit, average visit duration
- **Global Ranking**: Website ranking over time
- **Traffic Sources**: Marketing channels (desktop and mobile)
- **Geographic Distribution**: Traffic breakdown by country
## API Usage
All APIs use `ApiClient` from `/opt/.manus/.sandbox-runtime`. Common parameters:
- `domain`: Website domain (e.g., "google.com")
- `start_date`: Start date (YYYY-MM). Max 12 months ago
- `end_date`: End date (YYYY-MM). Max 12 months ago, default is 1 month ago (most recent complete month)
- `main_domain_only`: Exclude subdomains if True (default: False)
**Default time ranges vary by API:**
- Global Rank, Visits Total, Unique Visit, Bounce Rate: default **6 months**
- Traffic Sources (Desktop/Mobile), Traffic by Country: default **3 months**
### Get Global Rank
```python
import sys
sys.path.append('/opt/.manus/.sandbox-runtime')
from data_api import ApiClient
client = ApiClient()
result = client.call_api('SimilarWeb/get_global_rank', path_params={'domain': 'amazon.com'})
```
### Get Website Visits Total
```python
import sys
sys.path.append('/opt/.manus/.sandbox-runtime')
from data_api import ApiClient
client = ApiClient()
result = client.call_api('SimilarWeb/get_visits_total',
path_params={'domain': 'amazon.com'},
query={'country': 'world', 'granularity': 'monthly', 'start_date': '2025-07', 'end_date': '2025-12'})
```
### Get Unique Visit
```python
import sys
sys.path.append('/opt/.manus/.sandbox-runtime')
from data_api import ApiClient
client = ApiClient()
result = client.call_api('SimilarWeb/get_unique_visit',
path_params={'domain': 'amazon.com'},
query={'start_date': '2025-07', 'end_date': '2025-12'})
```
### Get Bounce Rate
```python
import sys
sys.path.append('/opt/.manus/.sandbox-runtime')
from data_api import ApiClient
client = ApiClient()
result = client.call_api('SimilarWeb/get_bounce_rate',
path_params={'domain': 'amazon.com'},
query={'country': 'world', 'granularity': 'monthly', 'start_date': '2025-07', 'end_date': '2025-12'})
```
### Get Traffic Sources - Desktop
Returns breakdown by channel: Organic Search, Paid Search, Direct, Display Ads, Email, Referrals, Social Media.
```python
import sys
sys.path.append('/opt/.manus/.sandbox-runtime')
from data_api import ApiClient
client = ApiClient()
result = client.call_api('SimilarWeb/get_traffic_sources_desktop',
path_params={'domain': 'amazon.com'},
query={'country': 'world', 'granularity': 'monthly', 'start_date': '2025-07', 'end_date': '2025-12'})
```
### Get Traffic Sources - Mobile
```python
import sys
sys.path.append('/opt/.manus/.sandbox-runtime')
from data_api import ApiClient
client = ApiClient()
result = client.call_api('SimilarWeb/get_traffic_sources_mobile',
path_params={'domain': 'amazon.com'},
query={'country': 'world', 'granularity': 'monthly', 'start_date': '2025-07', 'end_date': '2025-12'})
```
### Get Total Traffic by Country
Returns traffic share, visits, pages per visit, average time, bounce rate and rank by country.
- `limit`: Number of countries to return (default: 1, max: 10)
- **Date range limit**: max 3 months (unlike other APIs)
```python
import sys
sys.path.append('/opt/.manus/.sandbox-runtime')
from data_api import ApiClient
client = ApiClient()
result = client.call_api('SimilarWeb/get_total_traffic_by_country',
path_params={'domain': 'amazon.com'},
query={'start_date': '2025-10', 'end_date': '2025-12', 'limit': '10'})
```
## When to Use
Invoke APIs when users mention:
- Domain names: "google.com", "amazon.com"
- Traffic queries: "traffic", "visits", "visitors"
- Ranking queries: "rank", "ranking", "how popular"
- Engagement queries: "bounce rate", "engagement"
- Source queries: "traffic sources", "marketing channels"
- Geographic queries: "countries", "geographic"
- Comparison queries: "compare", "vs"
## Data Limitations
- Historical data: max 12 months
- Geography: worldwide only
- Granularity: monthly only
- Latest data: last complete month
## Important: Save Data to Files
API calls may fail mid-execution due to credit depletion. **Always save all retrieved data to files immediately** to avoid data loss and prevent redundant API calls.
This skill analyzes websites and domains using SimilarWeb traffic data to deliver actionable research for marketing, competitive intelligence, and product decisions. It returns traffic totals, engagement metrics, global rank, channel breakdowns for desktop and mobile, and geographic traffic distribution. Responses are built for monthly time ranges and include safeguards to persist results to files to avoid data loss.
The skill calls SimilarWeb endpoints via an ApiClient wrapper to fetch domain-level metrics: visits, unique visitors, bounce rate, pages per visit, average visit duration, and global rank. It can also break down traffic by marketing channel (desktop and mobile) and by country, with configurable date ranges (monthly granularity) and options to include or exclude subdomains. Because API runs can be interrupted, the workflow emphasizes saving retrieved payloads to files immediately after each call.
What date ranges and granularity are supported?
All endpoints use monthly granularity. Historical depth is limited to the last 12 months; some endpoints default to 3 months and others to 6 months.
Can I exclude subdomains from the results?
Yes. Use the main_domain_only flag to return metrics for the primary domain only.
How many countries can I request in the country breakdown?
The traffic-by-country endpoint supports a limit parameter from 1 up to 10 countries; the date range for this endpoint is capped at 3 months.