Fetch website traffic estimates (monthly visits, traffic sources, top countries, keywords, engagement, ranks) for any domain from SimilarWeb.
Library skill — the default version is maintained in GitHub; edits you make live in your own clone.
Fetch traffic-overview estimates for any domain — monthly visits, traffic-source breakdown, top countries, top keywords, engagement metrics, and global/category ranks.
Use this skill when the user:
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).
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.
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.
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.user-agent header (the script sends one) — default curl/bot agents are blocked.2 network error, 3 non-200 HTTP response.