Similarweb traffic skill

Fetch website traffic estimates (monthly visits, traffic sources, top countries, keywords, engagement, ranks) for any domain from SimilarWeb.

by OpenClaudia·MIT license·★ 705 Stars on the repo·GitHub ↗

Use now

Files of Similarweb traffic

OpenClaudia/main1 file shown
SKILL.md
Show the full text81 lines

SimilarWeb Traffic

Fetch traffic-overview estimates for any domain — monthly visits, traffic-source breakdown, top countries, top keywords, engagement metrics, and global/category ranks.

When to Use This Skill

Use this skill when the user:

  • Asks how much traffic a domain gets ("what's the traffic for X")
  • Wants monthly visit trends for a site
  • Needs a traffic-source breakdown (organic vs direct vs paid vs GenAI, etc.)
  • Wants to know a site's audience countries
  • Wants to compare/benchmark several domains against each other or competitors

Usage

No API key required. Self-contained Node script (uses built-in fetch, no npm install).

node scripts/fetch-similarweb-traffic.js <domain>

Examples:

# Formatted markdown summary (default)
node scripts/fetch-similarweb-traffic.js chatslide.ai

# Raw normalized JSON (for further processing / comparisons)
node scripts/fetch-similarweb-traffic.js stripe.com --json

The domain can be passed bare (example.com) or as a URL (https://www.example.com/pricing) — it gets normalized (strips scheme, www., and path).

Comparing multiple domains

Run the script once per domain with --json and combine the results into a table. Add a short delay between calls to be polite to the endpoint.

Output

Default mode prints a markdown summary: a metrics table (monthly visits, ranks, bounce, pages/visit, time on site), a monthly-visits trend line, traffic-source breakdown, top countries, and top keywords.

--json mode prints a normalized object:

{
  "domain": "stripe.com",
  "globalRank": 327,
  "categoryRank": 21,
  "category": "Finance",
  "snapshotMonth": "2026-05",
  "visits": 122394040,
  "bounceRate": 0.55,
  "pagesPerVisit": 3.26,
  "timeOnSite": 165.9,
  "estimatedMonthlyVisits": [{ "date": "2026-03-01", "visits": 118067753 }],
  "trafficSources": { "searchOrganic": 0.48, "direct": 0.23, "...": 0 },
  "topCountries": [{ "countryCode": "US", "value": 0.087 }],
  "topKeywords": ["..."]
}

visits is the most recent complete month. Rates (bounceRate, all trafficSources, topCountries[].value) are 0–1 fractions.

API Details

  • Endpoint: https://data.similarweb.com/api/v1/data?domain=<domain> — SimilarWeb's undocumented public data endpoint (the one their browser extension uses). No auth, no key, free.
  • Requires a browser user-agent header (the script sends one) — default curl/bot agents are blocked.
  • Synchronous, returns immediately.

Important Notes

  • Estimates, not ground truth. SimilarWeb models traffic; numbers can be off, especially for mid/low-traffic sites. For a domain you own, your own Google Analytics / Search Console data is authoritative — prefer those when available.
  • Unknown domains return zeros, not an error. SimilarWeb responds HTTP 200 with all-zero/synthetic data when it has no data for a domain. If every visit count is 0, treat it as "no SimilarWeb data."
  • Unofficial endpoint. It can be rate-limited, change shape, or require auth without notice; this is a gray-area use of SimilarWeb's data outside their paid API.
  • Exit codes: 2 network error, 3 non-200 HTTP response.
1---
2name: similarweb-traffic
3description: Fetch website traffic estimates (monthly visits, traffic sources, top countries, keywords, engagement, ranks) for any domain from SimilarWeb. Use when the user asks about a domain's traffic, monthly visits, traffic sources, audience countries, or wants to compare/benchmark sites against competitors.
4---
5 
6# SimilarWeb Traffic
7 
8Fetch traffic-overview estimates for any domain — monthly visits, traffic-source breakdown, top countries, top keywords, engagement metrics, and global/category ranks.
9 
10## When to Use This Skill
11 
12Use this skill when the user:
13 
14- Asks how much traffic a domain gets ("what's the traffic for X")
15- Wants monthly visit trends for a site
16- Needs a traffic-source breakdown (organic vs direct vs paid vs GenAI, etc.)
17- Wants to know a site's audience countries
18- Wants to compare/benchmark several domains against each other or competitors
19 
20## Usage
21 
22No API key required. Self-contained Node script (uses built-in `fetch`, no `npm install`).
23 
24```bash
25node scripts/fetch-similarweb-traffic.js <domain>
26```
27 
28Examples:
29```bash
30# Formatted markdown summary (default)
31node scripts/fetch-similarweb-traffic.js chatslide.ai
32 
33# Raw normalized JSON (for further processing / comparisons)
34node scripts/fetch-similarweb-traffic.js stripe.com --json
35```
36 
37The domain can be passed bare (`example.com`) or as a URL (`https://www.example.com/pricing`) — it gets normalized (strips scheme, `www.`, and path).
38 
39### Comparing multiple domains
40 
41Run the script once per domain with `--json` and combine the results into a table. Add a short delay between calls to be polite to the endpoint.
42 
43## Output
44 
45Default mode prints a markdown summary: a metrics table (monthly visits, ranks, bounce, pages/visit, time on site), a monthly-visits trend line, traffic-source breakdown, top countries, and top keywords.
46 
47`--json` mode prints a normalized object:
48 
49```json
50{
51 "domain": "stripe.com",
52 "globalRank": 327,
53 "categoryRank": 21,
54 "category": "Finance",
55 "snapshotMonth": "2026-05",
56 "visits": 122394040,
57 "bounceRate": 0.55,
58 "pagesPerVisit": 3.26,
59 "timeOnSite": 165.9,
60 "estimatedMonthlyVisits": [{ "date": "2026-03-01", "visits": 118067753 }],
61 "trafficSources": { "searchOrganic": 0.48, "direct": 0.23, "...": 0 },
62 "topCountries": [{ "countryCode": "US", "value": 0.087 }],
63 "topKeywords": ["..."]
64}
65```
66 
67`visits` is the most recent complete month. Rates (`bounceRate`, all `trafficSources`, `topCountries[].value`) are 0–1 fractions.
68 
69## API Details
70 
71- Endpoint: `https://data.similarweb.com/api/v1/data?domain=<domain>` — SimilarWeb's **undocumented public data endpoint** (the one their browser extension uses). No auth, no key, free.
72- Requires a browser `user-agent` header (the script sends one) — default `curl`/bot agents are blocked.
73- Synchronous, returns immediately.
74 
75## Important Notes
76 
77- **Estimates, not ground truth.** SimilarWeb models traffic; numbers can be off, especially for mid/low-traffic sites. For a domain you own, your own Google Analytics / Search Console data is authoritative — prefer those when available.
78- **Unknown domains return zeros, not an error.** SimilarWeb responds HTTP 200 with all-zero/synthetic data when it has no data for a domain. If every visit count is 0, treat it as "no SimilarWeb data."
79- **Unofficial endpoint.** It can be rate-limited, change shape, or require auth without notice; this is a gray-area use of SimilarWeb's data outside their paid API.
80- Exit codes: `2` network error, `3` non-200 HTTP response.
81 

Discussion